1. Kernel手動(dòng)編譯
使用./build.sh -h kernel查看kernel的詳細(xì)編譯命令如下所示。
圖1.1編譯內(nèi)核
上圖表示,單獨(dú)編譯kernel固件分為三步,進(jìn)入kernel目錄,選擇默認(rèn)配置文件,編譯鏡像。
對(duì)應(yīng)平臺(tái)的默認(rèn)配置文件由./build.shlunch操作中選擇的mk文件決定,如下所示。
圖1.2選擇SDK配置文件
配置完后,直接查看device/rockchip/rk356x/BoardConfig-rk3568-evb1-ddr4-v10.mk文件,由RK_KERNEL_DEFCONFIG和RK_KERNEL_DEFCONFIG_FRAGMENT決定,如下所示。
圖1.3配置文件Kernel部分內(nèi)容
另外還有RK_KERNEL_DTS指定配置的設(shè)備樹(shù)。
首先導(dǎo)入上面指定的默認(rèn)配置,操作命令如下:
cd kernel
make ARCH=arm64rockchip_linux_defconfig
進(jìn)入menuconfig修改內(nèi)核,命令如下所示。
make ARCH=arm64 menuconfig
進(jìn)入配置界面如下所示。
圖1.4內(nèi)核配置
輸入“/”可以進(jìn)入menuconfig的搜索功能,如下所示。
圖1.5內(nèi)核查找配置
搜索功能可在復(fù)制的配置路徑中快速尋找到所需的目標(biāo)配置,例如輸入“dhcp”查看該選項(xiàng)的描述,如下所示。
圖1.6目標(biāo)配置幫助
選項(xiàng)名為IP_PNP_DHCP,在menuconfig的名稱由Prompt指定,選項(xiàng)配置的路徑由Location指定,選項(xiàng)的依賴關(guān)系由Depends on指定。
使用空格鍵可以修改配置,按ESC鍵可以退出menuconfig。
輸入以下命令可以覆蓋默認(rèn)配置。
make ARCH=arm64 savedefconfig
cp defconfig arch/arm64/configs/rockchip_linux_defconfig
注:建議覆蓋前備份一下原始rockchip_linux_defconfig.
進(jìn)入kernel目錄,輸入以下命令單獨(dú)編譯內(nèi)核固件。
make ARCH=arm64rk3568-evb1-ddr4-v10-linux.img -j12
內(nèi)核的編譯結(jié)果如下所示。
圖1.7編譯完成打印
由此看出,內(nèi)核固件組成部件為:resource.img(由設(shè)備樹(shù)文件dtb、logo圖片組成的)+Image(內(nèi)核代碼)。
輸入以下命令可獨(dú)立編譯ko文件。
make ARCH=arm64 modules