导读:Buildroot非常强大易用,但对于刚刚开始使用的开发者来说,很多功能可能并不知道,看官方的文档感觉一下子或许无从下手,在《基于Buildroot的Linux系统构建之快速通关》基础上,本文着重介绍如何在Buildroot中进行内核裁剪修改。
1. 内核构建管理
内核的文件结构如下图:
每个文件夹的作用这里不做介绍,要获得这方面的信息很容易找到答案。
这里主要介绍内核构建系统:
Linux内核Kbuild系统实现构建管理。
顶层入口为Makefile
Kconfig定义配置
组件式构建(称为递归make)是GNU make管理大型项目的常用方法
在内核代码同一层级Kconfig定义配置选项,而Makefile定义具体依赖关系。
参考阅读 :Documentation/kbuild/modules.txt
顶层Makefile定义了,具体的Make操作:
蓝色命令比较常用:
make menuconfig
make ${PLATFORM}_defconfig 。
如make omap3_defconfig
具体可参阅:./README 根目录下的自述文件。
2.Buildroot配置内核
在Buildroot根目录直接运行如下命令:
make linux-menuconfig
make linux-nconfig
make linux-xconfig
make linux-gconfig
相当于运行在内核根目录运行对应上表的命令,
举例:
如make linux-menuconfig 对应 make menuconfig
make linux-menuconfig
这样就见到了熟悉的内核控制界面了,接下来可以进行内核配置了。
可是如果每次都这么弄,是不是非常麻烦?显然Buildroort已经考虑到这个需求了。
下面两条命令可以保存自定义内核配置文件
make linux-update-config,以保存完整的配置文件
make linux-update-defconfig
以保存最小的defconfig,如果指定了内核的配置方式则用上面的命令。
那么串起来,具体如何在Buildroot中保存自定义内核配置文件呢?
按照上述步骤执行,需要注意的点:
第一次运行make menuconfig 需完成以下必要的配置:
Target options 配置
Toolchain 配置
Kernel配置,需要配置内核代码获取方式,内核配置基线。
如上图,配置为TI 的oamp3_defconfig为起点,可选择你处理器的默认配置。
Kernel configuration (Using an in-tree defconfig file)
(oamp3) Defconfig name
注意,为节省时间配置一次可将下面文件夹备份
./buildroot-2019.02.1/dl
./buildroot-2019.02.1/output/host/
这样在执行make distclean后,将dl下的内容恢复可节省下载时间
对于host路径而言,host端需要的工具链则不需要重新编译。
在完成测试后不可以直接执行make linux-update-config
因为此时配置指向前面的配置文件
在完成测试后不可以直接执行make linux-update-config
因为此时配置指向前面的配置文件
修改自定义配置文件路径,文件可不必存在
buildroot 将自动执行下面操作以生成保存自定义保存文件:
cp -f ./buildroot-2019.02.1/output/build/linux-custom/.config
./buildroot-2019.02.1/linux/test_defconfig
test是我测试用的名字:
至此,就实现了基于Buildroot直接进行内核裁剪,至于内核具体裁剪,这里就不做描述了。
在开发过程中,就可以执行make linux-menuconfig 修改内核配置了。
而不必单独去内核的根目录进行内核配置了,当然你也可以这样做,至于具体如何选择,看个人习惯。
不妨点点在看或小小打赏,关注公号领海量资料
加群请扫描右下二维码,发送“加群”