接上一节,这节开始移植内核。
首先获取一下内核源码,这里仍然使用香橙派的源码
git clone https://github.com/orangepi-xunlong/linux-orangepi.git
进入kernel根目录并切换到orangepi zero使用的分支
git checkout remotes/origin/orange-pi-5.4
然后安装编译内核可能所需要的一些库
sudo apt install build-essential lzop libncurses5-dev libssl-dev flex bison
指定运行平台和编译器
ARCH ?= arm CROSS_COMPILE ?= arm-linux-gnueabihf-
直接配置内核
make sunxi_defconfig
编译内核和设备树,核多可以-j8或-j16,编译速度更快
make zImage -j4 make sun8i-h2-plus-orangepi-zero.dtb -j4
将提前格式化过的TF卡插到Ubuntu电脑上,然后安装个gparted软件,用于给TF卡分区
sudo apt install gparted
第一个分区为512MB的FAT32格式,用于放内核镜像和设备树镜像
第二个为TF卡剩余空间大小ext4格式的分区,用于放置根文件系统
然后点击提交并应用
然后将编译出来的内核和设备树复制到TF卡第一个分区
sudo mount /dev/sdb1 /mnt sudo cp ./arch/arm/boot/zImage /mnt sudo cp ./arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dtb /mnt
这里我上节编译的uboot的bootcmd参数,读取设备树的名字不是sun8i-h2-plus-orangepi-zero.dtb,需要修改一下
cd /mnt
sudo mv sun8i-h2-plus-orangepi-zero.dtb wukongpi-h3.dtb
然后卸载文件系统,拔下卡即可测试
cd / sudo umount /mnt
连接好串口后给板子上电,发现内核能够启动
但内核最终停下了,原因是没有挂载成功根文件系统,最后陷入反复重启的循环
根文件系统的制作与硬件关系不是特别大,对于全志H3这种A7芯片,在其他A7芯片上能跑的文件系统理论上在H3上也能跑,这里直接拿一个之前制作的32位ubuntu_base,解压到TF卡第二个分区
sudo mount /dev/sdb2 /mnt
sudo cp rootfs.tar.bz2 /mnt
sync
cd /mnt
sudo tar xvf rootfs.tar.bz2
sync
cd /
sudo umount /mnt
将TF卡插到板子上后再上电就可以看到文件系统也挂载成功了
翻译
搜索
复制
标签:kernel,WuKongPi,sudo,文件系统,香橙,zero,内核,TF,orangepi From: https://www.cnblogs.com/dazen35/p/17496914.html