为什么这么麻烦

前几日,“外星人”败给了贪婪,狠心买了拯救者2023款 R9000P 和 Legion Go 掌机,想着或许能够减少负担,外出随手一个掌机,偶尔的文字工作和适度娱乐,结果大量的编译需求,16G 的内存实在是太弱了,才又购入 Legion R9000P 。

当一台计算机归我所有,我不会让 Windows 作为物理机的操作系统。于是掌机也不再是所谓 Win 掌机,R9000P 的系统也秒变 Linux。

另外,我不喜欢长期支持版的 Linux 发行版,也不喜欢传统的 Ubuntu, Debian, Fedora, openSUSE,因为它们还是限制了我的自由,还是 Archlinux 和 Gentoo 更适合我的口味。尤其是 Gentoo 。

麻烦一之Legion Go 掌机:

Legion Go 掌机是联想第一代 Win 掌机,是目前市面上一线 Win 掌机中硬件性能最好,屏幕最大。联想作为一线大厂,掌机做工不错。于是购买它也就是因为看中了它优秀的硬件性能。

Windows 的兼容性并不是我关心的主要内容,首先就是直接插上 USB 从 Ventoy 引导启动 Archlinux,于是你会惊讶的发现屏幕是竖屏——讲真我并没有惊讶,我用过 GPD Win 掌机还有 Steam Deck ——它也成为几乎所有 Win 掌机,亦或是大部分市面上掌机的特点。于是就开始了熟练的安装 Archlinux ,安装完成后,使用 Wayland 的 session 进入桌面,调整下屏幕的方向就能正常使用了。不过总是好奇有没有什么办法在机器启动后就能转为横屏,于是 Github 上搜索了下,在这里,你会惊讶的发现已经有朋友做好了内核补丁,并往上游推。对于 Archlinux 而言,需要专门打包一个可以方便使用 Legion Go 内核其实不难,写一个 PKGBUILD ,然后发到 OBS 就可以了。不过寻思下,一不做二不休,如果要编译内核,硬件还是全套树内,无需使用树外内核模块,还不如使用 Gentoo,这样我可以使用 AOCC 编译内核,还能有效提升硬件性能。

于是花了点时间,在 Legion Go 上安装了 Gentoo 系统,整个系统用 -O2 -march=znver3 -pipe 编译构建。内核使用 AOCC 编译,内核没有开 LTO ,因为内存太少了,一开就炸内存。于是,下图就是目前 Legion Go 掌机。

对,没有用 Wayland,有朋友会问 AMD YES,怎么不用,原因是在 Wayland 下有些游戏无法运行和显示。比方说《瑞奇与叮当 时空跳转》

解决了竖屏和不兼容手柄的内核问题,下一个就是如何顺利更新掌机的 BIOS 了。联想有个特点,就是非商务机型,一般不提供 Linux 下使用 fwupd 更新,所以解决方法还是需要使用 Windows,不过,并不需要双系统,毕竟 Windows 只是一个用于更新 BIOS 的工具而已。

于是就用 R9000P 制作一个 Windows To Go,利用它给掌机和自己更新 BIOS,那么,如何在 Linux 系统下制作 WinToGo 就是另一个故事了。我会写在最后一个部分。

利用 WinToGo 更新 Legion Go 掌机其实很简单,毕竟操作系统能够“触摸”到物理硬件层,更新遵循下载新BIOS,双击运行后重启就能更新了。只不过更新后原先 Gentoo 启动项会被清除,解决也很容易,用 Ventoy 启动一个 Archlinux,进去 chroot 以后,利用 systemd-boot 自带的 bootctl install 就能顺利搞定。

这也就是 Legion Go 在使用 Linux 上遇到的一些小插曲。有朋友会问,Legion Go 在 Gentoo 下使用 Steam 有玩游戏的体验如何?个人认为还行,毕竟我没有用 Legion Go 运行过 Windows ,没有直观的对比,它更像是升级版的 Steam Deck,性能在我优化下,单核性能和多核跑分都不错。

这是我的分数,下面是 Windows 的

大家细品,对 Windows 还有什么值得期待的,乐~

这就是我的 Legion Go 折腾小记。

麻烦二之如何给 Legion 系刷 BIOS

刷 BIOS 在 Linux 系统下如今有非常方便的方法了,就是利用 fwupd 工具,方法不难,可以参考 Archlinux 的 wiki ,很简单,不过联想给我们设置了一道障碍,就是在 LVFS 数据库中,是没有 Legion 系的,于是就像上一部分提到的,需要利用到 WinToGo 去更新 BIOS,目前网络中提到如何制作 WinToGo 的方法不多,我的方法可以兼容 Windows 和 Linux,亦或是 macOS,所以有需要的朋友可以参考下。

以我使用 R9000P 的笔记本为例,操作系统是 Gentoo Linux 来制作一个 WinToGo。

  • 第一,安装 virtualbox ,使用命令:doas emerge -avl app-emulation/virtualbox ,这里需要大家注意的是,我不用 sudo ,所以以下提到的 doas 就是 sudo 。
  • 第二,完成安装后,按照 Gentoo wiki 的方法,设置开机加载 virtualbox 的内核模块,参考这里。如果你是其他 Linux 发行版请参考相关维基。
  • 第三,在 virtualbox 里面安装 Windows 11,安装需要注意点击专家模式磁盘选择 vhd ,预先分配好空间,非常重要,随后正常安装系统,安装到联网登陆自己账户这里,选择离线账户管理员,离线创建 Windows 账户遵循,进入 Windows 11 界面后按下:Shift+F2,进入 CMD 界面,然后输入以下命令:OOBE\BYPASSNRO ,随后回车。
  • 第四、Windows 11 重启后就可以创建离线管理员账户了,输入密码处直接回车过,后面一路跳过后,进入桌面。
  • 第五、Windows 11 激活,非常简单,不需要下载任何破解软件,首先是联网,然后右键 Win 图标,管理员权限打开 CMD 后,输入以下命令:irm https://massgrave.dev/get | iex
  • 第六、会有一个 CMD 窗口弹出,是英语,直接点击“1”,回车,等结束,按“0”退出,重启就激活了。

好的,至此,Virtualbox 中顺利安装好一个完整的 Windows 11系统了。下载一个 Ventoy 的 Windows 版本,插上一个高速移动硬盘,里面的空间越大越好,我的是512G的,利用 Ventoy 创建,遵循如下图片过程。

按后选择你的移动硬盘就可以开始制作 ventoy 了。完成后,关闭 Virtualbox 中的 Windows 11系统。

将移动硬盘挂载到 Linux 系统中,到你存放 Virtualbox 虚拟磁盘的目下,把 WinToGo.vhd 文件复制到 ventoy 根目录下。

就是上图这个文件,我的有 80G 大家根据自己的实际情况设置虚拟机磁盘大小。

搞定了这里,需要到下面这个 Github 项目下去下载 ventoy 引导 vhd 的镜像。解压 zip 后将下图中的文件复制。

实测,Win10Based 可以引导 Windows 11

将这个文件复制后,在 ventoy 目录下(和 vhd 虚拟机磁盘文件同级目录)创建一个目录,名字叫做 ventoy,进入后将 ventoy_vhdboot.img 粘贴进去。

在弹出移动硬盘之前,打开终端,输入 doas sync; doas reboot 然后按下 F12 选择 ventoy 的移动硬盘 EFI 启动项,进入后选择 WinToGo.vhd 就能进入 Windows 11 了,这里当然你可以安装一些驱动,也就能联网下载 BIOS 固件了,我的方法比较粗糙,没有下载驱动,把笔记本连接手机后,使用手机作为网卡直接下载 BIOS 文件即可。

后面刷 BIOS 就超级简单了,按下一步就能搞定,重启后,联想的 Legion 系列,首先刷 BIOS,再刷 EC 重启后,无法进入 Linux 系统,没关系,Ventoy 进入 Archlinux ,chroot 修一下就好了。

写在最后

  • 写该文的目的:方便后续朋友在 Legion 系上折腾,也同样分享给 LenovoLegion 推特的朋友,协助后续增加 BIOS 文件到 LVFS 数据库,为后续开源操作系统更新提供支持。
  • 文中提到了一个激活 Windows 11 的方法,该项目在 Github 上,详情参考这里
  • 有任何问题请留言,我会及时回复,谢谢各位朋友的关注。
  • 最后是我的 R9000P 具体型号,提供给 LenovoLegion 官方推特朋友

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注