1.内核手册编译
使用./build.sh-hkernel可以查看内核的详细编译命令,如下所示。
图1.1 编译内核
上图显示了分别编译内核固件的三个步骤。进入内核目录,选择默认配置文件,编译镜像。
对应平台的默认配置文件由./build.shlunch操作中选择的mk文件决定,如下所示。
图1.2 选择SDK配置文件
配置完成后,直接查看device/rockchip/rk356x/BoardConfig-rk3568-evb1-ddr4-v10.mk文件,该文件由RK_KERNEL_DEFCONFIG和RK_KERNEL_DEFCONFIG_FRAGMENT决定,如下图。
图1.3 内核部分配置文件
还有一个由RK_KERNEL_DTS配置的设备树。
首先导入上面指定的默认配置。操作命令如下:
内核
makeARCH=arm64rockchip_linux_defconfig
进入menuconfig修改内核,命令如下。
makeARCH=arm64menuconfig
进入配置界面如下图。
图1.4 内核配置
输入“/”,进入menuconfig搜索功能,如下图。
图1.5 内核查找配置
搜索功能可以在复制的配置路径中快速找到所需的目标配置。例如,输入“dhcp”可查看该选项的说明,如下所示。
图1.6 目标配置帮助
选项名称为IP_PNP_DHCP,menuconfig中的名称由Prompt指定,选项配置的路径由Location指定,选项的依赖关系由Dependson指定。
使用空格键修改配置,按ESC键退出menuconfig。
输入以下命令以覆盖默认配置。
makeARCH=arm64savedefconfig
cpdefconfigarch/arm64/configs/rockchip_linux_defconfig
注意:覆盖前建议先备份原rockchip_linux_defconfig。
进入kernel目录,输入以下命令,单独编译内核固件。
makeARCH=arm64rk3568-evb1-ddr4-v10-linux.img-j12
内核的编译结果如下所示。
图1.7 编译完成打印
可以看出,内核固件的组成部分为:resource.img(由设备树文件dtb和logo图像组成)+Image(内核代码)。
输入以下命令独立编译ko文件。
makeARCH=arm64模块