当前位置: 首页 > wzjs >正文

很多年前的51网站郑州做网站锐

很多年前的51网站,郑州做网站锐,网页设计公司山东济南兴田德润电话,产品宣传型企业网站怎么建设我们在学习内核时, 为了搞清楚某一个模块 的来龙去脉时,需要找低版本的内核来学习对比。 但是此时好多内核时跑不起来的, 但是有迫切需要 跑起来, 那我们该注意那些内容呢? 这里我们拿 linux 5.4 内核编译举例。 1. G…

我们在学习内核时, 为了搞清楚某一个模块 的来龙去脉时,需要找低版本的内核来学习对比。 但是此时好多内核时跑不起来的, 但是有迫切需要 跑起来, 那我们该注意那些内容呢? 这里我们拿 linux 5.4 内核编译举例。

1. GCC 版本的选择

gcc 版本选择成功与否,其实就已经解决了大部分问题了。 有些问题解决不了,最终还是回归到 gcc 版本不对导致的。所以 gcc 版本选择是 重点。

1.1 Linux 内核编译所需的 GCC 版本

Linux 内核版本最低支持 GCC 版本推荐 GCC 版本备注
2.6.x2.953.4 - 4.9已淘汰,较旧的工具链
3.x3.24.4 - 5.5仍在部分嵌入式设备上使用
4.0 - 4.93.24.9 - 7.x较旧的长期支持版本
4.10 - 4.194.45.x - 8.x仍被部分 LTS 发行版使用
5.0 - 5.105.16.x - 10.x现代 LTS 版本
5.11 - 5.156.17.x - 11.x现代 LTS 版本
5.16 - 5.197.18.x - 12.x需要较新编译器
6.0 - 6.58.19.x - 13.x支持较新硬件
6.6+ (最新)9.110.x - 13.x需要现代 GCC 版本

1.2 QEMU 编译所需要的 GCC 版本

QEMU 版本最低 GCC 版本推荐 GCC 版本备注
≤ 4.04.8+5.x - 7.x旧系统支持
4.1 - 5.25.1+7.x - 9.x支持现代 CPU 架构
6.0 - 7.27.2+9.x - 11.x启用更多优化
8.0+(最新)7.2+10.x - 13.x支持 TCG、多核、HV 功能

1.3 BusyBox编译所需要的 GCC 版本

BusyBox 版本最低 GCC 版本推荐 GCC 版本备注
≤ 1.303.x+4.8 - 6.x超轻量级支持
1.31 - 1.344.9+6.x - 9.x适配常见工具链
1.35+5.1+7.x - 11.x兼容现代嵌入式架构
最新(1.36+)6.0+9.x - 12.x可在 GCC 13 编译,但建议不要太新

2. 内核配置

2.1 必须打开的配置

qemu 允许时需要确保 如下3 个内核配置是使能的:

CONFIG_VIRTIO=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_BLK_DEV_INITRD=y
配置选项作用不启用的后果
CONFIG_VIRTIO支持 VirtIO 虚拟设备(磁盘、网络)磁盘/网络不可用,启动卡死
CONFIG_SERIAL_AMBA_PL011提供串口控制台输出无日志输出,无法交互
CONFIG_BLK_DEV_INITRD加载 initramfs 临时根文件系统内核无法执行 /init,触发 Kernel Panic

这些配置是 QEMU virt 平台 + ARM64 的黄金组合,缺一不可!

2.2 其他配置

# 架构和平台
CONFIG_ARM64=y
CONFIG_ARM64_VIRT=y # 可有可无# 设备驱动
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_PCI=y# 文件系统和 initramfs
CONFIG_BLK_DEV_INITRD=y
CONFIG_EXT4_FS=y# 中断和时钟
CONFIG_ARM_GIC=y
CONFIG_ARM_ARCH_TIMER=y

3. 各个版本软件选择:

软件版本
主机选择ubuntu 22.04
linux5.4
qemu7.2.0
busybox1.35.0
aarch64-gcc9.5.0

4. 交叉工具链安装

