(其实严格来说并不算移植)
首先附上一副图片和一段视频
(视频丢了(悲))
这是通过串口连接至我的 Orange Pi Zero 2W 并运行fastfetch的场景,可以看到由于我才开始干这件事,大多数东西仍然未设置。
事情的起因是我在高中里自由活动时间没事干突发奇想,Armbian 是一个专门为大大小小的开发板适配的项目,其中我的 Orange pi Zero 2W 是受 community 支持的,并且运行 Armbian Compile.sh 的时候会生成开发板系统所需的 .deb 文件,包括了设备树和内核等等,既然如此,为什么不用这些玩意快速适配各大开发板呢?
目前我做的移植的缺陷:你能想到的,包括 HDMI ,板载 WiFi ,网口等等等等都用不了。那这好像没什么用啊
能用的部分:TF卡的读取与写入,soc , 内存,USB,串口,LED,(似乎gpio能工作但我没试)。
26/9/25,21:16补充:目前通过opencode的一大堆申必操作,hdmi和网口能工作了。(A1 Sauce太好用了你知道吗)
下面是我的移植过程(A1 Sauce警告):
首先下载 Armbian 的 Compile.sh , 再通过合适的参数编译出 Orange Pi Zero 2W 的cli镜像,然后可以把生成的镜像撇了把output里除了linux-libc的linux前缀的.deb包全拷出来。
同时,下好AOSC OS arm64的 rootfs(我用的是base,不知道问题是不是出在这里),解压并设置好权限,安装 qemu-aarch64-static 包,用 arch-chroot 启动解压好的rootfs,更新。
将 linux-image 包里的所有文件直接复制出来到对应的路径,将 linux-dtb , linux-headers , linux-uboot 包用 oma 装好,oma 会自动处理专用 vmlinuz ,搞完后退出(注意此时可能 qemu 会出现问题)。
将 /usr/lib/u-boot-sunxi-with-spl.bin 拷出并用 sudo dd if=u-boot-sunxi-with-spl.bin of=(你存储卡的路径) bs=1k seek=8 conv=fsync刷入(命令是A1输出的),用 gparted 创建分区,空出前面2mb,将刚刚的rootfs保留权限拷贝进来。
更改 /boot/extlinux/extlinux.conf ,把 ro 改为 rw , 同时把默认改为 sunxi 那个内核,然后拔了存储卡插开发板上,连接串口并监测,上电,可以发现启动了 AOSC OS.
作用:或许能给快速移植提供思路,但可能会引起争议
反正我接下来一个月会完善这东西,到时候再看看吧。接下来一个月有事干喽
说实话我并不懂移植,只知道有DTB和内核还有驱动是难关,要是有谁能教我就好了。。。
