解压缩linux内核源码包后,在内核源码目录下打开终端:
make sunxi_arm64_defconfig ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
make Image ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
make dtbs ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
编译完成后, arch/arm64/boot/Image 和 arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dtb就是内核编译,最终生成的文件。
用fdsik把sd卡分区,分成一个50M大小的fat分区(用于存放Image,dtb等文件), 再分出一个300M大小的ext4分区(用于作文件系统的分区).
注意: sd卡上的uboot不会受分区操作影响的.
分区完成后, 把内核编译得到的Image文件和dtb文件放入sd卡的fat分区里.
还需要把下载得到的rootfs.cpio.gz内存文件系统镜像也放入fat分区里.
以上操作完成后,把卡接入板上启动。
在uboot上设置自动读出内核, rootfs,dtb等镜像并启动:
setenv bootcmd "fatload mmc 0:1 0x46000000 Image; fatload mmc 0:1 0x47000000 rootfs.cpio.gz; fatload mmc 0:1 0x48000000 sun50i-h5-nanopi-neo2.dtb; booti 0x46000000 0x47000000:0x500000 0x48000000"
saveenv
设置完成后,重启uboot后就会自动读出内核等镜像并启动内核,最后会进入内存文件系统里:
BusyBox v1.22.1 (Ubuntu 1:1.22.0-15ubuntu1) built-in shell (ash)
Enter ‘help’ for a list of built-in commands.
(initramfs)
//进文件系统后,就可以使用linux命令(如ls, ifconfig)进行操作