Linux驱动工程师必知的内核编译机制

Linux内核的编译主要过程:配置、编译、安装。


(资料图片)

1. Kconfig

Kconfig用于内核的配置,make menuconfig显示的菜单就来自Kconfig

make menuconfig的菜单包括了多层,每层都是各个目录下对应的Kconfig产生的,选择好配置后,配置结果会被保存到.config文件中。

执行Makefile时,Makefile就会根据.config的结果来实现内核的编译。

Kconfig语法

2. Kbuild

KbuildKernel build,是内核的一个编译系统。

简单来说,Kbuild是对Makefile语法功能的扩展。

例如,kbuild定义了很多有用的变量如obj-m`` obj-y,-objs等等,用户只要为这些变量赋值,kbuild会自动把代码编译到内核或者编译成模块。

Linux内核使用kbuild编译时,会扫描两次LinuxMakefile:首先读取顶层的Makefile文件,然后根据读取到的内容第二次读取kbuild的Makefile文件来编译Linux内核。

内核的Makefile包括五部分:

3. Makefile

顶层的Makefile是编译的入口,下面分析一下顶层Makefile文件。

顶层Makefile会向各子目录的Makefile传递一些信息,有些变量,例如vmlinux-dirs,不仅在顶层Makefile中定义并且赋值,而且在arch/*/Makefile还作了扩充。

kbuild的更多用法,详细参考内核源码文档:

Documentation/kbuild/makefiles.txt

Documentation/kbuild/modules.txt

关键词:

    为你推荐

    Linux驱动工程师必知的内核编译机制

    Linux内核的编译主要过程:配置、编译、安装。配置主要由Kconfig提供图

    来源:面包芯语 23-08-07

    北京查处非法销售不合格电动三轮车案!明年起还要封杀老头乐

    北京查处非法销售不合格电动三轮车案!明年起还要封杀老头乐

    来源:快科技 23-08-07

    黄金市场分析:尚未摆脱近期偏向下行的风险

    上周五(8月4日),美国公布的7月非农就业报告弱于预期,5月和6月就业人

    来源:汇金网 23-08-07

    叙利亚遭遇持续高温 东北部骆驼养殖规模减少

    近期,叙利亚遭遇持续的高温干旱天气,位于代尔祖尔省沙漠地区的牧民们

    来源:扬子晚报网 23-08-07

    瑜欣电子:8月4日获融资买入132.81万元,占当日流入资金比例9.32%

    同花顺数据中心显示,瑜欣电子8月4日获融资买入132 81万元,占当日买入

    来源:同花顺iNews 23-08-07
    返回顶部