Surface Pro 7 的debian12或ubuntu 开启触屏
前置条件:
- 你已经在 Surface Pro 7 上成功安装了标准的 Ubuntu 22.04 LTS。
- 你已经在 UEFI/BIOS 中禁用了 Secure Boot (安全启动)。
- 你已经登录到 Ubuntu 桌面环境。
- 你的 Surface Pro 7 必须能够连接到互联网。
- 重要: 你已经运行了你的代理工具 (如 Clash),并且知道它提供的 HTTP 代理服务器地址和端口 (例如
127.0.0.1:7890
)。后续步骤需要通过此代理访问 GitHub。
✅ 总结:Surface Pro 7 可以很好地运行 Linux(通过 linux-surface 项目)
👍 工作良好的功能包括:
- 触摸屏、多点触控、Surface Pen
- WiFi、蓝牙(少量设备需手动装 Marvell 驱动)
- 电源管理、亮度调节
- 摄像头(部分设备仍需等待补丁)
- 虚拟键盘(配合 GNOME 使用效果佳)
步骤一:准备终端环境和国内镜像(装系统后设置过可以忽略)
- 打开终端 (Terminal): 按
Ctrl+Alt+T
。 - (可选,但推荐) 检查并切换到国内软件源: 如果你还没切换,为了提高下载 Ubuntu 基础包的速度,建议先切换。
- 打开 "软件和更新" (Software & Updates)。
- 在 "Ubuntu 软件" 选项卡,将 "下载自:" 改为国内镜像站 (如
mirrors.aliyun.com
,mirrors.tuna.tsinghua.edu.cn
等)。 - 关闭后按提示
重新载入
。
步骤二:配置代理并添加 linux-surface 软件源
-
检查当前代理设置 (确认终端未配置代理):
- 在终端中运行以下命令,通常它们应该输出空行,表示当前终端会话没有设置 HTTP/HTTPS 代理:
echo $http_proxy echo $https_proxy
- 在终端中运行以下命令,通常它们应该输出空行,表示当前终端会话没有设置 HTTP/HTTPS 代理:
-
设置终端代理环境变量(若上面检测不到环境变量):
- 假设你的 Clash HTTP 代理监听在
127.0.0.1
端口7890
。请将下面的7890
替换为你自己 Clash 的实际 HTTP 代理端口。export http_proxy="http://127.0.0.1:7890" export https_proxy="http://127.0.0.1:7890"
- 再次检查: 运行
echo $http_proxy
和echo $https_proxy
,现在应该能看到你设置的代理地址了。
- 假设你的 Clash HTTP 代理监听在
-
添加 linux-surface GPG 密钥: (需要通过代理访问)
- 重要: 因为
sudo
默认不会继承当前用户的环境变量,我们需要使用sudo -E
来运行需要网络访问的apt
相关命令,以确保它们也使用你刚刚设置的代理。
# 注意这里的 sudo -E sudo -E wget -qO - https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc | sudo apt-key add -
(如果
apt-key
提示弃用,备选方案是:sudo -E wget -qO - https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc | sudo tee /etc/apt/trusted.gpg.d/linux-surface.asc > /dev/null
) - 重要: 因为
-
添加 linux-surface 软件仓库:
echo "deb [arch=amd64] https://pkg.surfacelinux.com/debian release main" | sudo tee /etc/apt/sources.list.d/linux-surface.list
-
(排错) 检查并清理重复的软件源: 如果你之前尝试过添加源,可能会导致重复。
- 检查目录内容:
ls /etc/apt/sources.list.d/
- 如果除了
linux-surface.list
外还有类似surface.list
的文件,请删除那个多余的:sudo rm /etc/apt/sources.list.d/surface.list # (请替换为实际多余的文件名)
- 检查目录内容:
-
更新软件包列表 (通过代理):
# 同样使用 sudo -E sudo -E apt update
- 检查输出,确保没有关于
pkg.surfacelinux.com
的 GPG 错误,并且最后是成功更新列表。
- 检查输出,确保没有关于
步骤三:安装 linux-surface 核心软件包 (通过代理)
-
执行安装命令:
- 我们安装核心的内核、头文件、Wacom 驱动、触摸守护进程和 Secure Boot MOK 支持包。
- 注意: 我们排除了
surface-ath10k-firmware-override
,因为它通常不适用于 Surface Pro 7 (使用 Intel Wi-Fi),并且可能导致 "无法定位软件包" 的错误。
# 仍然使用 sudo -E sudo -E apt install linux-image-surface linux-headers-surface libwacom-surface iptsd linux-surface-secureboot-mok
- 耐心等待下载和安装完成。
-
(可选) 取消终端代理设置: 安装完成后,如果你想让当前终端不再使用代理,可以运行:
unset http_proxy unset https_proxy
步骤四:重启并处理 MOK 注册
- 重启电脑: 这是加载新内核的关键步骤!
sudo reboot
- 处理 Secure Boot MOK (如果安装了
linux-surface-secureboot-mok
):- 重启时可能会看到一个蓝色的 "Perform MOK management" (MokManager) 界面。
- 选择
Enroll key from disk
。 - 选择包含
surface
字样的条目 (通常是/efi/ubuntu/MOK/surface.cer
或类似路径)。 - 选择
Continue
。 - 输入你在安装
linux-surface-secureboot-mok
时设置的密码进行确认。 - 选择
Reboot
。 - 如果你不打算重新启用 Secure Boot,可以忽略 MOK 注册过程,并保持 UEFI 中 Secure Boot 禁用。
步骤五:验证安装结果 (包含排错)
-
验证内核版本: 重启进入 Ubuntu 后,打开终端,运行:
uname -r
- 预期结果: 输出应包含
surface
,例如6.13.6-surface-1
(版本号会更新)。
- 预期结果: 输出应包含
-
验证 iptsd 服务 (触摸屏/触摸板):
- 运行:
systemctl status iptsd@*
- 问题排查: 如果你遇到
Unit iptsd.service could not be found.
错误,按以下步骤修复(这是我们之前解决过的问题):- 删除可能存在的错误残留文件:
sudo rm /etc/systemd/system/iptsd.service
(如果存在) - 重新加载 systemd 配置:
sudo systemctl daemon-reload
- 重新加载 udev 规则并触发:
sudo udevadm control --reload-rules && sudo udevadm trigger
- 再次检查服务状态:
systemctl status iptsd@*
- 删除可能存在的错误残留文件:
- 预期结果: 你应该看到至少一个
iptsd@dev-hidrawX.service
(X是数字) 处于active (running)
状态。
- 运行:
-
测试硬件:
- 实际操作触摸屏、触摸板、Surface Pen,检查是否工作正常。
- 检查 Wi-Fi、蓝牙、键盘盖、亮度/音量调节、睡眠/唤醒等功能。
-
(可选) 清理无用包:
sudo apt autoremove
后续维护:
- 更新系统时 (
sudo apt update && sudo apt upgrade
),如果linux-surface
相关包有更新,并且你的网络仍然需要代理才能访问 GitHub,记得再次使用export
设置代理,并用sudo -E apt upgrade
来执行升级。
结语:
遵循这些步骤,你应该能够成功地为你的 Surface Pro 7 安装 linux-surface
内核和必要的驱动,并通过配置代理解决了在中国大陆网络环境下可能遇到的下载问题。现在,享受更完善硬件支持的 Ubuntu 体验吧!
看起来你在尝试将GPG密钥保存到/usr/share/keyrings/
目录时遇到了权限问题。你可以先将文件保存到一个你有写权限的目录中,然后再使用sudo
命令将文件移动到目标目录。
以下是具体的步骤:
-
将GPG密钥保存到一个临时目录中:
wget -qO- https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc | gpg --dearmor > surface-archive-keyring.gpg
-
使用
sudo
命令将文件移动到目标目录:sudo mv surface-archive-keyring.gpg /usr/share/keyrings/surface-archive-keyring.gpg
-
添加Linux Surface Repository:
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/surface-archive-keyring.gpg] https://pkg.surfacelinux.com/debian release main' | sudo tee /etc/apt/sources.list.d/surface.list
-
更新并安装Linux Surface内核和固件:
sudo apt update sudo apt install linux-image-surface linux-headers-surface iptsd libwacom-surface
-
启用并启动IPTS服务:
sudo systemctl enable iptsd sudo systemctl start iptsd
Failed to look up unit file state: 无效的参数
Failed to start iptsd.service: Unit iptsd.service not found.
好像没影响,重启电脑
重启不能触屏可以试试下面命令
sudo systemctl enable iptsd@default sudo systemctl start iptsd@default
-
重启系统:
sudo reboot
通过这些步骤,你应该能够成功安装Linux Surface内核和驱动程序,并启用Surface Pro 7上的触屏功能。
如果还不行
看起来你下载的 iptsd
版本可能已经被移除。你可以试试下载最新版本的 iptsd
。以下是步骤:
- 访问 linux-surface/iptsd 的 GitHub 页面 查看最新版本。
- 下载最新版本的
iptsd
,例如:
wget https://github.com/linux-surface/iptsd/releases/download/v0.5.6/iptsd_0.5.6_amd64.deb
请根据最新版本号替换下载链接中的版本号。
- 下载完成后,安装该
.deb
文件:
sudo dpkg -i iptsd_0.5.6_amd64.deb
确保你的系统上安装了所有依赖项:
sudo apt --fix-broken install
然后再试启动和启用服务:
sudo systemctl enable iptsd
sudo systemctl start iptsd
如果仍然有问题,请确保你已经正确安装并配置了 linux-surface kernel。你可以参考 linux-surface 的安装指南 了解更多详细步骤。
本文作者: 永生
本文链接: https://yys.zone/detail/?id=355
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
发表评论
评论列表 (0 条评论)
暂无评论,快来抢沙发吧!