给Surface Pro 4安装Arch Linux
我的 Surface Pro 4(m3 处理器 + 128GB 硬盘)已使用近 9 年,配有官方键盘和手写笔。4 年前三星屏出现抖屏问题,更换为 LG 屏后,它成为连接电台和运行业余无线电软件的主力机。今年屏幕上方开胶脱落,粘合后感觉 Windows 系统在夏天发热依然明显。恰逢计划深入学习 Linux,于是决定安装 Arch Linux 继续发挥余热。本文记录详细的安装过程。
🛠️ 一、备份与启动盘准备
数据备份
- 系统映像备份: 使用
控制面板 → 备份和还原(Windows 7) → 创建系统映像
将系统映像备份到移动硬盘。 - 重要数据备份: 将 Surface Pro 4 上的个人重要文件备份到移动硬盘。
- 系统映像备份: 使用
下载镜像
- 从 清华大学开源软件镜像站 下载最新版
archlinux-2025.06.01-x86_64.iso
。 - 验证完整性: 使用
sha256sum
或gpg
工具校验下载 ISO 文件的校验和与签名。
- 从 清华大学开源软件镜像站 下载最新版
制作启动 U 盘
- 工具: Rufus。
- 步骤:
- 插入 U 盘(≥8GB)。
- 运行 Rufus。
- 选择下载的 Arch Linux ISO 文件。
- 分区类型: 选择 GPT。
- 目标系统: 选择 UEFI (非 CSM)。
- 点击“开始”。
- 镜像写入模式: 选择 DD 模式 (重要!)。
- 确认操作,等待写入完成。
⚙️ 二、安装 Arch Linux 基础系统
关闭 Secure Boot
- 关机状态下,长按 音量+键 并点按电源键开机,进入 UEFI 设置界面。
- 导航至 Security 选项卡。
- 找到
Secure Boot
选项,将其关闭。 - 保存更改并退出。
从 U 盘启动
- 关机状态下,长按 音量-键 并点按电源键开机。
- 在启动菜单中,选择包含 U 盘名称的 UEFI 启动项。
连接网络 (使用 iwd
)
rfkill list # 查看无线设备状态(通常默认已解锁) |
更新系统时钟
timedatectl set-ntp true # 启用 NTP 时间同步 |
优化软件源 (国内用户建议)
# 生成国内镜像源列表(按速度排序,使用 HTTPS) |
硬盘分区
注意: 此示例展示最简单的分区方案(EFI 引导分区 + 根分区 + Swap 交换分区)。请根据实际需求和硬盘大小调整。
警告: 分区操作会清除磁盘数据,请务必确认操作对象 (/dev/nvme0n1
) 是目标磁盘。
- 输入
lsblk
或fdisk -l
查看磁盘及分区信息,确认目标磁盘设备(如/dev/nvme0n1
)。 - 使用分区工具(推荐
cfdisk
的图形界面):cfdisk /dev/nvme0n1 # 更直观的图形界面分区工具
# 或 gdisk /dev/nvme0n1 (GPT 专用) / fdisk /dev/nvme0n1 - 示例分区方案 (128GB SSD):
/dev/nvme0n1p1
: EFI 系统分区,大小 512MB-1GB,类型EFI System
。/dev/nvme0n1p2
: 根分区 (/), 剩余大部分空间 (如 110GB+),类型Linux filesystem
。/dev/nvme0n1p3
: Swap 交换分区, 大小建议等于或稍大于内存 (如 4GB-8GB),类型Linux swap
。
- 分区完成后,写入更改 (
Write
) 并退出工具。
格式化分区
# 格式化根分区为 f2fs (需已加载 f2fs 内核模块) |
挂载分区
# 挂载根分区 |
重要提示: 挂载顺序必须为先根分区 (
/mnt
),再 EFI 分区 (/mnt/boot/efi
)。否则可能导致系统无法启动。
安装基本系统
pacstrap -K /mnt base base-devel linux linux-firmware vim intel-ucode |
生成 fstab 文件
# 生成 fstab 文件 (使用 UUID) |
Chroot 到新系统
arch-chroot /mnt |
配置基础系统
# 安装必要软件包 |
创建普通用户并授予 sudo 权限
# 替换 [yourusername] 为你的用户名 |
安装并配置引导加载程序 (GRUB)
# 安装 GRUB 和相关工具 |
完成安装并重启
# 退出 chroot 环境 |
🖥️ 三、安装 Surface 专属内核与驱动
📌 关键步骤! 若不安装,触屏、Type Cover 键盘、摄像头、传感器等将无法正常工作或功能受限。
参考 linux-surface 项目。
添加 linux-surface 仓库密钥和源
# 导入密钥
curl -s https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc | sudo pacman-key --add -
sudo pacman-key --finger 56C464BAAC421453
sudo pacman-key --lsign-key 56C464BAAC421453
# 添加仓库到 pacman 配置
echo '[linux-surface]' | sudo tee -a /etc/pacman.conf
echo 'Server = https://pkg.surfacelinux.com/arch/' | sudo tee -a /etc/pacman.conf安装 Surface 内核和驱动
# 更新仓库并安装
sudo pacman -Syu
sudo pacman -S linux-surface linux-surface-headers iptsd
# 确保 IPTSD 服务启用
sudo systemctl enable --now iptsd安装其他必要固件和驱动
# Marvell WiFi 固件 (Surface Pro 4 需要)
sudo pacman -S linux-firmware-marvell
# Libcamera 驱动 (摄像头支持)
sudo pacman -S libcamera
# GStreamer 插件 (便于使用摄像头的应用)
sudo pacman -S gst-plugin-libcamera验证安装
# 安装 screenfetch 或 neofetch
sudo pacman -S screenfetch
screenfetch- 在输出信息中,检查 Kernel: 一行是否包含
surface
字样 (例如Kernel: 6.x.x-arch1-1-surface
),这表明 Surface 内核已成功加载。 - 此时触屏、Type Cover 键盘、触控板、笔等应基本可用。
- 在输出信息中,检查 Kernel: 一行是否包含
⚡ 四、安装桌面环境 (KDE Plasma) 与基本应用
安装图形组件与 KDE Plasma
# 安装 Xorg 基础 (Wayland 会话已包含在 plasma-wayland-session 中) |
启用必要系统服务
# 启用 SDDM 显示管理器 (登录界面) |
重启进入桌面
sudo reboot |
配置中文输入法 (Fcitx5)
- 安装输入法框架和引擎
sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-pinyin-zhwiki fcitx5-material-color # 框架、中文引擎、词库、皮肤
- 配置环境变量 (针对 Wayland 和 Xorg)
- 编辑用户文件
~/.pam_environment
(如果不存在则创建):GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
XMODIFIERS DEFAULT=\@im=fcitx
SDL_IM_MODULE DEFAULT=fcitx
GLFW_IM_MODULE=ibus # 某些游戏需要此项 - 或者在
~/.xprofile
(仅Xorg) 或~/.config/environment.d/im.conf
(推荐,适用于Wayland和Xorg) 中添加:export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
- 编辑用户文件
- 在 KDE 设置中配置 Fcitx5
- 进入
系统设置
>区域设置
>输入法
。 - 取消勾选
可用输入法
下的仅使用默认输入法
。 - 点击
添加输入法
,搜索并添加Fcitx5
。 - 点击
配置附加组件
,找到Pinyin
引擎进行详细设置 (如云拼音、简繁体切换等)。 - 配置
快捷键
(如切换输入法、切换简繁体)。 - 重启 Plasma 会话 (注销再登录) 或重启电脑生效。
- 进入
- (可选) 浏览器触控板手势支持
- 对于 Microsoft Edge 或 Google Chrome/Chromium,在启动命令添加参数以启用 Wayland 和 IME 支持:
# 修改桌面快捷方式或命令行启动参数
microsoft-edge-stable --enable-features=UseOzonePlatform,VaapiVideoDecodeLinuxGL --ozone-platform=wayland --enable-wayland-ime
google-chrome-stable --enable-features=UseOzonePlatform,VaapiVideoDecodeLinuxGL --ozone-platform=wayland --enable-wayland-ime
- 对于 Microsoft Edge 或 Google Chrome/Chromium,在启动命令添加参数以启用 Wayland 和 IME 支持:
系统维护
- 定期更新系统:
sudo pacman -Syu
- 清理未使用的包和缓存:
sudo pacman -Sc # 清理未安装包的缓存
sudo pacman -Qtdq | sudo pacman -Rns - # 删除无依赖的孤立包 (谨慎操作)
sudo paccache -rk2 # 保留最近2个版本的已安装包缓存 (需要 paccache, pacman-contrib包提供)
⚠️ 五、风险与注意事项
恢复 Windows
- 如需重装 Windows,必须使用官方镜像制作的 U 盘。
- 重装 Windows 会覆盖 Linux 引导。修复方法:使用 Windows 安装盘启动,进入命令提示符执行
bootrec /fixmbr
和bootrec /fixboot
(可能还需bcdboot
),或使用 Linux Live USB 重新安装 GRUB。
硬件兼容性限制
- 摄像头: Surface Pro 4 的摄像头在 Linux 下功能受限 (
libcamera
提供基础支持),兼容性和稳定性不如 Windows。 - 休眠/睡眠: 从休眠 (
hibernate
) 或深度睡眠唤醒可能不稳定。建议:- 优先使用挂起 (
suspend
/sleep
)。 - 彻底禁用休眠:
sudo systemctl mask sleep.target suspend-then-hibernate.target hibernate.target hybrid-sleep.target
- 优先使用挂起 (
- Windows Hello 红外传感器面部识别: 不支持。
- Surface Pro 4 的合盖/开盖传感器需要 linux-surface 内核的完整支持:
- 确认已安装 linux-surface:
pacman -Qs linux-surface
- 如果未安装,安装:
sudo pacman -S linux-surface linux-surface-headers
- 检查是否加载了相关模块:
lsmod | grep -E "surface|hid"
- 确保以下模块已加载:
surface_aggregator
surface_aggregator_registry
surface_hid_core - 如果缺少,手动加载:
sudo modprobe surface_aggregator
sudo modprobe surface_hid_core - 更新 mkinitcpio.conf:
sudo nano /etc/mkinitcpio.conf
- 添加模块:
MODULES=(... surface_aggregator surface_aggregator_registry surface_hid_core ...)
- 重新生成 initramfs:
sudo mkinitcpio -P
- 确认已安装 linux-surface:
- 摄像头: Surface Pro 4 的摄像头在 Linux 下功能受限 (
建议阅读
- Arch Linux 中文维基百科 (首要参考)
- linux-surface Wiki (Surface 设备特定问题)
💎 未尽事项/高级配置
启用 Secure Boot (复杂,可选)
- 必要性: 增强安全性,但配置繁琐。Surface 设备关闭 Secure Boot 除了开机有红色警示条外不影响主要功能。
- 参考:
- ArchWiki: Unified Extensible Firmware Interface/Secure Boot
- ArchWiki: GRUB - Shim-lock
- 核心步骤:使用
shim-signed
(AUR),创建 Machine Owner Key (MOK),签名内核 (linux-surface
)、GRUB 模块和 ZFS 模块 (如使用),在 UEFI 中注册 MOK。过程复杂且易出错。
Surface Pen 与触摸屏高级设置
- 文件:
/etc/iptsd.conf
- 关键设置: 避免笔悬停时误触发触摸。
##
## Ignore all touch inputs if a stylus is in proximity.
##
DisableOnStylus = true # 确保设置为 true - 压感笔记软件推荐: Xournal++
- 更多绘图板软件: 参考 ArchWiki: Graphics tablet
磁盘加密 (LUKS)
- 如需全盘加密,需在分区阶段规划。参考 ArchWiki: Dm-crypt/Encrypting an entire system 和 linux-surface Disk Encryption (涉及 TPM2 + Secure Boot 集成)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 李想博客!
评论