Linux内核配置编译过程

本文详细介绍了Linux内核的配置过程,包括makemenuconfig、使用默认配置和厂家配置文件的方法,并强调了配置的目标是剪裁模块。配置完成后生成的.config文件用于编译选择。编译阶段涉及uImage的制作,依赖于vmlinux,启动文件为head.o,链接脚本为vmlinux.lds。通过对编译选项的分析,揭示了内核启动的关键文件和过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置

三种方法:

  • make menuconfig(成千上万配置项要配置,很复杂,不可取)
  • 使用默认的配置,在此基础上修改。(但现在不知道默认的配置有哪些。可以搜索下)
  • 使用厂家提供的配置文件。(将厂家提供的 config厂家直接复制一份为. config,然后再make menuconfig

配置过程是剪裁模块,将不需要的模块从编译列表中去除,加入需要的模块。
配置成功后会生成.config文件,该文件用于编译时来选择需要编译的模块。

编译

编译时会加载.config文件来选择编译模块。

make uImage

当编译目标是uImage时,uImage不在顶层的 Makefile中,在arch/arm/Makefile中定义了这个目标我们是在顶层目录 make uImage的,则可知顶层 Makefile会包含arch/arm/ Makefile

uImage是一个头部+真正的内核。uImage依赖于 vmlinux ,所以制作这个uImage时需要编译出真正的内核。这个真正的内核显然就是 vmlinux
我们分析内核配置编译过程的目的就是找出启动文件和链接文件,所以需要查看makefile的编译选项,即根据找出的编译目标vmlinux来确定编译选项,我们可以查看编译过程的打印信息直接分析编译选项:
uiamge
所以由编译选项的值:
链接脚本:arch/arm/kernel/vmlinux.lds ,其中vmlinux.lds是由vmlinux.lid.S生成
启动文件:·arch/arm/kernel/head. o(head.S)

通过分析内核编译过程的编译选项的值编译uImage目标时需要的链接脚本和启动文件,从而分析内核的启动过程
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值