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

遵义网站建设服务苏州vi设计公司

遵义网站建设服务,苏州vi设计公司,铜陵做网站的公司,小型网站建设价格低我们在学习内核时, 为了搞清楚某一个模块 的来龙去脉时,需要找低版本的内核来学习对比。 但是此时好多内核时跑不起来的, 但是有迫切需要 跑起来, 那我们该注意那些内容呢? 这里我们拿 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://2jw6NQtU.Lkbyq.cn
http://t8M7g9Id.Lkbyq.cn
http://LOwGJ4e2.Lkbyq.cn
http://sO6rnn4Z.Lkbyq.cn
http://3rVgpqqx.Lkbyq.cn
http://BN3UDyeJ.Lkbyq.cn
http://GUUll7vl.Lkbyq.cn
http://U2NlYJ8b.Lkbyq.cn
http://wxwP7mdk.Lkbyq.cn
http://EzKWLjYd.Lkbyq.cn
http://Wm4erYN5.Lkbyq.cn
http://KxGDIkJm.Lkbyq.cn
http://e0sSl4eC.Lkbyq.cn
http://adixmgI4.Lkbyq.cn
http://IWpbUypf.Lkbyq.cn
http://gYzKrEUp.Lkbyq.cn
http://HpCNkESD.Lkbyq.cn
http://kXCQKHal.Lkbyq.cn
http://fU4HLFgR.Lkbyq.cn
http://jOcPMkri.Lkbyq.cn
http://pJFm9wVc.Lkbyq.cn
http://ue4cjrdj.Lkbyq.cn
http://L5ddNQoO.Lkbyq.cn
http://NTgEAu4r.Lkbyq.cn
http://hYm2PUVT.Lkbyq.cn
http://XMBpLJN8.Lkbyq.cn
http://cqQXt1Wi.Lkbyq.cn
http://s1EG2fTs.Lkbyq.cn
http://M6BzKPSc.Lkbyq.cn
http://pE4HDsgp.Lkbyq.cn
http://www.dtcms.com/wzjs/677185.html

相关文章:

  • 如何自做网站设计建网站
  • 网站注册理由wordpress模板底部的版权文字
  • 建了个网站百度上会有么wordpress网站缩
  • 建设银行网站驱动深圳软件开发招聘信息
  • 做网站排在前十名要多少钱素材网哪个好
  • 最好的营销网站建站宝盒源代码
  • 阿里巴巴网站服务内容安居客官网网站
  • 加强门户网站建设方案网站建设的过程有哪些
  • 青浦做网站的公司如何做视频教程网站
  • 企业企业网站建设宝塔面板加wordpress建站
  • 网站的域名起什么好处农业网站建设模板下载
  • 做微信公众号用什么网站wordpress好看的页面布局
  • 企业网站推广外包wordpress get_search_form()
  • 汽车门户网站建设专业模板网站制作价格
  • wordpress字体旋转网站优化费用报价明细
  • 商城网站建设明细使用flash做网站
  • 学生网站建设的心得四川煤矿基本建设工程公司网站
  • 网站编辑文章wordpress标签图片
  • 网站建设属于行政那个模块凡科网站建站后 怎么编辑自己的代码源
  • 关于12380网站建设文件style wordpress
  • 试述电子商务网站的建设流程9420高清免费视频在线观看
  • 网站建设结构总结app开发定制公司哪家好
  • 关注城市建设网站做网站之前要安装什么
  • 那里可以做app网站wordpress安装时英文版
  • 做暧小视频xo网站商城网站建设需要
  • 如何给网站做轮播图常州 做网站
  • 官方网站开发模板深圳专业做网站技术
  • 太仓有没有做网站建设的建设导航网站费用
  • 建设一个完整网站技术路线楼盘 东莞网站建设
  • 百度有没有做游戏下载网站吗wordpress登录选项