我们在之前的文章中,按照了最新的 aarch64-linux-gnu-gcc-11

$ aarch64-linux-gnu-gcc-11 --versionaarch64-linux-gnu-gcc-11 (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

如果不降低 gcc 版本直接编译 linux5.4 将遇到如下错误

4.1 报错一:

/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x20): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status

解决方案一:

  • 修改scripts/dtc目录下的scripts/dtc/dtc-lexer.l文件中找到 YYLTYPE yyloc这一行,在之前面加上extern 保存退出, make 编译 正常编译

方案二:

  • 将 gcc 降级

4.2 报错二:

../include/linux/compiler.h:350:45: error: call to ‘__compiletime_assert_653’ declared with attribute error: BUILD_BUG_ON failed: (((0x0ffULL) + (1ULL << (__builtin_ffsll(0x0ffULL) - 1))) & (((0x0ffULL) + (1ULL << (__builtin_ffsll(0x0ffULL) - 1))) - 1)) != 0
  • 只能是降级 gcc 版本

4.3 降级 gcc 版本

由于我们要编译 linux 5.4 所以这里需要 将 aarch64-gcc 换为 9.5

# 安装 aarch64-linux-gnu-gcc-9
sudo apt install gcc-9-aarch64-linux-gnu g++-9-aarch64-linux-gnu#切换默认 aarch64-linux-gnu-gcc 版本
#如果系统中有多个 GCC 版本,可以手动设置:sudo update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-9 90 sudo update-alternatives --install /usr/bin/aarch64-linux-gnu-g++ aarch64-linux-gnu-g++ /usr/bin/aarch64-linux-gnu-g++-9 90

5. 编译 linux5.4

5.1 报错一

ake[2]: *** 没有规则可制作目标“debian/canonical-certs.pem”,由“certs/x509_certificate_list” 需求。 停止。
make[2]: *** 正在等待未完成的任务....
cd buildvim .configCONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
# 将其 修改为 CONFIG_SYSTEM_TRUSTED_KEYS=""

6. 其他步骤

由于 qemu 和 busybos 在使用 aarch-gcc-9.5上编译没有遇到错误,这里不再重复记录操作步骤,请参照之前。

其他步骤参考这篇文章执行。

在这里插入图片描述

http://www.dtcms.com/wzjs/799070.html

相关文章:

  • 如何做购物网站的教程dw网页设计成品素材
  • 网站增加一体化建设功能的好处办公室装修设计多少钱
  • 自己做的网站怎么查建站 公司
  • 可信赖的网站建设案例创建免费网站需要什么条件
  • 网站建设与管理案例教程 柳医疗器械
  • 雄安网站建设需要多少钱网络设计概念
  • 管理类培训课程广州网站设计十年乐云seo
  • php网站做cdn百度产品
  • 手机网站开发环境网站的弹窗对话框怎么做
  • 遵义网站制作的网站江西省新的建设厅三类人员网站
  • 网站一级域名wordpress drupal 慢
  • 360阻止建设银行网站怎么开发网站平台
  • 营销型网站效果不好龙港做网站
  • 网站建设与管理办法无休网站建设
  • 招代理网站建设公司靖江 建设局网站
  • 做交易网站需要多少钱宁波免费建站seo排名
  • 金坛做网站公司产品推广软文500字
  • 衡水林熠网站建设公司做卖车网站需要什么手续
  • 西安招聘网站招聘网站开发流程
  • 第三方平台做网站网站上海小程序网站开发公司
  • 江门网站制作服务北京装修公司口碑排名
  • 深圳网站建设推广公司学校电脑课做网站的软件
  • 怎样进网站ftpwordpress做一个视频网站吗
  • 云南网站开发软件网站的原理
  • 网站改成html5服务好质量好的app开发
  • 纺织行业网站怎么做wordpress链接的index.php
  • 网站建设的需要是什么天津网站搜索排名优化
  • 推广网站的广告怎样做网站为何突然不收录了
  • 哪些经营范围可以开网站建设费用seo快速排名是什么
  • 网站首页被k 做跳转做网站语言排名2018