秋实-Allenyou 的小窝

稻花香里说丰年,听取 WA 声一片

机械革命无界 15X 的 Arch Linux开荒指南

2026/5/8

前段时间,我的拯救者 R9000P 出现问题,多次送售后维修之后仍然没有完全恢复正常。

  • 第一次:打 CS2 时候突然花屏死机,随后独显直连模式无法正常开机,使用混合模式进入系统后独显报 Code 43。售后检查后确认为显卡供电烧毁,更换主板。
  • 第二次:更换主板后,发现无法正常充电。送售后确认为主板电源管理部分异常,于是再次更换主板。
  • 第三次:左侧 USB Type-C 接口无法正常使用,同时会随机出现突然的黑屏重启。

于是,我购入了一台机械革命无界 15X,用于承担开发工作。考虑到 Windows 对于 POSIX 系列的工具链支持一直都有各种各样的小问题,而 WSL 并不能解决全部问题,于是将其重装为 Arch Linux。

本文简要记录我在机械革命无界 15X 上使用 Arch Linux 的一些体验,以及需要注意的事项。

Why not NixOS?

在前段时间从零开始的 NixOS 体验一文中,我记录了我将服务器全部迁移到 NixOS 的体验。按理来说,我的桌面发行版也应该选择 NixOS。

但是 NixOS 在桌面端有一个致命的问题。

如果要最大限度发挥 NixOS 的优势,就应该尽量将系统的配置、状态等信息全部由 Nix Flake 描述。这对于服务器来说是非常容易的,因为服务器一经配置之后,就很少会再有较大的配置变动。然而桌面端并不是。桌面端会经常需要对软件包进行增添/减少,或者修改其配置。这种情况下,NixOS 基于配置的方法固然能保证最大限度的可复现性和白盒性,但这也意味着每次对系统的变动都必须要先修改配置,然后再 nixos-rebuild switch,等待短则几分钟长则数十分钟的 Rebuild 过程。

这未免有些过于不便了。更不用说 Nixpkgs 的维护热度仍然是低于 Arch Linux 官方源和 AUR 的。尽管里面软件并不少,但有的包版本却是显著落后于上游。而 NixOS 不遵循 FHS 标准的特性又使得官方发布的二进制文件往往需要手动 Patch 后才能正常运行。这种情况下,如果我要使用最新的软件包,要么我要在自己的 NUR 仓库里维护一个软件包 Fork,或者去提交 PR 更新 Nixpkgs 中的包,要么我就得自己手动做很多 Patch。虽然大多数情况下,这并不是很困难,但这种琐碎的事情的确很烦人。

根据我的体验,NixOS 类似于 Windows LTSC,只适合用于能在一开始就完全确定设备的用途,并且不会需要频繁、快速变更的场合。这时候,NixOS 的劣势就不会太突出,而它的优点——不可变性、可复现性、可解释性——将极大简化运维。然而,脱离这些场合,它的劣势就会折磨使用者。

当然,特殊的网络访问方法就不必说了,毕竟用 Arch Linux 也少不了去 AUR 上面拉包下来用。

安装

既然都装过 NixOS 了,那么从零安装 Arch Linux 也不会是一个困难的事情。关闭安全启动,引导进入 Live CD,配置网络、时区、镜像源,分区,挂载,pacstrap 安装内核和驱动等基础软件包,arch-chroot 进入新系统,安装 Plasma、NetworkManager 等包,安装 GRUB 引导,生成 fstab,重启。

一切都非常简单。在没有需要 Fuck 的 NVIDIA 的时候,大部分硬件都能直接驱动起来。这里按照 Arch Linux Wiki 上面的指示装好 AMD 微码 amd-ucode 和 AMD 的显卡驱动即可。

我个人比较推荐参考的教程是 Arch Linux 简明指南。这个 Wiki 里面的内容已经很简单了,如果需要更详细的内容可以直接去翻 Arch Linux Wiki。

平台特定软件包 & 平台特定问题

这里参考了以下内容:

需要做的主要就是:

RJ45 网卡驱动

虽然我平常很少用,但还是顺手打上了。

