VF2上单TF卡多重引导系统

实践是验证真理的唯一标准,本文谢绝嘴炮观看、评论,本文谢绝论坛账号jiangtao9999观看、评论

在VF2上我喜欢用官方工程版和Archlinux-cwt两个操作系统。官方工程版稳定、对硬件支持全面,适合日常安心使用;Arch-cwt里有很多新的测试程序,经常来扫库,能发现不少有趣的程序,例如pacman -Ss deepin ,然后就看见一堆deepin开始的程序,这说明还有人在为VF2做deepin的适配。
VF2只有一个TF插槽,同时用两个系统就需要烧录两张TF卡,然后就频繁拔插,VF2比我还累。所以我琢磨把两个系统弄到一张TF上,成功,单TF卡多重引导系统,VF2-2403工程版 + Archlinux-cwt21.2,可重复复现。先看视频吧,先声明,视频是用安卓旧手机拍的,没有重新编辑,保证原汁原味,视频只是用来自证,没有最佳视觉效果,视频播放中途会有几次黑屏,那不是我故意弄的,是VF2重启产生的黑屏,一般是从2403转cwt21.2会比较明显。

视频

理论上,这个方法同样也可以用于NVME,我没NVME做测试(好吧,不是理论了。是已确认可以,有国外高手出来认领了,GO)。理论上,只要空间够,可以多装几个操作系统,使用VF2-SDK的,例如Openkylin。基于以下几点:1、对官方工程版研发团队及CWT的尊重;2、我瞎搞的东西,自己用没问题,可能有些人用就会有安全隐患,例如: 2403不能monut cwt21.2, cwt21.2能mount 2403,可以破坏2403, 所以在这里我不打算写出完成详细过程,只展示一个可重复复现的成功案例。也许有高手早就用上了多重引导,只是没公开;也许有高手看完我的视频,就能研究出更好的办法。最后,我说个关键提示,去分析2403和cwt21.2的/boot分区。
Good lucy

单卡多引导后续

从5月写了上文之后,这几个月我还在使用并研究单卡多引导,实验了很多VF2各种系统镜像的组合方式;先上图,我目前在用的、三星128G白卡的分区图来说明:


这个TF卡是按照starfive标准的嵌入式引导流程做的:
1、分区1、2是spi和uboot;
2、分区3(卷标Batocera)是所有系统共用的boot引导分区,它的分区容量从100MB,改成按游戏模拟器系统Batocera for vf2的需求4GB, Batocera的引导文件和主程序都压缩在一个包里,所以它不会和其它系统的引导文件相混,Batocera目前版本只在boot分区占用不到2GB, 剩余空间应该是Batocera系统在线升级临时使用,所以第3分区可以存放很多其它系统的BOOT引导程序。附分区3目录截图

3、分区4(卷标SHARE)是Batocera系统的数据区,用于存放游戏,我目前存放了30多GB的掌机街机游戏,约2000个左右。
4、分区5是9月30日发布的2409工程版(Debian 2409),之前是存放2405工程版的,使用4个月,主要作用是下载片剧供本地硬件解码播放、硬件解码在线播放流媒体视频。测试新版2409能兼容单卡多引导后,用2409替换2405。
5、分区6是Debian13-sid(从2405工程版升级的),也是使用了几个月,这是日常使用最多的分区,没有GPU驱动,用xfce4、sway、labwc及高版本的chromium上网阅读更流程。
6、分区7也是Debian13-sid(从2409工程版升级的),我打算测试它一段时间,如果没啥问题,就用分区7替换掉分区6。
我测试过很多匹配VF2的系统镜像,VF2工程版、Debian13(几个测试版)、Armbian、Archlinux、Batocera、开放麒麟2.0、Deepin23(预览版),这些都是可以成功兼容到单TF上。总结,只要是使用Starfive SDK、符合Starfive标准引导方式的,都是有可能成功的。以后我有空,应该会慢慢的把这些实验过程整理出来。
本文完成于VF2 + Debian13(testing) + xfce4(4.18) + chromeium126。

