和 Arch Linux 打交道其二:又一次大动干戈

继上篇发表后,近半年来运用 Arch Linux 时又遇到各种令人焦头烂额的问题。我仍旧奉行以下原则:只要可以登录并正常打字,足矣;在此之上,可以适当改进使用体验。

一、改头换面:GNOME 自尽和 KDE 当家

1.1 GDM 滚挂了?

此事发生于 3 月 25 日。当时,我进行一次常规更新,GNOME 全家桶和 GDM 桌面管理器升级至 46.0-1 版本。重启后,神奇的事情出现了:敲完密码,哪个桌面都进不去——GNOME 和 Cinnamon 皆然。 毫无疑问,这是引入 Arch 以来第三次问题更新(即“滚挂”),GDM 遭遇了它的滑铁卢。由于未发现相关日志记录,其故障原因至今不明。
然后我思忖,既然 GDM 已“滚挂”,原因也无从查起,干脆改头换面为宜。准备好救援用 U 盘,重启并引导之,摘除 GNOME、Cinnamon 和 GDM。印象中 KDE Plasma 桌面和 SDDM 启动器尚未尝试过,故安装了 plasma-meta 超集、kde-applications 超集和 sddm

恢复主硬盘引导,此时简洁且贴近 Windows 的桌面映入眼帘。其默认背景——Scarlet Tree 不免会让人联想到游戏《蔚蓝》(Celeste),非常合我口味。

KDE Plasma

1.2 Fcitx5 和 KDE Plasma 之适配

在 KDE Plasma 当中,Fcitx5 设置被整合到系统设置里,对 Wayland 窗口亦可应用全局强调色和深色背景;这种设计相较 GNOME、Cinnamon 可谓遥遥领先。但是,两个问题出现了:

  1. 设置界面的整合度其实一般,改用深色主题后,Fcitx5 设置页成了这副白茫茫、不可辨识的模样。
  2. 每次开机时,KDE Plasma 总会试图教我调校 Fcitx5 配置。它让我在“虚拟键盘”里启用 Fcitx5,我照做了,无碍;让我在 /etc/environment 当中摘去环境变量 GTK_IM_MODULEQT_IM_MODULE,我也照做了,结果是浏览器打不出中文来,无奈回退。
非常“热心”的提示
深色主题下的 Fcitx5 设置

1.3 KDE 全家桶之臃肿

根据当时 pacman 的运行记录,安装 kde-applications 超集时共有 407 个软件包被安装,涵盖办公、工具、网络、教育、游戏、开发、影音图像处理等类目,甚至还有 MariaDB 数据库;存储空间占用竟和 GNOME + Cinnamon 组合不相上下。更离谱的是,计算器居然有两个?!加上 Galculator 就有仨了!

后期我重新审视自身需求,精简的类目如下:

  • 游戏超集 kde-games 除《Minecraft》以外,我不考虑在这笔记本上玩任何游戏。
  • KDE 开发工具超集 kdesdk 当前,Visual Studio Code 可以满足我全部的编程和 Markdown 编排需求,KDE 软件开发也不是应该关心的。
  • 个人信息助手超集 kde-pim 相关需求可借助手机实现。
  • Youtube 助手 plasmatubeaudiotube 我的日常娱乐需求不依赖 Youtube。
  • 部分下载软件和社交客户端,包括 ktorrent kasts 等。 目前它们无实际用途,或有替代方案实现。

抛开以上部分,有些应用还是可圈可点的:

  • Kiten,日语词典;
  • Kalzium,元素周期表;
  • Kontrast,文本—背景对比度参照器,用于辅助本博客深色主题的设计;
  • KWeather(天气),可以定位到我这二线城市,相比之下 GNOME 天气仅有周边大城市可选。

二、此消彼长:Laptop Mode Tools 的小毛病

早前,我长期利用 Laptop Mode Tools 引擎来管理笔记本电源,缓解电池消耗过快的问题。但是,按下葫芦起了瓢:

  1. 不插电开机时,鼠标等外接 USB 设备全部断开,需重新连接。
  2. 不插电时,低电量(不足 50%)有一定几率造成系统反应迟缓,即处理器频率被锁定于极低的 0.4 GHz,需重启缓解。
  3. 合盖休眠后再开,有微小几率出现长期黑屏、无反应的情况。

近期在离线维护中,移除了该工具,改为以 acpid 对电源状态进行监视。其跟 KDE Plasma 所依赖的管理引擎 powerdevil 相处暂时融洽。

三、排异反应:离线更新之祸

在上述维护中,我还进行一轮常规更新,重启一看——完了,出现 /boot 挂载失败的提示,停在黑底白字上。查阅资料后,判断原因是引导分区内的 Linux 内存盘模块和系统分区 Linux 版本不一致(因为此次有 Linux 内核更新、重新生成内存盘模块的提示),而当时引导分区在救援环境下未挂载,从而未得到更新。挂载后重新安装内核、生成内存盘模块,恢复正常。

四、东拼西凑:独立 GPU 的使用

更换桌面环境后,独立 GPU 的调用方式发生了改变。首先,KDE Plasma 6 开始全面引入 Wayland 后端,而绿厂闭源驱动对 Wayland 尚缺乏良好支持;其次,Optimus Manager 无法用于 Wayland 环境。随后,目光转向了一个叫 NVidia eXec 的脚本:无需注销,即可加载并运用独立 GPU,可以在 Wayland 环境下渲染 X11 窗口。我用到它的目的只有一个:玩《Minecraft》。
安装后试运行 nvx start minecraft-launcher,观察到独立 GPU 已经启用并用于渲染游戏画面。然而,尽管渲染帧速在 80 fps 左右,但感观上不过三、四十,不及基于 X11 环境的 Cinnamon 来得顺畅。推断这是 X11 窗口转译所需额外开销所致。无论如何,问题已得以解决,我大约无需再留念 X11 环境了。

五、移花接木:BlackArch 软件库的引入

一日,我心血来潮,希望寻得一种类似于 Windows 软件 Advanced IP Scanner 的局域网终端 IP 检索工具。这种工具并未见于官方、Arch CN 和 AUR 软件库;检索 BlackArch 软件库时,倒是发现有 Angry IP Scanner ipscan 这款替代品。重装系统过于繁琐,唯有引入该软件库,但该怎么引入?
此处最大的麻烦,是 BlackArch 密钥环 blackarch-keyring 所需的根密钥必须手动获取并信任。具体过程:

  1. 在 Pacman 密钥管理器的设置 /etc/pacman.d/gnupg/gpg.conf 当中,指定获取公钥的服务器地址;
  2. 导入根密钥 63EC0ADBEA87E4E3
  3. 导入 BlackArch 软件库地址,并更新 Pacman 数据库;
  4. 导入 BlackArch 密钥环。
1
2
3
echo 'keyserver hkp://pgp.mit.edu' >> /etc/pacman.d/gnupg/gpg.conf;
pacman-key --recv-keys 63EC0ADBEA87E4E3;
pacman -Sy blackarch-keyring;

总结一下:无论黑猫白猫,捉到老鼠就是好猫;工具的选择以实用性为第一考量,教育性居次,组合搭配,便是我心目中理想的操作系统。我和 Arch Linux 之间的故事还将继续。