
如果你手头刚好有一台 Surface Go 2又不想让它永远活成一台 Windows 记事本这篇文章就是为你准备的。我当初入这台机器就是想找一个能塞进通勤包、能写代码、能跑 ROS / 嵌入式工具链的小本子后来发现真正让它脱胎换骨的反而是 Ubuntu 20.04 双系统安装和驱动配置完成后那几天。Surface Go 2 本身硬件不大但照顾到 Type Cover、触摸屏、摄像头、音频、WiFi 这些部件光是驱动就得比普通笔记本多花一倍的耐心。这篇文章不打算讲虚的我直接把从 U 盘制作、Windows 分区压缩、UEFI 设置、Ubuntu 手动分区、驱动修复到日常开发环境搭建的完整过程写出来适合手里有 Surface Go 2、愿意折腾 Linux 的朋友参考也适合想在小平板/二合一本上装 Ubuntu 的人提前避坑。网上关于 Ubuntu 双系统安装的教程很多但放在 Surface Go 2 上会多出几道坎Type Cover 在官方内核下不一定好用、触摸屏和触控笔需要额外的用户态服务、WiFi 掉线可能不是路由器而是固件问题、合盖睡眠后电量掉得厉害。这些如果不提前知道很容易在装完系统却连不上网那一步就放弃。下面按我实际操作的顺序来尽量做到每一步都能照抄。1. 为什么是 Surface Go 2又为什么要 Ubuntu 20.041.1 这台机器的硬件底子Surface Go 2 有两条产品线低配是 Pentium Gold 4425Y高配是 Core m3-8100Y两者都是无风扇设计配上最大 8GB 内存。做日常开发、写文档、跑虚拟机、编译小型项目都够用但你得接受它不是一台性能猛兽。存储方面64GB 版本用的是 eMMC速度比 NVMe SSD 慢不少128GB/256GB 版本则普遍是 SSD。装 Linux 时磁盘设备名会有区别eMMC 大概率是/dev/mmcblk0SSD 大概率是/dev/nvme0n1。这一点在安装时非常重要后面分区我会专门说。显卡是 Intel UHD Graphics 615不是 NVIDIA。很多人一搜索Ubuntu 20.04 驱动配置就跑去装 NVIDIA 驱动其实在 Surface Go 2 上完全没必要Intel 核显用内核自带的 i915 驱动就很稳。只要不是跑大型 3D 或深度学习训练这台机器完全能当一台安静的小开发本用。1.2 为什么我还是选 Ubuntu 20.04现在 22.04、24.04 都已经很成熟了但我觉得 20.04 对 Surface Go 2 来说仍然是一个很合适的基线。首先是 ROS Noetic它官方支持的就是 Ubuntu 20.04很多嵌入式开发板和工业项目文档里给的例子也都是基于 20.04。其次是稳定性20.04 是 LTS虽然内核版本偏老但我们可以通过安装 linux-surface 社区内核来补齐硬件支持这个后面会详细讲。另外20.04.6 是这个系列的最后一个点版本相对 20.04 刚发布时的版本固件和软件包已经修得非常稳。如果你只想装一个开机就能干活的系统20.04.6 比 20.04 刚出那会少很多麻烦。当然选 20.04 也有代价。老内核默认对 Surface Go 2 的触摸屏、音频、传感器支持不算完整需要再花点时间补驱动。我的建议是把 20.04 当作稳定底座安装完成后立刻切到 linux-surface 内核这样既保留 Ubuntu 20.04 的生态又获得接近 Windows 的硬件体验。1.3 现实预期管理哪些能用哪些需要折腾在动手之前我先给你一张基于社区和我个人实测的支持情况表避免装到一半心里落差太大。硬件模块官方 20.04 内核linux-surface 内核Type Cover 键盘/触控板基本能用但触控板手势可能不全支持完整键鼠体验接近 Windows触摸屏/触控笔可能出现点击不准或无法识别笔压iptsd libwacom 组合比较完善WiFiQCA6174大概率要手动装 linux-firmware同样要装 firmware但更稳音频装了 sof-firmware 后大概率能出声相对更不容易发生无声摄像头部分 UVC 摄像头可用个别要碰运气支持更好但仍取决于固件版本睡眠/合盖耗电明显偶尔会睡死有改善但别把它当 S3 待机用这不是故意吓唬人而是二合一设备在 Linux 下的通病。Surface Go 2 的触摸屏和触控笔依赖 Intel Precise Touch 相关补丁官方内核没有完全合入社区内核把这些补丁整合在一起所以装完 Ubuntu 后换内核不是可选项而是必选项。2. 装系统前请先完成这四件事2.1 备份、BitLocker 和快速启动很多人上来就直接做启动盘结果分区时发现 C 盘能压缩的空间非常小或者装完 Ubuntu 后 Windows 需要 BitLocker 恢复密钥。原因就是 Surface 设备默认开了设备加密也就是 BitLocker。如果你打算以后还继续用 Windows先备份重要文件然后以管理员身份打开命令提示符或 PowerShell执行manage-bde -protectors -get C: manage-bde -off C:manage-bde -off C:的意思是开始解密 C 盘。执行完别急着关机等系统后台把解密跑完。可以通过下面的命令确认加密状态manage-bde -status C:看到加密状态变成已解密再继续。如果你实在不想关也可以只导出恢复密钥但后续一旦动到 UEFI 的启动项或内核签名Windows 很可能弹出恢复界面没有密钥会很麻烦。接下来关闭 Windows 的快速启动。快速启动本质上是把关机变成休眠会导致双系统切换时磁盘状态不一致也容易让 Ubuntu 挂载 NTFS 分区时出现风险。在管理员命令行里执行powercfg /h off这一步会同时关闭休眠文件和快速启动。我又在一些机器上遇到过关闭后 C 盘剩余空间突然变大了说明页面文件法和休眠文件法确实占了不少空间。2.2 用磁盘管理腾出 Ubuntu 的空间Windows 装双系统最常用的方式是用磁盘管理把 C 盘压缩出一块未分配空间。按Win X选择磁盘管理右键 C 盘选压缩卷输入要压缩出的空间大小。压缩多少取决于你的存储版本和用途。我的建议是Surface Go 2 存储建议分配给 Ubuntu适合用途64GB eMMC30GB 左右命令行开发、轻量代码编辑128GB SSD50GB 左右桌面环境 ROS/嵌入式工具链256GB SSD80GB 以上Docker、虚拟机、大工程编译如果压缩时发现可压缩空间远小于预期通常是因为系统文件、休眠文件或页面文件占了位置。上面已经把休眠关了如果再不行可以先把页面文件临时改成无重启后再压缩压缩完再把页面文件调回来。这个过程不复杂但一定要有耐心。压缩完成后你会看到 C 盘后面多出一块未分配区域。这就是 Ubuntu 的安身之地。后面安装时不要在安装器里选自动安装我们要手动分区原因稍后解释。2.3 下载镜像和制作启动 U 盘Ubuntu 20.04 的镜像下载地址很好找官方 releases 页面有 20.04.6 的 ISO。如果官方下载速度不理想用国内高校镜像站也可以比如清华镜像源路径里选择20.04.6目录下的ubuntu-20.04.6-desktop-amd64.iso大概 2.5GB 左右。制作启动盘我用过 Rufus 和 balenaEtcher两者都能成功。Rufus 在写入时可能会提示将使用 DD 镜像模式写入选 Yes 就好。如果 U 盘无法引导重写一次换 DD 模式往往能解决。有一点要提前说安装过程中 Type Cover 很可能会没反应所以最好准备一个 USB Hub 和一个 USB 有线键盘。如果连鼠标都没有也可以用 Type Cover 碰碰运气但别把希望全押在它身上。2.4 Surface UEFI 设置关 Secure Boot、开 USB 启动Surface Go 2 进入 UEFI 有几种方式在 Windows 下执行shutdown /r /fw /t 0或者关机后按住音量加号不放再按一下电源键。进入 UEFI 后重点改两处Security - Secure Boot - 设为 DisabledBoot configuration - 确保 USB 启动是开启状态关掉 Secure Boot 是为了避免第三方内核签名问题。linux-surface 内核虽然也提供 Secure Boot 的 MOK 方案但新手在第一次安装时容易卡在 MOK 管理界面不如先关掉。后面如果对安全有要求再重新开都不迟。另外不要去动 TPM 设置。Surface 的 UEFI 里有 TPM 相关选项我们不需要关它。关 Secure Boot 和 BitLocker 之后再动磁盘Windows 不会因此崩溃。3. 双系统安装实操分区方案和引导修复3.1 Live 环境确认磁盘信息U 盘启动后选择试用 Ubuntu先进入 Live 桌面。按Ctrl Alt T打开终端执行lsblk -f这个命令会显示所有磁盘和分区。重点看有没有一个 fat32 格式、挂载点写着 EFI 的小分区一般在 100MB 到 512MB 之间。你的磁盘是/dev/nvme0n1还是/dev/mmcblk0。Windows 的 C 盘是哪个分区不要搞错。再执行lspci -nnk | grep -iA3 network可以提前看一眼无线网卡型号和驱动状态。如果你的 WiFi 芯片是 Qualcomm Atheros QCA6174那属于正常情况后文会专门处理。3.2 手动分区方案极简且不容易翻车进入安装界面后在安装类型里选择其他选项。我强烈建议不要选与 Windows 共存因为安装器自动分区时可能把 /boot 分区搞得很小或者在双系统引导上产生歧义。手动分区的核心原则是找到已有的 EFI 分区把它挂载为/boot/efi千万不要格式化。在 Windows 压缩出的空闲区域里把剩余空间新建为 ext4挂载到/。如果内存只有 4GB建议再建一个 4GB swap 分区如果内存 8GB 且不打算休眠也可以跳过。举一个 128GB SSD 的参考方案分区大小格式/类型挂载点/dev/nvme0n1p1260MB已有EFI System Partition/boot/efi不格式化/dev/nvme0n1p216MB已有Microsoft Reserved不用管/dev/nvme0n1p3Windows 的 C 盘已有NTFS保持原样空闲空间50GB 左右ext4/空闲空间4GB可选swap[swap]如果你的是 64GB eMMC 版本可能看不到独立的 NVMe 分区而是/dev/mmcblk0p1、/dev/mmcblk0p2这样的命名。逻辑一样关键是找到 fat32 的 EFI 分区其他照做。手动分区时选择空闲空间点大小填给根分区的容量类型选主分区用于Ext4 日志文件系统挂载点选/。swap 分区则在类型里选交换空间。最后一步要看清楚底部安装启动引导器的设备下拉框选择整块磁盘例如/dev/nvme0n1或/dev/mmcblk0而不是选某个分区。这样 GRUB 才能装到磁盘的 UEFI 引导路径上。3.3 安装过程中容易卡住的几个点第一个坑是 Type Cover 在安装界面里完全没反应。这种情况下只能靠外接 USB 键盘。如果外接键盘也没反应检查 USB 口是否插在 Surface Connect 旁边那个 USB-C 口或者换个 USB Hub。第二个坑是安装器在检测到空闲分区时默认创建的分区方案可能占用整个磁盘导致 Windows 分区被覆盖。所以一定要在其他选项里手动选确认根分区落在之前压缩出来的空闲空间上而不是 Windows 的 C 盘。第三个坑是如果你强行给 /boot 单独挂载一个小分区后续 linux-surface 内核升级时容易因为 /boot 空间不足失败。我的建议是不单独分 /boot而是让安装器把 /boot 放在 / 分区内部省心很多。3.4 首次重启、GRUB 引导和时间同步安装完成后重启如果一切顺利应该能看到 GRUB 菜单。要是直接进了 Windows不要慌多半是 UEFI 把 Windows Boot Manager 排在了前面。重启时按住音量加号进 UEFI在 Boot configuration 里把ubuntu调到第一项或者找到 UEFI 启动菜单临时选择 Ubuntu。进 Ubuntu 后先打开终端更新引导sudo apt update sudo update-grubGRUB 会自动探测到 Windows 并把它加进菜单。如果探测不到可以安装os-prober再试sudo apt install os-prober sudo os-prober sudo update-grub双系统最容易碰到的一个小问题是 Windows 和 Ubuntu 时间相差 8 小时。原因是 Windows 默认把 BIOS 时间当本地时间Linux 默认当 UTC 时间。解决方法是让 Linux 使用本地时间sudo timedatectl set-local-rtc 1 --adjust-system-clock执行完再进 Windows 看时间就正常了。4. 驱动配置无线、触控、音频、摄像头一次说清4.1 先换内核linux-surface 才是核心中的核心很多人在装完 Ubuntu 后发现 Type Cover 时好时坏、触摸屏完全没反应就到处找 Surface 专用驱动。其实大部分问题的根源是内核不支持 Surface 硬件。社区维护的 linux-surface 内核把大量补丁都整合进去了装完之后很多硬件问题会一次性解决。在 Ubuntu 20.04 上安装 linux-surface 内核可以走 PPAsudo apt install software-properties-common sudo add-apt-repository ppa:linux-surface/ppa sudo apt update sudo apt install linux-surface-secureboot-mok sudo apt install linux-image-surface linux-headers-surface iptsd libwacom-surface sudo update-grub sudo reboot如果你关闭了 Secure Boot重启时不会出现 MOK 管理界面。如果还留着 Secure Boot重启后需要按提示选择Enroll key from disk完成密钥登记。重启后执行uname -a看到内核版本里带有-surface字样就说明换成功了。之后 Type Cover 的触控板、触摸屏、触控笔、自动旋转等都会有明显改善。这也解释了为什么前面安装系统时不让你折腾单个驱动因为顺序反了会做很多无用功。4.2 WiFi 和蓝牙QCA6174 的常见坑Surface Go 2 的无线网卡通常是 Qualcomm Atheros QCA6174需要ath10k驱动和对应固件。如果你刚装完 Ubuntu 发现无线图标都看不到先检查硬件识别情况lspci -nnk | grep -iA3 network输出里应该能看到 QCA6174并显示Kernel driver in use: ath10k_pci。如果驱动没有加载先安装固件包sudo apt update sudo apt install linux-firmware sudo reboot如果驱动和固件都在但 WiFi 信号弱、频繁断连通常和电源管理有关。NetworkManager 默认可能会对无线网卡做省电这对平板类设备尤其不友好。可以关掉sudo mkdir -p /etc/NetworkManager/conf.d sudo tee /etc/NetworkManager/conf.d/wifi-powersave.conf EOF [connection] wifi.powersave 2 EOF sudo systemctl restart NetworkManagerwifi.powersave 2表示禁用 Wi-Fi 省电让网卡保持全速连接。在续航上会有一些代价但稳定性比那一点电值钱得多。蓝牙方面QCA6174 的蓝牙通常是同一个芯片通过 USB 通道提供一般装完 linux-firmware 就能用。验证蓝牙状态可以执行bluetoothctl power on scan on如果蓝牙设备一直无法搜索到先确认是不是被 rfkill 禁用了rfkill list看到Soft blocked或Hard blocked就执行rfkill unblock bluetooth。4.3 触摸屏和触控笔iptsd 和 libwacom-surface 的配合Surface Go 2 的触摸屏不是通过最简单的 USB HID 协议直接工作它需要 Intel Precise Touch 相关补丁。安装 linux-surface 内核时我们装上了iptsd和libwacom-surface这两个包负责把触摸屏和触控笔事件转成标准的 Linux 输入设备。装好后先用xinput确认设备是不是被识别到了xinput list正常时你会看到类似Surface Type Cover、Surface Touchscreen这样的设备。如果看到触摸屏设备但触控笔没有压感可以检查 iptsd 服务journalctl --user -u iptsd -b如果日志里有错误最常见的是内核版本和 iptsd 版本不匹配。这时候回到 linux-surface PPA把它升级到最新版本sudo apt update sudo apt upgrade sudo reboot另外GNOME 桌面默认对触控笔的压感支持还可以但如果你用的是 KDE 或其它桌面记得在系统设置里看一下 Wacom 设备是否被识别。libwacom-surface这个包有一层很重要的作用它把 Surface 触控笔识别为符合 Wacom 协议的设备很多绘制软件依赖这个识别结果。4.4 音频从无声到出声的三种排查Surface Go 2 使用 Intel 平台的音频方案在 Ubuntu 20.04 里很可能遇到一个声卡都没显示的情况。先执行aplay -l如果没有输出设备大概率是缺少 Sound Open Firmware。sudo apt update sudo apt install sof-firmware alsa-ucm-conf sudo reboot如果重启后仍然无声问题可能出在内核选择音频 DSP 驱动的策略上。Intel 音频驱动有两个方向传统 HDA 和 SOF。可以通过/etc/modprobe.d/下的文件强制指定sudo nano /etc/modprobe.d/soundfix.conf写入options snd-intel-dspcfg dsp_driver1然后更新内核参数并重启sudo update-initramfs -u sudo rebootdsp_driver1代表传统 HDA 驱动dsp_driver3代表 SOF 驱动。不同固件版本下Surface Go 2 可能需要试不同值。一般是先试 1不行改 3。改完后用aplay -l再看看声卡是否出现。还有个容易被忽略的点Ubuntu 桌面默认音频输出设备可能没选中正确的声卡。打开音量设置或安装pavucontrolsudo apt install pavucontrol在输出设备标签页里切换一下扬声器/耳机看看声音是否出来。4.5 摄像头、亮度与自动旋转摄像头在 Surface Go 2 上相对佛系。先看设备是否被内核识别lsusb dmesg | grep -i uvc如果有UVC Camera相关输出就可以用cheese或浏览器直接测摄像头。要是完全没输出先确认 Windows 内已经把 Surface 固件升级到最新再去装 linux-surface 内核。有些摄像头固件需要由 Windows 侧的 Surface 驱动更新Linux 本身无法主动升级固件。亮度控制一般是 Intel 平台的标准背光接口装完 linux-surface 内核后FN 亮度快捷键大多可用。如果快捷键没反应可以安装brightnessctl手动调sudo apt install brightnessctl brightnessctl set 10% brightnessctl set 50%自动旋转依赖iio-sensor-proxy。安装它sudo apt install iio-sensor-proxy然后在终端运行monitor-sensor转动屏幕时应该能看到加速度传感器的输出。如果完全没输出多半是内核缺少hid-sensor-hub相关补丁这在 linux-surface 内核里已经包含。GNOME 桌面在识别到传感器后会自动开启平板模式的屏幕旋转不用额外安装太多东西。5. 从能开机到适合开发内存、存储、电源与开发环境5.1 开发环境速建一条命令装齐基础工具驱动稳定之后这台机器才算真正变成开发本。先装最基础的工具链sudo apt update sudo apt install build-essential git curl wget vim htop cmake net-tools python3-pip编辑器我用 VS Code 比较多直接装 deb 包sudo snap install code --classic如果你不想用 Snap 版本也可以去微软官网下载.deb包用sudo apt install ./code_*.deb安装。对于 64GB 用户我建议能不用 Snap 就不用 Snap因为 Snap 的运行库会额外占很多空间。Docker 是不少开发场景的刚需。安装命令curl -fsSL https://get.docker.com | sudo sh sudo usermod -aG docker $USER执行完后注销重新登录当前用户就能直接执行docker命令了。如果你的目标是 ROS Noetic建议按官方文档操作核心是添加 ROS 软件源然后sudo apt install ros-noetic-desktop echo source /opt/ros/noetic/setup.bash ~/.bashrc source ~/.bashrcUbuntu 20.04 是 ROS Noetic 官方支持的版本这也是我坚持不换 22.04 的另一个原因。5.2 存储优化64GB eMMC 用户如何活下来64GB 版本装完 Ubuntu 20.04 桌面后可用空间很容易只剩 20GB 左右。对轻量开发来说其实够用但要注意几个占空间大户一个是journald日志。长时间运行后/var/log/journal可能吃好几 GB。可以设置日志上限sudo journalctl --vacuum-size100M想永久限制也行编辑/etc/systemd/journald.conf把SystemMaxUse改成 200M然后重启systemd-journald。另一个是 Snap 的缓存和旧版本。snap list可以看到所有 Snap 包如果确认不需要 Snap可以严格一点sudo apt purge snapd这会连带移除 Ubuntu 软件商店也会让部分默认应用失效。对 64GB 用户而言我的经验是开发工具尽量用apt或者官方 tar 包IDE 用 VS Code 的 deb 或者源码包浏览器用 Firefox 的.tar.bz2或 deb 版本保持系统干净。5.3 电源与睡眠别迷信 S3 深度睡眠Surface Go 2 在 Windows 上用的是 Modern Standby也就是 S0ix 待机并不是传统笔记本的 S3 睡眠。Linux 里面对应的是s2idle。检查当前支持情况cat /sys/power/mem_sleep看到s2idle是正常现象不要看到deep不存在就觉得系统不完整。在 Surface 系列上强行加mem_sleep_defaultdeep参数很可能导致合盖后直接睡死按任何键都醒不过来只能长按电源强制重启。我建议的做法是更新 linux-surface 内核后再谈睡眠老内核的 s2idle 状态确实容易异常耗电。合盖前把 WiFi、蓝牙都停掉不需要这么极端但可以关闭后台编译任务。如果长时间不打算用最好直接关机而不是合盖待机。电池信息可以通过upower查看upower -i /org/freedesktop/UPower/devices/battery_BAT0Surface Go 2 的电池管理在 Linux 下可以用但不要指望和 Windows 的电源策略完全一样。我是把它当作不插电能用一下午的终端机来用的重度编译仍然要插电。5.4 快照折腾内核前最重要的自救手段后面你肯定会遇到升级内核、调整 GRUB 参数、装某个驱动实验等情况。强烈建议在系统稳定之后先做个快照。timeshift是 Ubuntu 下比较方便的系统快照工具sudo apt install timeshift sudo timeshift --create --comments after install linux-surface --tags D如果你把根分区放在了 ext4 分区上timeshift 可以生成 rsync 快照占用不大但是能在系统崩溃时把你拉回来。Surface Go 2 这类小众设备最怕的不是坏驱动而是没有后悔药。6. 一周实测踩坑记录从引导丢失到内核升级翻车6.1 排错表遇到问题先按这个顺序查症状可能原因处理办法U 盘无法引导U 盘写入模式不对/接口兼容性用 Rufus 的 DD 模式重写换另一个 USB 口Type Cover 在安装时没反应官方内核缺少 Surface 键鼠补丁用外接 USB 键盘先完成安装装完 linux-surface系统开机黑屏内核参数或 GRUB 安装位置问题在 GRUB 菜单按 e 临时加nomodeset进系统后修正WiFi 搜不到或频繁掉线QCA6174 固件缺失/电源管理安装 linux-firmware关掉 NetworkManager 省电触摸屏能点但笔不流畅缺少 iptsd 或版本不匹配确认已安装 linux-surface 内核升级 iptsd完全没声音SOF 固件缺失或 DSP 驱动选择错误安装 sof-firmware试 dsp_driver1 或 3合盖睡眠后电量狂掉Modern Standby 下设备没有真正休眠更新 linux-surface 内核避免追加 deep 参数Windows 更新后 GRUB 丢失Windows 更新覆盖了 UEFI 启动项进 UEFI 手动选 ubuntu或使用 boot-repairWindows 和 Ubuntu 时间差 8 小时RTC 时间基准不一致timedatectl set-local-rtc 1 --adjust-system-clock摄像头黑屏固件未更新或 uvcvideo 未被触发回 Windows 更新 Surface 固件再试 linux-surface 内核这张表基本覆盖了我一个月内遇到的所有大问题。其中频率最高的是 WiFi 掉线和触摸屏不顺畅两个都是驱动或固件问题不是硬件毛病。6.2 几个令我印象深刻的现场第一次装完系统我兴冲冲地准备联网结果 WiFi 列表一片空白。lspci能看到 QCA6174但dmesg | grep ath10k显示 firmware 加载失败。后来发现 20.04 版的 linux-firmware 包版本比较老更新一遍就恢复了。所以如果你的情况和这个一样别急着换网卡驱动先更新固件。还有一次我手贱在/etc/default/grub里加了mem_sleep_defaultdeep想试试能不能让合盖睡眠更省电。结果合盖不到半小时再打开屏幕全黑按什么都没反应最后只能长按电源键 20 秒强制重启。后来查了内核文档才知道 Surface Go 2 在 Linux 下默认只支持 s2idle强行用 deep 就是自杀式配置。最后再说一个被很多教程忽略的点Windows 更新有可能会把 UEFI 启动顺序改回去导致开机直接进 Windows。这不是 Surface Go 2 特有的问题是双系统机器的通病。解决方式不是每次重装系统而是进 UEFI 把ubuntu启动项调到第一项或者在 Ubuntu 里执行sudo update-grub后重启。6.3 我现在的使用习惯折腾这一圈之后我基本固定成下面这套流程Windows 保留 30GB专门用于 Surface 固件升级和偶尔的文档处理。Ubuntu 的根分区保留 50GB 以上所有代码和项目放在里面。每次升级内核或系统大版本前用 timeshift 做一个快照。不在 Ubuntu 里折腾 Big Sur/Hackintosh 那种高风险操作Surface Go 2 不是拿来跑黑苹果的。这台机器现在对我来说就是一台随时随地打开终端、跑 ROS 节点、写 Python/Shell、偶尔远程回台式机干重活的移动开发终端。它的性能上限不高但足够轻、足够安静配合 Ubuntu 20.04 的稳定和 linux-surface 内核的硬件支持比刚买回来时那个只能开浏览器的 Windows 平板强太多了。如果你想照着做我的最后一条建议是别一次性把所有优化都做完先让我上面这些关键步骤跑通用上两天再根据自己实际需求去加东西。Surface 设备在 Linux 下的生态已经比以前成熟很多但最稳妥的办法仍然是小步快跑随时回滚。