准备 请看友善 som-rk3399 uboot 移植
linux kernel kernel 下载 1 git clone https://github.com/rockchip-linux/kernel.git
编译 kernel 1 2 3 make distclean ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make rockchip_linux_defconfig ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j12 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
1 make rk3399-evb-ind-lpddr4-linux.img
编译完成输出以下文件
1 2 3 4 kernel/ ├── boot.img ├── kernel.img └── resource.img
安装发行版的引导/内核 我们在 U-Boot 中使用 distro 启动,因此我们需要为 U-Boot 制作一个启动分区,其中包含内核映像和 dtb。
1 2 cp arch/arm64/boot/dts/rockchip/rk3399-evb-ind-lpddr4-linux.dtb boot/rk3399.dtb cp arch/arm64/boot/Image boot/
添加 extlinux/extlinux.conf 到 distro boot.
1 2 mkdir boot/extlinux vi boot/extlinux/extlinux.conf
输入下面这段保存退出
1 2 3 4 label rockchip-kernel-4.4 kernel /Image fdt /rk3399.dtb append earlycon=uart8250,mmio32,0xff1a0000 root=PARTUUID=B921B045-1D rootwait rootfstype=ext4 init=/sbin/init
现在的 boot 文件夹目录架构为
1 2 3 4 5 boot ├── extlinux │ └── extlinux.conf ├── Image └── rk3399.dtb
生成 ext2fs 启动分区
1 genext2fs -b 32768 -B $((32*1024*1024/32768)) -d boot/ -i 8192 -U boot_rk3399.img
生成 fatfs 启动分区
1 2 3 4 5 6 dd if=/dev/zero of=boot.img bs=1M count=32 sudo mkfs.fat boot.img mkdir tmp sudo mount boot.img tmp/ sudo cp -r boot/* tmp/ sudo umount tmp