本文介绍RockPI 4A单板Debian系统Linux内核的下载和编译方法,为后续介绍RockPI 4A单板Linux内核调试进行抛砖引玉。
一、代码下载
Rockpi 4A Debian版本SDK代码下载方法:
git clone --recursive https://github.com/radxa/rockchip-bsp.git
cd rockchip-bsp/
代码下载完成后,显示如下:
root@ubuntu:/home/run/code/rockchip-bsp# ls
build docker kernel out README.md rkbin rootfs u-boot
kernel
目录下保存Linux内核代码。
build
目录下保存配置和编译脚本。
二、内核编译
使用代码里的编译脚本,编译脚本名称:mk-kernel.sh
,位置如下:
root@ubuntu:/home/run/code/rockchip-bsp# ls build/
board_configs.sh extlinux kernel-package.mk mk-kernel.sh out pack-kernel.sh partitions.sh rockpis-partitions.sh
debian flash_tool.sh mk-image.sh mk-uboot.sh pack_deb.sh pack-uboot.sh README.md uboot-package.mk
注:在脚本mk-kernel.sh
中有一段代码:source $LOCALPATH/build/board_configs.sh $BOARD
,使用脚本编译时,必须在build
文件夹同一级目录。
RockPI 4A Linux内核编译方法如下(使用...省略部分编译输出):
root@ubuntu:/home/run/code/rockchip-bsp# ./build/mk-kernel.sh rockpi4a
Building kernel for rockpi4a board!
4.4.154
CHK include/config/kernel.release
...
Generate Boot image start
mkfs.fat 4.1 (2017-01-24)
mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows
Generate Boot image : /home/run/code/rockchip-bsp/out/boot.img success!
Kernel build success!
其中:rockpi4a
对应RockPI 4A单板,如果使用其它单板,需要设置不同内容。单板类型可参考build/board_configs.sh
脚本中case ${BOARD} in
的选项。例:
case ${BOARD} in
"tb-rk3399prod")
DEFCONFIG=rockchip_linux_defconfig
UBOOT_DEFCONFIG=rk3399pro_defconfig
DTB=rk3399pro-toybrick-prod-linux.dtb
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
CHIP="rk3399pro"
;;
"ficus2-rk3399pro")
DEFCONFIG=rockchip_linux_defconfig
UBOOT_DEFCONFIG=rk3399pro-ficus2_defconfig
DTB=rk3399pro-ficus2-linux.dtb
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
CHIP="rk3399pro"
;;
"rockpin10")
编译出来的映像路径:
root@ubuntu:/home/run/code/rockchip-bsp/out# tree
.
├── boot.img
└── kernel
├── Image
└── rk3399-rock-pi-4a.dtb
1 directory, 3 files
参考:
网友评论