命令
make distclean
make clean
make xxx_defconfig
make menuconfig
make xxx.config
编译kernel
- 注意:
- 默认情况下,rv1106_defconfig使用的是rv1106g-evb1-v11-spi-nand-cvr.dts设备树
- 配置交叉编译器
在kernel顶层makefile添加
ARCH = arm
CROSS_COMPILE = arm-linux-gnueabihf-
- 配置xxx_defconfig(必须)通过下面的合并xxx.config也能实现
CONFIG_MTD=y
CONFIG_MTD_NAND=y
CONFIG_MTD_SPI_NAND=y
CONFIG_MTD_UBI=y
CONFIG_UBIFS_FS=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_OF_PARTS=y
CONFIG_SPI_ROCKCHIP_SFC=y
- 选择xxx_defconfig
kernel顶层执行:
make rv1106_defconfig
- 合并xxx.config
这一步主要是将自定义或者其他的xxx.config合并到现有的kernel根目录下的**.config**
又称:基础 defconfig + 若干 fragment
make rv1106-nand.config
make rv1106-cvr.config #或 make rv1106-evb.config
工作原理:
rv1106_defconfig会生成基础的 .config 文件rv1106-nand.config会被识别为配置片段(fragment),通过merge_config.sh脚本合并到现有的 .config 中- 合并后会自动执行
olddefconfig来解决依赖关系
- 执行编译
-
编译所有
make -j16 -
只编译设备树
make dtbs -
编译单个设备树
设备树名通常与对应的
.dts文件名相同make <dts文件名>.dtb
编译结果:
- arch/arm/boot/zImage文件
- arch/arm/boot/dts/* 所有设备树文件
- rv1106_defconfig使用的是rv1106g-evb1-v11-spi-nand-cvr.dts设备树
Linux 内核的标准构建目标就是这些:
- zImage / Image
- dtbs
- modules