实践是验证真理的唯一标准,本文谢绝嘴炮观看、评论,本文谢绝论坛账号jiangtao9999观看、评论!本文谢绝论坛账号jiangtao9999观看、评论!!本文谢绝论坛账号jiangtao9999观看、评论!!!

实验1
2409工程版 + Debian13(从2409工程版升级的测试版)双重引导,这两个系统的组合,2409继续官方的稳定、安全、硬件解码视频,Debian13测试版能了解、试用新软件。
最初是想写篇完成过程文章的,然后发现要写的内容可能很啰嗦,而且使用说明也有不少,所有就不写过程文章了,直接上实验完成的镜像压缩文件,体验试用演示版更直观,也可以通过试用分析出多重引导方法。镜像是为了演示、不是为了发行,而且是我个人手搓出来的,所以应该有很多小问题,大家凑合凑合着试用吧,这个镜像是让大家能构建自己的多重引导。镜像网盘地址:
链接: 百度网盘 请输入提取码 提取码: ng89 ,分享时间有限
1、镜像压缩文件约3.6GB,未压缩容量约15GB,所有需要准备不小于16GB的TF卡,下载完不需要解压,用以下命令直接写入TF卡:

su

xzcat -d -T0 vf2-2409-debian13-xfce.img.xz |dd of=/dev/sdX bs=1M status=progress

2、用户名:root
用户名:user
密码: starfive

3、镜像里分区,附图:



前4个分区是标准的2409工程版,第5分区是Debian13测试版。为了把镜像压缩较小,把空闲空间划分成未分配,写入完TF卡要做空间扩容。扩容方法很简单的,两个系统我都安装了gparted,例如我是在第5分区xfce4里做完2个分区扩容。
4、两个分区的切换:新打开一个终端,命令行输入: ./to2409 回车 或者 ./to13 回车,输入密码,不管密码正确与否都会重启vf2,区别在与密码对了就切换到另一个分区,密码不对不切换。
5、2409分区的firefox和chromium版本跟随vf2官方debian库升级;第5分区的firefox版本跟随debian官方库升级,debian官方库目前是没有chromium for riscv,5分区里的chromium126是我从网上找的,能用、不保证安全,不能在VF2上支持硬件解码。如果chromium需要在wayland输入中文,可以尝试新开终端,命令行输入 ./chrome-gtk4 打开chromium,如果这个方法不行,请参考这篇文章设置
6、这两个系统都是6.6.20单内核引导,因为第3分区只有100M,所以我把5.15内核在/boot分区的相关文件删除。第3分区我建立6620这个目录,里面保存的是2409工程版6.6.20内核在/boot/目录,最初版本的相关5个文件。
7、这两个分区的系统都可以apt upgrade,apt upgrade有一定概率会修改/boot的相关内核文件。2409工程版的归档库是不会有能升级的软件包,以后能升级的包应该都是starfive debian库,starfive库里如果有修改/boot文件时,我猜应该是有新的工程版,这个演示用TF也该完成使命。 第5分区的Debian13测试版,更新软件包应该有很多,每天10多~上百个,Debian13测试版去修改/boot文件的机率比较多,不用太担心,它一般修改后不会造成系统奔溃,只是会让系统找不到GPU VPU设备,从2409工程版升级到Debian13测试版,其实已经把GPU VPU的相关驱动破坏了的,相关图形处理都是cpu完成,也因为VF2的GPU VPU驱动被破坏,XFCE4才能流畅、无变色运行,有些在工程版不能运行的游戏,没GPU反而能正常运行,所以GPU VPU设备找不到, 对第5分区基本不影响,只会影响第4分区能不能正常使用GPU VPU。我在to2409的切换脚本里做了设置,每次从第5分区切换到第4分区,就会先把/boot/6620/下的备份文件复制覆盖/boot/的相关文件,我从2405工程版开始到现在,几个月都是这样解决的。如果万一脚本里的复制失效,被切换到第4分区后,用root进入命令行,把/boot/6620/的备份文件手动复制到/boot/,然后reboot 。
8、第5分区因为没有GPU VPU,图形处理和视频解码都是靠CPU,为了流畅,建议屏幕分辨率不要超过1366x768,视频播放选480p~720p。
9、第4分区保持在用gdm3,第5分区目前采用是xfce4配套的lightdm。在它们的登陆选项里,你能看到sway,原生的wayland桌面环境,轻量级,有没有GPU它都能流畅运行;我都配置好,可用,具体使用方法请参考或其他文章。
10、在第4分区2409工程版,使用gnome和sway时,谨慎从3.5音频输出声音,有一定概率出现杂音或vf2自动重启。这不是因为我构建双重引导,前几天在测试2409单系统时就多次碰上,感觉好像是低版本gdm3和pipewire这些声音系统不匹配,在2405工程版时,我也碰到过,当时是gdm3和pavucontrol在使用3.5音频时不太兼任。
11、第5分区还能有更多更漂亮的登陆管理器和桌面环境,这是为啥要从工程版升级到debian13测试版原因。我是怕配置太多会眼花,所以才只弄了xfce4,也许过段时间,我会在这个双重引导镜像的基础上再做一个有新界面的。
本文完成与这个双重引导的第5分区, VF2 + Debian13测试版 + Xfce4(x11) + Chromium126。

