经过将近半年的努力,第一个太乙镜像终于发布了。之所以花这么久时间,主要是因为这一步迈的比较大。

一. 新特征

1. RootFS升级为Ubuntu 24.04LTS

大家知道,Ubuntu的LTS版本都是在双年发步,所以去年的幽兰镜像使用的要么是2022年发布的22.04或者2023年发布的过度版本(intermediate)。
24.04LTS代号为Nobol Numbat,是Canonical公司积累20年功力打造的最新作品,包含了大量改进。比如使用最新的GNOME 46.

geduer@ulan:~$ gnome-shell --version
GNOME Shell 46.0

关于GNOME的更多新特征,请参阅:
https://ubuntu.com/blog/canonical-releases-ubuntu-24-04-noble-numbat

2. 内核6

内核方面,我们做了很多努力,希望内核也和用户空间一样,向前迈一大步。
不过,虽然我们花了很多时间来适配内核6,但是仍有一个比较大的问题,那就是睡眠后唤醒失败。因为此,我们只好暂时选择如下过渡方案:
默认还是启动内核5,如果大家需要学习或者开发需要,那么可以输入下面命令(需uboot更新),切换到内核6

sudo reboot krnl6

3. 调试支持

为了方便调试早期启动过程,在太乙镜像中,我们把ndb模块编译进了内核

4. Waydroid升级

挺长一段时间里,Waydroid不支持Ubuntu 24.04. 在Waydroid项目的问题列表里,这个问题的编号是1325.
https://github.com/waydroid/waydroid/issues/1325

我们一直关注着这个问题,期待它早日解决,这也是导致太乙镜像延迟的一个重要原因。大约在今年7月,这个问题的状况终于有所好转。

5. 默认使用chromium浏览器

虽然双剑使用的Brave浏览器也是基于Chromium的开源项目,但是考虑大家的习惯,太乙还是默认安装了Chromium浏览器。

6. 升级u-boot

配合太乙镜像的多重启动需求,我们对u-boot也做了很多改进,包括:
支持通过配置文件修改内核命令行参数,以及支持通过reboot命令,切换内核,详见:https://www.nanocode.cn/wiki/docs/youlan/yl_test_kernel

7. 更新了学习和试验用的gelabs代码

8. 修正indler漏洞

在测试太乙镜像的工程中,我们发现了Linux内核的安全漏洞,取名为indler,这个漏洞已经报告到了CNVD和security@kernel.org, 但它还属于0-day状态,upstream的修改还没有发布。在太乙镜像中,我们用了临时修改方案。

二. 更新方法

因为这一次是把rootfs做大的升级,所以对于幽兰的老用户,需要大家先备份好数据,建议把自己的文件先备份到优盘。然后把太乙1刷到nvme固态硬盘。

1. 更新uboot

wget https://gedu.oss-cn-beijing.aliyuncs.com/Products/YourLand/Release/TaiYi1/taiyi_uboot.bin
sudo dd if=taiyi_uboot.bin of=/dev/mtdblock0

2. 刷秀峰镜像到EMMC,准备好“备胎”

把emmc内的数据提前备份出来,使用gparted工具将emmc的数据都清空后,然后就可以在emmc安装秀峰系统,以便随时恢复到双剑系统。

注意:一定要将emmc整个盘的数据都清空后,才可以进入刷机模式安装秀峰,请务必备份好emmc数据。

其中秀峰的下载链接如下:
两个链接任选一个下载

https://pan.baidu.com/s/1X7PoDbcUdjkVEQp3F04Tlw 
提取码:egzt
https://gedu.oss-cn-beijing.aliyuncs.com/Products/YourLand/Release/EmmcBak/ulan-emmc-bak-ver1.iso

参考链接https://www.nanocode.cn/wiki/docs/youlan/sdboot 制作成启动优盘
安装秀峰方法:插上启动优盘,开机按五下电源键,进入刷机模式,等待安装完成

3. 把太乙镜像刷到nvme

后面开机继续连按五下电源键,进入秀峰系统,打开命令行
将下载的镜像解压安装,需要所在空间至少有30g容量

wget https://gedu.oss-cn-beijing.aliyuncs.com/Products/YourLand/Release/TaiYi1/taiyi_mini.tar.gz
tar -zxvf taiyi_mini.tar.gz
cd taiyi_mini
sudo dd if=taiyi_mini.img of=/dev/nvme0n1 

三. 如何恢复

参考下面链接恢复到双剑1
https://www.nanocode.cn/wiki/docs/youlan/updatetoshuangjian

附录1:小窍门

升级后,系统默认启动NVME上的新系统;如果希望启动emmc上的Linux,只要输入 sudo reboot emmc,幽兰就会重启进入到 emmc 内的系统

附录2:已知问题

1. 使用Wayland

因为腾讯会议必须依赖X11的图形系统,所以太乙1默认使用X11,如果你希望使用wayland,那么以管理员身份打开/etc/gdm3/custom.conf,
把WaylandEnable=false注释了,再重启就可以了

2. 登录阶段鼠标不能动

因为Ubuntu 24.04和X11配合,有个已知的问题,可能导致输入密码后黑屏;所以太乙1镜像里不得不加入了一个缓解手段,故意先把鼠标禁止,等登录成功后再启用。建议大家在登录界面使用键盘输入密码,登录后过几秒钟鼠标就可以使用了。如果感觉无法输入密码,那么请使用tab键切换输入焦点。

3. 睡眠回来可能花屏

这是GPU驱动相关的一个问题,我们准备在太乙2镜像里彻底升级GPU驱动。如果大家遇到这个不要慌,这是个纯软件的问题,不是显示器坏了;只要重启一下系统就好了。重启的方式可以使用串口控制台,或者在花屏后的界面操作(显示不清楚,但是依稀可以分辨)。

作者:zuoyingying  创建时间:2024-09-20 15:06
最后编辑:Zhang Yinkui  更新时间:2024-10-15 11:09