在VisionFive2上安装openEuler

正在申请加入用户组,所以实时贴一篇。

在中科院软件所的镜像网上下载最新的openEuler riscv64 rootfs包,例如:

$ wget https://mirror.iscas.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/preview/openEuler-22.09-V1-riscv64/openEuler-22.09-V1-riscv64-rootfs.tar.gz

桌面版

https://mirror.iscas.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/preview/openEuler-22.09-V1-riscv64/openEuler-22.09-V1-riscv64-rootfs-xfce.tar.gz

在VisionFive2的github代码库抓取新版本的sdcard.img,例如:

$ wget https://github.com/starfive-tech/VisionFive2/releases/download/VF2_v2.6.0/sdcard.img

构造一个能装入openEuler镜像大小的新镜像,通过losetup载入,再将sdcard.img通过dd拷贝到loop里:

dd bs=1M count=1536 if=/dev/zero of=openEuler-22.09-vf2-unofficial.img

losetup -P /dev/loop1 openEuler-22.09-vf2-unofficial.img

dd bs=1M if=sdcard.img of=/dev/loop1

对新镜像的系统分区(最后一个分区)进行扩容,假设为4:

fdisk -l | grep loop1

growpart /dev/loop1 4 # extend partition 4

e2fsck -f /dev/loop1p4

resize2fs /dev/loop1p4 # extend filesystem

fsck.ext4 /dev/loop1p4

最后挂载系统分区,除firmware和modules外删除所有内容,并将openEuler文件系统包拷贝到系统分区:

mount /dev/loop1p4 /mnt

mv /mnt/lib/firmware /tmp/

mv /mnt/lib/modules /tmp/

rm -rf /mnt/*

tar -xpf Downloads/openEuler-22.09-riscv64-rootfs.tar.gz -C /mnt

sync

mv /tmp/firmware /mnt/lib/

mv /tmp/modules /mnt/lib/

umount /mnt

losetup -d /dev/loop1

然后将新镜像烧录到tf卡并插入VF2就可享用了~