是裕太微电子/Motorcomm 的 YT6801,Arch Linux 用户可以直接在 AUR 里面装 yt6801-dkms 包。

EC 驱动

负责键盘背光等等。

众所周知,无界 15X 系列用的是和国外厂商 TUXEDO 相同的模具,所以 EC 驱动、控制中心之类的可以通用。

在 AUR 里面装 mechrevo-drivers-dkms 包即可,这个包相比 tuxedo-drivers-dkms 打了 Patch,添加了对机械革命厂商信息的识别,否则可能不生效。

控制中心可以直接用 tuxedo-control-center-bin 包,虽然看起来并不是很有用。

色彩配置文件

参考上面 Rikka 的文章,直接安装 ta 提取出来的 BOE0C85_B025AA7B0639.icm 即可。

修复睡眠自动唤醒

在 GRUB 的 CMDLINE 里面添加启动参数 acpi.ec_no_wakeup=1

如果解决不了,就新建一条 udev Rule 禁用键盘的 Wakeup Trigger。

引用自 Rikka 的文章。

# /etc/udev/rules.d/99-disable-keyboard-wakeup.rules

# Disable wakeup for PS/2 keyboard controller
ACTION=="add", SUBSYSTEM=="serio", KERNEL=="serio0", ATTR{power/wakeup}="disabled"

然后重载 udev Rule 并重启。

sudo udevadm control --reload-rules
sudo udevadm trigger
reboot

修复花屏问题

AMD 780M 核显的 Panel Replay 功能有问题,在 GRUB CMDLINE 添加内核参数 amdgpu.dcdebugmask=0x400 即可。

Windows 应用程序?

目前来说,我并没有太多使用 Windows Only 程序的需求。常用的 QQ、微信、飞书都已经有了 Linux 版本,直接从 AUR 获取即可。

不过,MATLAB 和 STK 11——这是学校专业课实验需要用到的软件——还是要用到 Windows。后者没有 Linux 版本,而前者——有些插件没有适配 Linux。

Wine 对于这种复杂的专有软件效果并不好,于是我使用了 Winboat。

原理上,Winboat 就是通过 docker-kvm 开了一个 KVM 虚拟机容器,然后在里面运行 Windows,并利用 FreeRDP 将容器里的应用程序显示出来。

使用体验一般,在跨系统交互上,比自己维护一个 KVM 虚拟机方便。

遗憾的是,目前 Winboat 还不支持 3D 加速,因此桌面略微有些卡顿。而我的 AMD GPU 并不像 Intel GPU 一样可以通过 SR-IOV 方式创建 vGPU 直通给虚拟机,因此只能忍受一下了。

使用体验

目前我的环境配置是 KDE Plasma 6 + SDDM + GRUB + VSCode + Fish,使用了 linux-zen 内核。

总体来说,并没有太多令人不适的地方。彻底抛开 Windows 兼容性后,GNU 工具链的使用体验更上了一层楼。

嵌入式开发

由于我的专业课程需要,我需要配置一个 STM32 开发环境。

显然,Keil 在 Linux 上使用体验并不是特别好。幸运的是,ST 官方提供了 STM32CubeMX 和 STM32CubeCLT 的 Linux 版本,而 CLion 26.1 也提供了原生支持。

因此,只要通过 AUR 安装 stm32cubemxstm32cubecltstlink-server 软件包,然后正常安装 CLion,并配置好工具链路径,就能正常进行 STM32 开发了。

娱乐?

虽然目前还并没有在这台本子上打过游戏,但是仍然很诚实地装了一个 Steam。

目前看,库里的大部分游戏都能通过 Steam Play 在 Linux 上转译运行。

考虑到这台本子并没有独显,也许顶多会用它推推逆转裁判 456 精选集?

Vibe Coding

装了个 OpenCode。配合打折的 DeepSeek-V4-Pro MAX 使用,体验非常不错。

梁圣的恩情还不完啊,个位数价格的 Pro 就用吧,一用一个不吱声

机械革命无界 15X 的 Arch Linux开荒指南

https://www.allenyou.wang/post/35

本文作者

秋实-Allenyou

授权协议

CC BY-NC-SA 4.0

加载评论中……