在編譯前需要按照前面的方法始化編譯環境,否則會導致編譯失敗(若配置過則無需重復配置)。
全自動編譯包含所有鏡像編譯,包括:uboot編譯、Kernel編譯、Recovey編譯、文件系統編譯、編譯完成鏡像的更新與打包。
?????? 按照前面的方法初始化編譯環境后,還需要設置RK_ROOTFS_SYSTEM環境變量,通過設置此變量,可以決定打包哪個文件系統:
打包buildroot文件系統,則設置RK_ROOTFS_SYSTEM為buildroot,如下所示:
$ export RK_ROOTFS_SYSTEM=buildroot
打包Debian文件系統,則設置RK_ROOTFS_SYSTEM為debian,如下所示:
$ export RK_ROOTFS_SYSTEM=debian
打包Ubuntu文件系統,則設置RK_ROOTFS_SYSTEM為ubuntu,如下所示:
$ export RK_ROOTFS_SYSTEM=ubuntu
查看當前終端設置的RK_ROOTFS_SYSTEM環境變量的值,執行命令:
$ echo $RK_ROOTFS_SYSTEM
下面以編譯buildroot文件系統為例,使用全自動編譯方法進行編譯:
配置RK_ROOTFS_SYSTEM環境變量為buildroot,執行命令:
$ export RK_ROOTFS_SYSTEM=buildroot
查看RK_ROOTFS_SYSTEM環境變量是否配置正確,執行命令:
$ echo $RK_ROOTFS_SYSTEM
如下圖所示:
可以看到輸出為buildroot,說明配置正確。
執行全自動編譯腳本,命令如下:
$ ./build.sh
如下圖所示:
編譯完成,此時終端最下行顯示(END),按下“q”鍵退出,如下圖所示:
最終,編譯完成,如下圖所示:
?????? 上圖中提示“確認板級的電源域配置”,這里已經配置好,請不要改動,改動錯誤會導致CPU芯片燒壞。
?????? 編譯完成后,所有燒寫所需要的鏡像將都會鏈接到rockdev目錄,可以到rockdev目錄下查看,如下圖所示:
如需拷貝鏡像到Windows參考第4.7節《鏡像拷貝》
如需燒寫自己編譯的鏡像請參考第六章《固件燒寫》
單獨編譯
?????? 說明:單獨編譯涉及鏡像較多,較為復雜,若不是十分必須建議使用全自動編譯,簡單、方便。
Uboot編譯
在編譯前需要按照前面的方法初始化編譯環境,否則會導致編譯失敗(若配置過則無需重復配置)。
進入源碼目錄(目錄需按個人實際路徑修改),執行命令:
$ cd ~/dianyu/sail_rk356x_linux_release_v1.3.0_20220620/
如下圖所示:
編譯uboot,執行命令:
$ ./build.sh uboot
如下圖所示:
編譯完成如下圖所示:
編譯后在 u-boot 目錄生成兩個鏡像文件,分別是:
rk356x_spl_loader_v1.13.112.bin(這個文件就是MiniLoaderAll.bin,只是名字不同)
uboot.img
如下圖所示:
Kernel編譯
在編譯內核前需要按照前面的方法初始化編譯環境,否則會導致編譯失敗(若配置過則無需重復配置)。
進入源碼目錄(目錄需按個人實際路徑修改),編譯kernel,執行命令:
$ ./build.sh kernel
如下圖所示:
編譯完成如下圖所示:
紅底字為提示電源域配置,源碼中已經配置好,務必不要改動,否則會導致芯片燒壞。
編譯后在 kernel 目錄生成內核鏡像文件:boot.img,如下圖所示:
Recovery編譯
在編譯前需要按照前面的方法初始化編譯環境,否則會導致編譯失敗(若配置過則無需重復配置)。
進入源碼目錄(目錄需按個人實際路徑修改),編譯Recovery,執行命令:
$ ./build.sh recovery
如下圖所示:
?????? 編譯完成后在 buildroot/output/sail_rk3568_recovery/images 目錄生成recovery.img鏡像,如下圖所示:
文件系統編譯
在編譯前需要按照前面介紹的方法初始化編譯環境,否則會導致編譯失敗(若配置過則無需重復配置)。
注:在編譯完成后進行固件打包的時候,會打包最后一次編譯的文件系統,所以這里建議僅編譯需要使用的文件系統,不需要的則不編譯,否則在最后打包固件時可能會打包成不需要的文件系統。
Buildroot文件系統編譯
進入源碼目錄(目錄需按個人實際路徑修改),編譯Buildroot,執行命令:
$ ./build.sh buildroot
如下圖所示:
編譯后在 buildroot/output/sail_rk3568/images 目錄生成rootfs.ext4鏡像。如下圖所示:
Debian文件系統編譯
按下述方法編譯的Debian系統,用戶名是:linaro?????? 密碼:linaro
進入源碼目錄(目錄需按個人實際路徑修改),安裝依賴包,執行如下所示命令:
注意,一定要在開發板源碼目錄下執行下述命令,否則會安裝失敗
$ sudo apt-get install binfmt-support qemu-user-static live-build
$ sudo dpkg -i debian/ubuntu-build-service/packages/*
$ sudo apt-get install -fy
安裝過程如下圖所示:
安裝完成后,編譯Debian,執行命令:
$ ./build.sh debian
如下圖所示:
編譯過程中會提示輸入密碼,直接輸入即可(密碼默認是隱式的)。
編譯后在 debian 目錄生成 linaro-rootfs.img 鏡像。如下圖所示: