在 Surface Go 安装 openSUSE 的几个小坑

手上这台 Surface Go 买来也有一年多了,作为微软家的产品,它和 Windows 集成度自然是很高的。因此一直很好奇在上面安装 Linux 发行版是什么体验。但考虑到可能存在的兼容性问题,一直没有尝试。

碰巧最近更新到 Windows10 2004,遭遇各种 bug。又在 office 365 上遭遇了一波 bug,无比怀念在实体机上运行 Linux 发行版的畅快。于是下载了 openSUSE Tumbleweed 20200919 镜像进行安装。

注意:本文适用于保留 Windows 的情况下的安装,如果移除 Windows 系统,情况可能会有所不同。此外,请务必确认 Windows 系统分区 Bitlocker 恢复密钥可以获取。(参考

安装

安装过程还算顺利,和在其他电脑上没有什么区别。

一些教程指出需要禁用 Secure Boot,就我的体验来看即使不禁用也可以顺利安装。

引导

安装后的引导是第一个坑。

不知道微软采用了什么机制,启动后总是会引导到 Windows,连 grub 的影子都没有见到。在 Surface UEFI 中也无法调整相关顺序。

一个解决方案是使用安装镜像自带的引导 Linux 功能引导到安装后的系统,然后使用 efibootmgr 调整引导顺序:

# efibootmgr

BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0000,2001,0002,0001,0003
Boot0000* Windows Boot Manager
Boot0001* opensuse-secureboot
Boot0003* openSUSE
Boot2001* EFI USB Device
Boot2002* EFI Network

其中的 BootOrder: 指定了启动顺序。我希望如果有插入 usb 可引导设备,则从外部设备引导,否则引导到 openSUSE。因此我把 EFI USB Device 放在首位,opensuse-secureboot 放在第二位,其余项放后面。使用以下命令调整(不同设备对应编号可能不同):

# efibootmgr -o 2001,0001,0000,2002,0003

然后打开 Yast-引导加载器,保存配置即可。(熟悉的话也可使用 grub-mkconfig)

重启后就可以进入 grub 了。

输入 Bitlocker 恢复密钥

此时如果引导到 WIndows,会提示输入 Bitlocker 恢复密钥,一般系统盘的密钥在 Microsoft 账户上会有备份。输入后即可进入 Windows。

兼容性问题

Wi-Fi 和蓝牙

进入系统后首先发现的兼容性问题是网卡不工作。Surface Go 使用 QCA6174a 提供 Wi-Fi 和蓝牙,该硬件驱动按理说应该已经在内核中了,但是似乎存在 bug。

这里提到的方法,使用第三方维护的文件,无效。

这里的这个方法十分可行,不过需要依赖 Windows。在 openSUSE 上操作略有不同:

首先将 Windows 以下路径的文件复制一份到 openSUSE 中:

C:\WINDOWS\system32\drivers\eeprom_ar6320_3p0_TX8_clpc.bin

然后将这个文件复制到/lib/firmware/ath10k/QCA6714/hw3.0/中(似乎不需要复制到 hw2.0),分别命名为 board.binboard-2.bin

重启后 Wi-Fi 和蓝牙都能正常工作了。

相机(暂无解决方案)

目前相机无法使用,似乎也没有可用驱动,并且可能很难解决

Windows 无法关机(暂无解决方案)

另一个比较坑的地方是安装后 Windows 无法正常关机。

一开始我没有关闭快速启动,使用开始菜单关机后行为如同注销,系统会跳转到登录界面,不能正常关机。

关闭快速启动后,使用开始菜单关机后系统卡在关机界面,必须长按电源键强制关机。

暂时没有找到解决方案。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です