实验2
2409工程版 + batocera linux 40 的双重引导TF镜像。
1、batocera linux是复古游戏模拟器batocera的系统。以上的文章我说过,batocera linux 镜像是最适合与其他系统镜像组成多重引导的, 因为batocera linux for visionfive2,是用StatFive VF2 SDK构建的,starfive 6.1.31内核,标准4分区结构,但batocera最特别的是它把系统文件全部放在第三boot分区,所有的主要文件都放置在一个1.8GB的系统文件里,附图


batocera系统文件是不易被修改的,而且batocera启动后,对很多关键目录是写保护的,例如/boot就是写保护的,解除写保护需要 mount -o remount,rw /boot 。
2、2409工程版和batocera linux 单卡双引导后,batocera linux的在线升级只会对/boot/boot/里的文件进行修改,而且它的更新并不频繁。2409工程版apt upgrade,也影响不了batocera linux 。
3、2409工程版 + batocera linux 40 的双重引导TF镜像文件,下载链接: 百度网盘 请输入提取码 提取码: us4q ,有效期365天(我猜这个镜像的寿命可以会长些,batocera不需要升级,2409工程版可以在线升级)。下载本地解压,烧录到TF卡。用户名:root 和 user , 密码: starfive。
4、2409工程版 + batocera linux 40 的双重引导TF镜像分区图

第1、2分区spl和uboot。第3分区是两个系统的boot分区,也是batocera linux的主系统分区,所以是4GB容量,目前剩余的2GB容量是用于Batocera更新。
5、第4分区是batocera用户数据分区,目前剩余很多容量是因为没有添加游戏,我在制作时曾经添加过很多游戏,构建几次镜像文件后,都是因为数据太大而放弃构建,游戏文件原就是zip压缩的,构建成镜像时无法对游戏文件再有压缩率。增加游戏只有麻烦你自己从网上下载添加。例如百度贴吧里batocera吧,贴吧置顶的两个帖子里有带游戏的batocera for x64镜像文件,CPU架构不同、但游戏数据文件是通用的,解压后提取bios和rom目录,复制到双引导镜像的第4分区,启动batocera,自动搜索添加可玩。
6、第5分区是2409工程版,你就按正常使用就行,随意apt upgrade,从gdm3登陆选项里能看到gnome和sway, sway桌面环境的使用请参考。在2490工程版系统里可以挂载第4分区,用root权限添加删除游戏。
7、从2409系统切换到batocera的方法:新打开一个终端,命令行输入: ./toba 回车,输入密码,不管密码正确与否都会重启vf2,区别在与密码对了就切换到另一个分区,密码不对不切换。
8、从batocera切换到2409的方法:在图形主界面,按ctrl+alt+f3 进入命令行界面,回车,进入命令行提示符,输入:./to2409 回车,不需要输入密码就会重启vf2,如果脚本运行正常,应该会切换到2409.

本文完成于这个双重引导镜像,vf2 + 2409工程版 + sway +chromium103。