ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

老Surface Go装Ubuntu 22.04:驱动适配与电源调优

老Surface Go装Ubuntu 22.04:驱动适配与电源调优 老Surface Go这台机器我是真没想到还能再战。2018年前后入的那批Pentium Gold 4415Y、4G内存、64G eMMC的配置跑Windows 10的时候勉强够用升级到Windows 11之后基本就是开机等半天、开浏览器再等半天的水平。机器本身屏幕素质不错10英寸1800x1200的分辨率重量也轻扔了可惜。折腾了一圈之后我把它刷成了Ubuntu 22.04现在当个随身查阅资料、写点脚本、看PDF的终端机续航能用四五个小时手感意外地顺。这篇就把整个过程拆开讲机型怎么确认、镜像怎么选、分区怎么规划、驱动怎么补、踩过哪些坑都写清楚。不管你是第一次给平板装Linux还是之前刷过别的机器看完应该都能自己动手。1. 为什么给老Surface Go换系统先想清楚这几件事1.1 老设备的真实处境和换系统的动机Surface Go 一代用的是Intel Pentium Gold 4415Y双核四线程基础频率1.6GHz没有睿频TDP 6W。这个规格放到现在是妥妥的低功耗办公芯片跑Windows 10属于能用跑Windows 11就比较吃力了——系统本身臃肿后台服务一多4G内存分分钟吃满硬盘是eMMC随机读写本来就慢再叠加上虚拟内存交换整机响应肉眼可见地拖。我实测过开机之后什么都不做内存占用就已经接近2.5G剩下的1.5G想开Chrome再挂几个标签页基本就是在和卡顿作斗争。换系统的核心动机其实就一句话让硬件资源用在真正需要的地方。Windows那套后台更新、遥测、Defender实时扫描、系统还原点在这台机器上占了大量资源而这些功能对一个随身查阅终端来说并不必要。Ubuntu 22.04 的GNOME桌面加基础服务空闲内存占用大概在800M到1.2G之间剩下的空间就宽裕多了。开机速度也从原来的40秒左右压到20秒出头这种提升是能直接感受到的。另外还有一层考虑是软件生态。我平时要跑一些Python脚本、用VS Code改改配置、偶尔连个SSH这些在Linux下是原生体验不需要WSL或者各种模拟层。Ubuntu 22.04是LTS版本支持到2027年对一个用完就放着的老设备来说不用频繁折腾升级省心。1.2 为什么是Ubuntu 22.04而不是更轻的发行版有人会问既然机器这么弱为什么不直接上Lubuntu、Xubuntu或者Arch这类更轻的我试过几个最后选Ubuntu 22.04的原因有这么几点。第一是硬件适配的成熟度。Surface系列有一批社区维护者在做专门的适配项目也就是大家常说的linux-surface内核。这个项目主要针对Ubuntu和Fedora做测试你装Ubuntu遇到问题去社区里搜大概率能找到现成答案装冷门发行版出问题基本只能自己啃。对老设备折腾来说能不能快速查到解决方案比系统本身轻不轻更重要。第二是驱动和固件的覆盖度。Ubuntu 22.04自带的内核是5.15这个版本对Intel核显、无线网卡、触摸屏控制器的支持已经比较完整了。Surface Go一代的无线网卡是Marvell的方案早期发行版经常认不到5.15内核里相关固件已经包含得比较全。第三是桌面环境的分辨率适配。GNOME对高DPI屏幕的处理是几个主流桌面里最省事的Surface Go的10英寸1800x1200属于典型的高PPI场景GNOME可以一键设置缩放比例KDE和XFCE虽然也能调但细节上要手动调的地方更多。提示如果你只是想能跑起来就行Xubuntu 22.04也是不错的选择内存占用更低代价是触摸手势和缩放体验会差一些看你的使用习惯取舍。1.3 单系统还是双系统先把这件事想明白这是动手前必须先决定的问题因为它直接决定后面所有操作。Surface Go一代的64G eMMC版本说实话空间非常紧张。我算过一笔账Windows 11装完之后占大概28到30G系统更新缓存和休眠文件再吃掉几G剩下能用的本来就没多少。再切出20G给Ubuntu两边都憋屈Windows那边没法更新Ubuntu这边装点软件就告急。所以我的建议是使用场景推荐方案理由就想当Linux终端用Windows不需要单系统全盘装Ubuntu空间利用最充分性能最好偶尔还要用Windows上的专属软件双系统各占一半前提是128G版本64G不建议只是想试试水不确定能不能用先做U盘启动试用不装Ubuntu安装盘支持Try Ubuntu模式我自己走的是单系统路线因为这台机器留着Windows也没什么用。但我必须强调如果你走单系统一定要提前把Windows恢复镜像准备好Surface官方提供恢复镜像下载没有这个装完想回滚会非常麻烦。这点后面会详细讲。另外要提醒的是64G eMMC版本做双系统还有个隐患eMMC的写入寿命有限双系统频繁读写加上Windows的更新写入会加速磨损。这一点很多人不注意用个一两年就发现系统越来越慢其实就是存储老化了。2. 动手前的准备机型确认、镜像和启动盘2.1 先搞清楚你手里这台是第几代Surface Go有三代硬件差别不小装系统的坑也不同。一代是4415Y二代有4425Y和Core m3-8100Y两个版本三代是6500Y和i3-10100Y。怎么确认自己的是哪台最直接的办法是在Windows里按WinR输入winver或者打开设置看系统信息。更准确的方式是看设备型号可以在命令行里跑# 在Windows的PowerShell里执行 Get-ComputerInfo | Select-Object CsModel, CsManufacturer或者在Linux环境下比如U盘试用的Ubuntu里sudo dmidecode -s system-product-name这个命令会返回类似Surface Go或者Surface Go 2的字符串有些批次会带具体型号。为什么要确认因为不同代的无线网卡、触摸控制器、声卡方案都不一样后面装linux-surface内核的时候需要根据型号选择对应的包和参数。一代的触摸屏驱动相对成熟二代的摄像头支持一直不完整三代的电源管理还在完善中。2.2 镜像下载与校验别跳过校验这一步Ubuntu 22.04的镜像有几个版本桌面版是ubuntu-22.04.x-desktop-amd64.iso这里有个细节一定要下载带.x的更新版本比如22.04.3或者22.04.4不要用最早的22.04发布版。原因很简单更新版本集成了后续的内核和驱动更新Surface的新硬件支持往往在这些更新里。下载完之后务必做一次哈希校验不然装到一半发现镜像损坏白折腾。Windows下可以用CertUtilcertutil -hashfile ubuntu-22.04.4-desktop-amd64.iso SHA256把输出的哈希值和官网公布的对比。Linux下用sha256sum。这一步很多人嫌麻烦跳过但U盘写坏、下载不完整的情况真的不少见尤其是网络环境不稳定的时候。注意下载镜像要认准官方渠道不要在不明来源的镜像站下载避免镜像被篡改或捆绑。2.3 用Rufus做启动盘的参数怎么选给Surface Go做启动盘Rufus是最好用的工具。打开之后设备选你的U盘引导类型选下载好的ISO镜像然后重点在下面几个选项分区类型GPT。Surface是UEFI引导必须用GPT选MBR会引导失败。目标系统类型UEFI非CSM。Surface不支持传统BIOS兼容模式。文件系统FAT32或者NTFS。如果ISO里有超过4G的大文件FAT32会写不进去不过Ubuntu镜像一般不会超选FAT32兼容性更好。簇大小默认即可。点开始之后Rufus会弹一个对话框问你是以ISO镜像模式写入还是以DD镜像模式写入。Ubuntu的ISO建议选ISO镜像模式这样U盘还能继续当存储用而且启动时的引导更规范。如果遇到启动失败再改用DD模式重做一次。U盘容量建议8G以上速度上尽量用USB 3.0的Surface Go只有一个USB-C口如果你的U盘是USB-A的需要带个转接头。这一点也要提前准备好别到时候发现插不上。2.4 必须提前做的三件事第一件备份Windows恢复镜像。去Surface的官方支持页面根据你的机型序列号下载恢复镜像通常是个几G的压缩包下载后解压到U盘备用。这个镜像不光是重装Windows用它里面还包含Surface的固件更新某些情况下是救命稻草。我见过有人装完Linux想回滚结果发现没有恢复镜像只能去借别人的机器重新下载非常被动。第二件关闭BitLocker。如果你的Windows开了设备加密安装Linux的过程中分区操作可能触发恢复密钥验证处理起来很烦。在Windows的设置-隐私和安全性-设备加密里关掉等全部折腾完再考虑要不要开。关闭之后要等加密解密完成可能耗时几十分钟耐心等。第三件进UEFI做设置。Surface进UEFI的方法是关机状态下按住音量加键不放再按电源键直到出现Surface Logo松手就进入UEFI界面了。里面需要改的地方关闭Secure Boot安全启动因为linux-surface的内核模块没有官方签名开启状态下载入会失败。装完系统如果不用特殊模块可以再开回来。开启Boot from USB相关选项一般是Enable Boot from USB devices。确认Boot Order里USB排在前面或者至少在启动时能手动选择。改完之后按Save and Exit机器会自动重启。3. 安装全流程从U盘引导到第一次进桌面3.1 进入U盘引导的正确姿势关机把做好的U盘插到Surface Go的USB-C口上。然后按住音量减键不放再按电源键等Surface Logo出现再松手。这时候机器会尝试从U盘启动如果成功会看到GRUB菜单里面有Try Ubuntu和Install Ubuntu两个选项。如果没进U盘而是直接进了系统几个可能原因U盘没做好、BIOS里USB引导没开、或者U盘和机器的兼容性问题。后一种情况可以换个U盘试试Surface Go对某些杂牌U盘确实挑。还有一种情况是启动太快没来得及按那就关机重来按键的时机是电源键按下的瞬间就开始按音量减。我建议第一次先选Try Ubuntu试用模式进桌面看看无线网卡认不认、触摸屏灵不灵、屏幕缩放正不正常。试用模式不影响硬盘确认没问题再重启进安装。3.2 分区规划64G eMMC的空间怎么分这是最容易出问题的环节分区没规划好后面空间不够用会很痛苦。先说结论我推荐的分区方案分区挂载点建议大小文件系统说明EFI系统分区/boot/efi512MFAT32UEFI引导必需保留原有根分区/28Gext4系统和软件都装这swap无4Gswap内存只有4G留点交换空间家目录/home剩余全部ext4个人文件独立重装不丢几个关键决策的理由为什么根分区要28G因为Ubuntu的GNOME桌面加基础软件就占了8到10G再加上你后续装的软件、缓存、日志20G是底线25G左右比较从容。我一开始只分了20G装了几个开发工具就见底了后来不得不清理缓存过日子。为什么单独分/home这是为以后重装或换发行版留的后路。个人文件、配置文件都在/home里系统坏了重装只要不格式化/home数据基本都在。对老设备来说这个习惯能省很多重复配置的时间。swap要不要留4G内存确实偏小跑一些编译或者开多个应用时系统会用到交换空间。可以分一个4G的swap分区也可以用swap文件后者更灵活随时能调整大小。我选了swap文件具体做法后面讲。64G版本的空间算例假设eMMC可用容量约58GEFI占0.5G根分区28Gswap文件4G剩下约25G给/home。这个分配对日常使用是够的但如果你想装大型软件或者存大量视频就得考虑扩容了——Surface Go一代没有可扩展存储只能靠外接U盘或云盘。3.3 安装过程中的关键选项安装界面走到分区这一步选择其他选项手动分区把上面规划好的方案落实。几个容易忽略的细节引导器安装位置一定要选EFI分区对应的设备通常显示为/dev/mmcblk0p1这种别装错到别的分区上。格式化确认勾选要格式化的分区时看清楚别把EFI分区也格了那样Windows的引导会一起没掉如果你留着Windows的话。时区设置正常选影响系统时间显示。用户名和密码建议勾选登录时需要密码老设备安全性上其实无所谓但养成习惯。安装过程大概15到25分钟eMMC速度慢别着急。装完之后会提示重启重启时记得把U盘拔掉不然又会从U盘启动进入试用模式会让你以为装失败了。3.4 首次开机后的驱动补全装上linux-surface内核第一次进系统你会发现大部分功能是正常的但有几处缺失触摸屏可能只能点不能滑、摄像头不工作、键盘盖的某些按键失灵、自动旋转失效。这些都是Surface特有问题需要用linux-surface内核来补。具体步骤先添加社区仓库和密钥# 添加linux-surface的GPG密钥 curl -sSL https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc \ | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/linux-surface.gpg # 添加软件源 echo deb [archamd64] https://pkg.surfacelinux.com/debian release main \ | sudo tee /etc/apt/sources.list.d/linux-surface.list然后更新并安装核心包sudo apt update sudo apt install linux-image-surface linux-headers-surface libwacom-surface iptsd这几个包的分工linux-image-surface和linux-headers-surface是专为Surface调优的内核和头文件libwacom-surface是手写笔的支持库iptsd是触摸屏的守护进程——没有它触摸只能当鼠标用多点手势和手写笔压力感应都用不了。装完之后重启再验证一下uname -r如果输出里带了surface字样说明新内核生效了。注意linux-surface的仓库地址和安装方式会随项目更新而变化动手前最好去项目主页确认一下最新的命令不要完全照搬这里的写法。这类社区项目更新频率不低命令过时是常有的事。3.5 触摸屏、键盘盖和手写笔的配置新内核装好之后触摸屏基本能用了但有几个微调值得做。屏幕旋转和自动旋转Surface Go有重力感应可以自动转屏。需要装iio-sensor-proxy这个包Ubuntu 22.04一般预装了如果没有sudo apt install iio-sensor-proxy装完之后GNOME的设置里会出现自动旋转开关。如果要手动锁定方向可以用xrandr或者GNOME的显示设置。键盘盖的功能键Type Cover上的FN组合键、音量键、亮度键在linux-surface内核下大部分能正常工作。亮度调节如果没反应可以检查/sys/class/backlight/目录下有没有对应的设备节点没有的话可能是驱动没加载重启一次通常就好。手写笔Surface Pen支持压力感应的应用能识别到笔比如Krita、Xournal这类绘图和笔记软件。需要确认libwacom-surface装好了然后用xinput list看看有没有识别到笔设备。如果只是想要个能写的体验其实触摸屏加普通输入法也够用手写笔更多是锦上添花。3.6 显示缩放和电源管理两个关键调优显示缩放。1800x1200在10英寸屏上默认缩放一般是200%字看着大但显示内容少。我实测下来150%的缩放比例最舒服图标和字体大小适中一屏能显示的内容也比200%多。设置方法# 设置文本缩放因子 gsettings set org.gnome.desktop.interface text-scaling-factor 1.5 gsettings set org.gnome.desktop.interface scaling-factor 1注意GNOME的缩放逻辑有点绕scaling-factor是整数倍缩放1或2text-scaling-factor是小数缩放两者配合使用。想要150%的效果一般设scaling-factor为1text-scaling-factor为1.5。也可以用gnome-tweaks图形界面调更直观。电源管理。老设备续航是硬伤默认的电源策略偏性能续航大概两三个小时。装个TLP能明显改善sudo apt install tlp tlp-rdw sudo systemctl enable tlp sudo systemctl start tlpTLP装好之后是自动工作的它会根据电源状态插电/电池自动切换CPU调频策略、关闭不用的硬件、调整硬盘和无线网卡的省电策略。我实测装完之后纯办公使用续航能到四小时左右比默认提升挺明显。想进一步调优可以编辑/etc/tlp.conf重点看这几个参数CPU_SCALING_GOVERNOR_ON_BAT电池模式下设为powersave性能换续航。CPU_ENERGY_PERF_POLICY_ON_BAT设为power。WIFI_PWR_ON_BAT设为on开启无线网卡省电。RUNTIME_PM_ON_BAT设为auto让不用的设备自动休眠。改完执行sudo tlp start重新加载配置。提示TLP和surface内核的电源管理有些重叠如果发现插电时性能也上不去检查是不是两套策略打架了。一般以TLP为准surface内核那侧的电源参数别乱改。4. 常见问题速查与排查实录4.1 无线网卡认不到怎么离线救急这是Surface装Linux最常见的坑之一。表现是进系统后右上角没有WiFi图标ip a命令里也看不到无线设备。原因通常是固件没加载或者驱动没起来。排查顺序先确认内核里有没有网卡驱动lspci -nnk | grep -i network -A3看Kernel driver in use那一行是不是空的。如果没有驱动八成是固件缺失。Surface Go用的是Marvell方案对应的固件放在/lib/firmware/mrvl/目录下。可以用dmesg | grep -i firmware看加载报错。离线环境怎么装固件这就是为什么我前面强调U盘和转接头要准备好。最稳妥的办法是用USB-C转网口临时接有线网或者用手机USB共享网络实在不行把固件包用U盘拷过来dpkg -i安装。我当时的做法是先用USB网卡联网然后装linux-surface内核重启之后无线网卡就认出来了。装了surface内核之后WiFi问题基本能解决这也是为什么建议尽早装它。4.2 睡眠唤醒黑屏、随机重启老Surface装Linux之后睡眠唤醒出问题是高频抱怨。表现是合上键盘盖或者手动挂起再打开时屏幕黑掉只有背光亮或者干脆自动重启。这个问题的根源多在电源管理状态的切换上。可以试几个方向换用surface内核。普通内核的电源管理对Surface不友好surface内核在这方面做了专门适配成功率明显高。调整挂起方式。Ubuntu默认用s2idle现代待机Surface对这种模式支持一般。可以尝试改回传统的deep挂起# 查看支持的挂起模式 cat /sys/power/mem_sleep # 临时切换到deep模式 echo deep | sudo tee /sys/power/mem_sleep更新固件。Surface的固件更新一般通过Windows推送所以如果你是从Windows转过来的最好先在Windows下把所有更新打全固件版本新一些Linux下的兼容性也更好。如果折腾半天还是不行可以考虑禁用自动挂起改成手动锁屏笔记本合盖不睡眠牺牲一点电量换稳定。这个取舍看个人。4.3 摄像头和麦克风为什么用不了这是要有心理准备的Surface Go一代的后置摄像头在Linux下基本不可用前置摄像头在某些内核版本下能工作。原因不是配置问题是驱动本身不完整Surface用的是Intel的成像方案相关驱动一直没进主线内核。麦克风的情况好一些多数情况下能工作。如果没声音先检查输入设备有没有被识别arecord -l看录音设备列表里有没有。如果识别到了但没声音检查alsamixer里的输入增益有没有静音。对于视频会议这种刚需场景我的建议是外接USB摄像头几十块钱的都能即插即用比费劲折腾内置摄像头省事得多。这也是老设备装Linux要接受的现实硬件支持总有取舍。4.4 触摸和键盘盖突然失灵偶尔会遇到触摸屏失效、或者键盘盖的键盘打字没反应。这时候别急着怀疑系统坏了先做两件事第一检查不是因为误触了关闭触摸的快捷键。有些键盘盖有禁用触摸的FN组合键不小心按到就会关掉。第二重启iptsd服务sudo systemctl restart iptsd触摸失效很多时候是这个守护进程挂了重启一下就好。如果经常挂可以看它的日志journalctl -u iptsd找一下崩溃原因更新内核通常能解决。键盘盖失灵的话重启系统一般能恢复频繁出现的话检查是不是接口接触不良Surface的磁吸接口时间久了会有灰尘用软布擦一下。4.5 系统越用越卡、存储告急老设备用了几个月开始变慢先看两个地方。一个是内存。4G内存如果开了浏览器加几个应用内存吃满之后开始频繁交换卡顿就来了。可以用free -h和htop观察。缓解办法少开标签页、用轻量的浏览器比如Chromium比Firefox省内存、设置swap文件大一点。另一个是存储。64G eMMC用久了系统和缓存会慢慢占满。重点清理对象/var/log/里的日志、apt缓存、~/.cache/里的临时文件、还有旧的系统内核surface内核更新后会留下旧版本占几百M。# 查看磁盘占用 df -h # 清理apt缓存 sudo apt clean # 查看大文件 sudo du -sh /var/* | sort -rh | head -20 # 清理旧内核谨慎操作确认当前内核版本后再删 dpkg --list | grep linux-image注意删旧内核前一定要确认当前正在用的内核版本uname -r把在用的那个删了会开不了机。稳妥的做法是保留最近两个版本。这里还有个容易被忽略的点eMMC的写入寿命。64G eMMC的擦写次数有限频繁的日志写入和swap交换会加速老化。所以建议把/var/log的日志级别调低或者挂载时加noatime参数减少写入。这是个长期习惯短期看不出效果一两年后差别就明显了。5. 用下来的几点真实体会这台Surface Go现在是我随身带的一台轻终端主要用来查资料、写Markdown笔记、跑跑Python脚本、SSH连服务器。刷成Ubuntu 22.04之后它从一个开机都费劲的平板变成了能随时掏出来干活的工具这个转变我个人是满意的。但有几句话必须说在前面。老设备刷Linux是有取舍的性能和兼容性不可能面面俱到。摄像头、部分传感器、某些电源管理特性你就是要接受它的不完美。如果你的需求是视频会议、重度图像处理这台机器加上这套系统可能不是好选择如果你只是想有个轻便的Linux终端那它挺合适。还有一点体会是关于折腾的心态。刷系统这事出问题很正常尤其是Surface这种非标准硬件。遇到卡住的时候别急着反复重装先把问题定位清楚——是引导问题、驱动问题还是固件问题不同原因的处理思路完全不同。我当时无线网卡认不到折腾了好几个小时才反应过来是固件缺失其实只要先联网装上surface内核就能解决。事后回头看早一点装专用内核能省下不少弯路。最后分享个小习惯动手前把所有关键镜像和固件提前下好放到U盘里包括Ubuntu的ISO、Windows恢复镜像、linux-surface的离线包。装系统过程中很可能遇到临时没网的情况这时候手边有离线包从容很多。这个习惯不只对Surface有用给任何设备折腾系统都适用。
返回列表