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

企业宣传网站建设需求说明书成人厨师短期培训班

企业宣传网站建设需求说明书,成人厨师短期培训班,网站备案成功,广东白云手机网站建设我们在学习内核时, 为了搞清楚某一个模块 的来龙去脉时,需要找低版本的内核来学习对比。 但是此时好多内核时跑不起来的, 但是有迫切需要 跑起来, 那我们该注意那些内容呢? 这里我们拿 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/427125.html

相关文章:

  • 注册网站好的平台南宁网络推广外包
  • 南阳网站建设icp备上海搜索推广
  • 政府网站建设责任书正规代运营公司
  • 温州做企业网站360网站排名优化
  • 邯郸网站建设找谁网络营销毕业论文范文
  • 湛江专业雷剧全集长沙企业seo服务
  • 网页加速器怎么用网站seo排名
  • 新冠止咳药哪个效果好电商seo名词解释
  • 玉林网站开发线上运营的5个步骤
  • 做个淘宝客网站怎么做的seo网络优化是什么意思
  • 河南做网站推广哪个好威海百度seo
  • 专业建站推广网络公司行业关键词分类
  • 手机网站模版更换技巧网址导航怎样推广
  • 搬家网站自适应网络营销首先要做什么
  • 凡科做数据查询网站百度快速提交入口
  • 布吉网站建设哪家便宜汽油价格最新调整最新消息
  • 使用bootstrap做网站深圳市社会组织总会
  • 自己做网站都要什么营销策略理论
  • 做企业网站大概多少钱阳东网站seo
  • 怎样给网站做软件测试网站交易网
  • 泰州做网站优化百度上做推广怎么收费
  • 柳州网站建设源码南宁seo排名首页
  • java开发网站教程营销网站建设
  • 深圳工程建设公司整站优化排名
  • python 开发手机网站开发徐州百度推广电话
  • 在电脑上打不开政府网站推广之家app
  • 吉林长春seo网站建设网站优化做网站需要准备什么
  • 绍兴网站建设开发免费推广引流平台
  • 找回网站备案密码app营销策略都有哪些
  • 做网站设计都做些什么口碑营销的前提及好处有哪些