ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Manjaro 26体验:Wayland全面落地,内核驱动大换血

Manjaro 26体验:Wayland全面落地,内核驱动大换血 Manjaro 26 装上之后我被一个小细节弄得愣了一下登录界面的默认会话悄悄从 X11 变成了 Wayland。用了五六年 Manjaro每次发布都说拥抱 Wayland但这次是真的把默认值改了。加上内核、驱动、输入法栈、桌面组件的一次性大换血开机之后的第一感受就是——整个图形栈像被重新焊过一遍。这篇文章不是官方公告的复述而是我从实际升级、备份、反复开关会话之后整理出来的解读重点聊 Wayland 落地到什么程度、内核与驱动升级的取舍、核心软件栈更新对日常使用的影响以及从旧版本升级/全新安装的实操路径。无论你是准备新装一台 Linux 桌面还是老用户犹豫要不要跟进应该都能从这里找到答案。1. 三个升级主线和版本号真正的含义1.1 滚动发行版为什么也要版本海外的 Linux 社区里经常能看到一个经典问题我用的是滚动发行版系统天天更新那版本号到底有什么意义这个问题放在 Manjaro 身上尤其典型。Manjaro 底层基于 Arch Linux软件包几乎处于滚动状态理论上不存在大版本切换这种说法。但 Manjaro 一直保留着版本快照的传统——每隔一段时间官方会把当前仓库里经过测试的整套组件打成一份新的 ISO这就是你看到的Manjaro 26 发布。这个快照的意义有三层安装介质锚点我手头这台机器就是从上一版 ISO 装出来的升到 26 之后其实和装新版 ISO 的系统差别不大但全新安装时拿到 26 的镜像可以省去几个月的增量更新量。默认行为切换很多默认值的变更只会在新 ISO 里体现。比如登录管理器默认会话改成 Wayland这个改动在滚动更新里很可能不触发只有装新版 ISO 才会直接落到你眼前。测试整合点Manjaro 官方团队对一个快照内的仓库组合做过一轮集成验证。日常滚动更新依赖社区反馈而发布版至少意味着官方认为这一批组件可以开箱即用。所以Manjaro 26 既不是全新的操作系统也绝不只是换个数字。它代表的是当前最值得信任的一个组件组合。1.2 三条主线Wayland、内核驱动、核心软件栈拿我自己升级前后的对比来看这次变化的跨度确实够大官方总结的三条主线基本覆盖了所有关键差异维度旧快照常见状态Manjaro 26 状态显示协议X11 默认Wayland 可选Wayland 默认X11 保留内核与驱动旧 LTS 内核 对应 Mesa/闭源驱动新 6.x LTS 分支 更新的 Mesa / NVIDIA 驱动栈桌面与组件Plasma 5.x / Qt5 / PulseAudio 等Plasma 6.x / Qt6 / PipeWire 全面接管输入法机制全局钩子方式为主Wayland text-input 协议为主需由合成器配合从表格也能看出来这不仅仅是更新软件版本而是把桌面 Linux 的几根支柱都换了。其中 Wayland 默认化是最显眼的一个但内核和驱动栈的变化才是能不能用好 Wayland的基础。1.3 哪些人值得认真看这次发布我粗略分了三类人对号入座就行准备新装机的朋友直接拿 Manjaro 26 ISO 安装默认配置在绝大多数新硬件上是最省心的状态不用自己折腾驱动。已经在用 Manjaro 的老用户滚动的系统迟早会走到这一步。看完这篇你可以少踩几个我在升级过程中踩过的坑。游戏玩家或创作者内核调度、Mesa/驱动、音频栈的更新对帧率、延迟、HDR 输出都有直接影响值得关注。2. Wayland 为什么这次才算全面2.1 X11 的历史包袱和 Wayland 的收益X11 从 1987 年开发出来一路服役到今天它的问题在桌面场景下已经越来越难忽略。最典型的是这三个帧撕裂传统 X11 合成流程里APP 可以直接往 framebuffer 里画合成器不一定能保证垂直同步全屏游戏或拖动窗口时经常出现画面撕裂。混合缩放混乱高分屏配普通屏一个桌面两套缩放在 X11 下非常痛苦应用要么发虚要么大小比例失衡。安全模型薄弱任何进程都可以通过 X11 的全局事件机制记录键盘输入、截取其他窗口内容。这也是银行类网页在 Linux 下经常收到安全提示的根源。Wayland 的核心思路是一切交给合成器Compositor。负责显示输出的 KWin/Mutter 直接管理帧缓冲区、输入事件和窗口生命周期APP 只能通过协议与合成器交互。这样在架构上就解决了帧管理、分数缩放、输入事件分发和安全性这些 X11 时代的顽疾。那为什么以前不默认 Wayland因为协议设计得好不代表生态能落地。Wayland 需要三个条件同时满足才能当默认桌面环境自己的合成器足够成熟KWin 的 Wayland 支持经历了多年打磨闭源显卡驱动跟上NVIDIA 长年是短板后续细说周边生态适配输入法、截图、远程桌面、游戏兼容层Manjaro 26 这个时间点这三件事基本都到位了。2.2 输入法在 KDE Wayland 下的新规矩我和很多从 X11 时代走过来的用户一样升级后遇到的第一个不对劲就是输入法。先说背景。X11 时代输入法比如 fcitx5通过全局钩子把自己的输入逻辑插入所有应用窗口那个时期行得通因为它可以随意监听和改写按键事件。Wayland 出于安全设计直接禁掉了这种全局钩子改走text-input 协议输入法不再是往窗口里塞字而是由合成器把当前聚焦窗口的输入状态交给输入法再由合成器把候选词位置、上下文字符串广播给窗口。所以在 KDE 的 Wayland 会话下一个非常关键的点就是fcitx 应该由 KWin合成器启动而不是像 X11 时代那样在自启动里单独拉起。如果你在 KDE Wayland 下发现候选框不跟随光标、甚至完全不弹候选框第一反应就应该是检查 fcitx5 是不是还在自启动列表里挂着一个手动启动项。我的处理流程是这样的先确认输入法相关环境变量在~/.config/environment.d/im.conf里写入GTK_IM_MODULEfcitx QT_IM_MODULEfcitx XMODIFIERSimfcitx然后在系统设置里把 fcitx5 的自动启动项删掉重新登录。之所以要删掉自启动项是因为 Wayland 会话下 KWin 自己会触发输入法后端两个入口同时存在反而容易造成双实例或协议混乱。提示升级后如果还在用旧版 fcitx4建议直接切到 fcitx5。不少候选框不跟随的问题本质上不是 Wayland 的锅而是 fcitx4 的 Wayland 前端已经不维护了。2.3 NVIDIA 用户在 Wayland 下的选择Linux 桌面圈长期以来有句话NVIDIA 是 Wayland 路上最大的石头。以前这确实是事实闭源驱动不支持 GBM 后端Wayland 合成器根本无法直接使用显卡输出只能退到 XWayland 或者 EGLStreams 这种野路子上。Manjaro 26 搭载的新版 NVIDIA 闭源驱动用户可以从驱动管理器中看到较新的 570 系列驱动已经在 GBM/DRM 后端上走向成熟。对于 TuringGTX 16 系 / RTX 20 系之后的主流显卡默认 Wayland 会话不再是个需要反复斟酌的事。升级后可以先自查一下当前会话和驱动加载情况echo $XDG_SESSION_TYPE nvidia-smi mhwd -li第一条命令回显wayland第二条能看到 GPU 名称和驱动版本第三条会列出当前已装的显卡驱动包。如果nvidia-smi找不到命令或驱动没加载大概率是内核更新后 DKMS 模块没有重新编译处理方式在后面的实操章节里写。另外要注意一点有些程序本身还没原生适配 Wayland启动时会看到类似warning: ignoring xdg_session_typewayland on gnome...之类的提示甚至干脆走 XWayland 的 X11 后端。这不是系统坏了而是该程序还没准备好属于正常现象。如果实在遇到显卡兼容问题最简单的方法是回到 SDDM 登录界面在会话选择菜单里选 Plasma (X11)。X11 会话仍然保留了完整的环境不是什么回退到旧时代而是给你一个保险选项。2.4 游戏、截图、远程协作的兼容性Wayland 默认化之后不少人会担心日常软件能不能正常用。我实测下来三个常用场景可以参照这个结论游戏Steam 客户端和 Proton 兼容层在 Wayland 下基本无障碍。游戏本身大多走 XWayland性能损失很小VRR可变刷新率和 HDR 在 KWin 的 Wayland 会话里也有了不错的支持。唯一要注意的是部分老游戏的鼠标捕获逻辑在 XWayland 下偶发问题遇到的话切一次全屏模式就好。截图X11 时代常见的gnome-screenshot等在 Wayland 下要么功能受限要么干脆不能用。KDE 的 Spectacle 现在直接支持 Wayland 录屏和截图命令行工具推荐grim。如果想截取当前窗口Spectacle 里选窗口模式即可。远程桌面RDP 在 KDE Wayland 下的使用已经相对顺畅VNC 的共享和鼠标键盘注入支持还是要看具体服务端。重度依赖 VNC 的用户我会建议保留一个 X11 会话专门应对。3. 内核与驱动升级性能提升背后的取舍3.1 新内核给桌面带来了什么Manjaro 26 默认搭载的内核进入 6.x LTS 分支老用户可以在升级后用uname -r确认当前内核版本。表面上看只是版本号变大了但内核层的变化对桌面体验的影响往往是隐形的这里挑三个最实用的点聊聊。第一是新硬件支持。最近两年的新 CPU 平台、Wi-Fi/BT 模组、新 GPU都需要相对新的内核和 firmware 才能正常驱动。对老硬件用户来说内核更新可能感知不强但对今年的新机器旧内核真的会出现装完没网、没声音、显卡不亮这种问题。第二是底层调度与事件机制优化。Linux 内核在围绕高并发场景做大量优化比如事件等待/唤醒机制eventfd 相关路径的改进以及锁竞争spinlock 在特定场景下的休眠策略的调整。这些改动看不见摸不着但实际体现在高负载下桌面输入响应更跟手、后台 IO 不会把界面卡到假死。第三是文件系统与虚拟化能力。io_uring 的持续完善让数据库和高并发服务受益KVM 虚拟化相关补丁也一直在更新。如果你用 QEMU/KVM 跑虚拟机或容器新内核带来的稳定性提升是实打实的。3.2 驱动栈Mesa 与 NVIDIA 的协同方式Manjaro 26 的驱动更新分两条线AMD / Intel 用户走开源 Mesa 驱动。新版 Mesa 对 Vulkan 扩展、OpenGL 性能、HDR 输出都有改进。这类显卡在 Wayland 下的体验本来就好属于升级完只管享受的一类。NVIDIA 用户闭源驱动由 mhwdManjaro 硬件检测工具管理。从旧版本跨版本升级后驱动模块经常需要针对新内核重新编译。常见表现是重启后驱动加载失败、分辨率异常、或者根本没有 nvidia-smi。NVIDIA 驱动的踩坑点在于很多人会不自觉地参考 Windows 上用 DDU 卸载后再重装的习惯在 Linux 里直接把驱动相关包一股脑删掉。这个思路非常危险——Linux 显卡驱动和内核模块、DKMS、Xorg 配置深度绑定粗暴删除后轻则黑屏重则连 X11 会话都起不来而且恢复流程比 Windows 下麻烦得多。正确做法是让 mhwd 来重建驱动栈sudo mhwd -r pci video-nvidia 2/dev/null sudo mhwd -a pci free 0300第一条命令卸载现有的 nvidia 驱动配置第二条重新安装匹配的驱动。装完重启一般就能把驱动和内核模块的关系理顺。3.3 内核怎么选LTS 还是新内核Manjaro 26 默认推荐 LTS 内核普通用户别换。我自己长期保持一个 LTS 一个最新主线双内核并存LTS 内核稳定、兼容性最好适合办公、家庭、日常开发。最新主线内核新硬件需要的新特性基本都在这里但相应也会遇到个别软件不兼容的小概率风险。老机器用户如果机器配置比较旧升级内核并不能带来什么性能神话反而占用更多磁盘空间。保留默认 LTS 就够了。换内核的命令在 Manjaro 上是mhwd-kernel细节放到最后一部分。升级到 26 之后我强烈建议保留旧内核至少两周确认新内核在日常使用中没有问题再用工具清理给系统留一条退路。4. 核心软件栈升级带来的桌面体验变化4.1 Plasma 6.x从 Qt6 到 KWin 的全面迭代Manjaro 26 的官方默认桌面是 KDE Plasma 6.x 系列配合 Qt6 工具包。单看截图Plasma 6 和前代 Plasma 5 的视觉差异不算夸张但实际用起来差别很大。最直观的是多显示器分数缩放。X11 下 125%、150% 这种混合缩放长期扯皮到了 Wayland 会话里KWin 对每个屏幕的缩放比例是独立处理的高分屏放 150%、旁边普通屏放 100%不再需要为兼容性最好的整数缩放妥协。其次是窗口合成体验。Wayland 下的 KWin 把所有渲染统一交给 GPU 合成器拖动窗口、切换工作区、全屏游戏切换这些场景不会再看到 X11 时代偶尔出现的拖影或撕裂。还有个容易被忽略的点HDR 支持。Plasma 6 还在持续迭代 HDR 输出相关能力如果你有支持 HDR 的显示器在 Wayland 会话下已经能尝到甜头。当然升级也不是没有代价。Plasma 6 对第三方主题、窗口装饰的兼容性要求更高很多为 Plasma 5 写的主题在 6.x 上会直接失效或出现画风崩坏。我的建议很简单别折腾主题默认 Breeze 跟手且稳定。4.2 PipeWire 与系统组件的现代化Manjaro 26 的音频/视频服务已经由 PipeWire 全面接管。对普通用户来说PipeWire 带来的改变是这些蓝牙耳机连接延迟明显降低不再需要反复在 PulseAudio 里调 sink屏幕录制和共享不再依赖虚拟声卡这类 hack直接通过 PipeWire 走统一管道低延迟音频创作接 MIDI、音频接口配置起来比过去简单此外systemd、firmware 包、libinput 输入栈等基础设施也都同步更新。它们属于平时感觉不到存在、但缺了立马出大事的一批组件。跨版本升级时如果发现触摸板手势、风扇转速或电源管理行为发生变化多半就是这些基础组件在起作用。4.3 应用生态、包管理与开发环境Manjaro 的包管理策略和 Arch 差不多滚动更新 用户主动pacman -Syu。但 Manjaro 仓库不是直接同步 Arch 而是有自己的构建管道软件进入仓库前会多一步集成测试。Manjaro 26 没有改变这个策略只是把常用软件、工具链的打包版本整体刷新了。开发者用户值得关注的点有三个工具链更新GCC、Rust、Python 等开发工具的版本都有较大跨越部分老项目在新工具链下可能遇到编译报错属正常现象升级后重新编译一次即可。容器与虚拟化Docker/Podman 运行依赖的内核特性较新这也是新版内核更稳的一个重要论据。安全启动如果你使用了 Secure Boot内核更新后可能需要在 MOK 管理器里重新确认签名否则会出现内核加载被拒的问题。相关工具是mokutil升级完重启时留意蓝色 MOK 管理界面就好。Flatpak 和 pacman 并存的局面也没变。我个人的习惯是系统组件走 pacman日常应用优先 Flatpak这样可以减少应用缺依赖和系统升级连带更新应用的互相干扰。5. 升级实操从备份到切换的完整链路5.1 升级前必做的准备工作Manjaro 26 这种跨版本的滚动升级最大的风险不是软件包本身而是升级过程中断了以及升级后驱动没跟上。所以升级前的备份不要省略。备份我分两层做第一层用 Timeshift 做系统快照。如果只想跑命令行也可以只备份 pacman 的本地数据库tar -czf pacman-db-backup.tar.gz /var/lib/pacman/local这套数据库记录了当前系统安装的所有软件包信息万一升级失败可以用它配合pacman -Syu恢复到可重入状态。第二层备份家目录里的关键配置。我习惯把~/.config和~/.local/share/applications这种关键目录单独打包一次。升级后如果某个软件行为异常至少能很容易地对照新旧配置。此外检查磁盘空间df -h /升级核心组件前根分区至少留出 2GB 到 3GB 可用空间。空间不够导致 pacman 事务中断是滚动更新最常见的翻车原因。5.2 老用户升级与全新安装两条路径老用户升级的流程其实很简单但要注意跨版本时的步骤# 先同步镜像源 sudo pacman-mirrors -c China -m rank # 国内用户建议执行 # 升级系统 sudo pacman -Syu如果你从很早的版本比如 23.x一次性升上来我强烈建议分两次执行第一次执行sudo pacman -Syu后重启把 pacman 基础和关键系统组件先稳定下来然后再执行一次sudo pacman -Syu完成剩余组件的更新。分两次的原因是跨版本升级时个别组件之间的依赖关系可能处于中间态一次升级一路到底偶尔会出现依赖冲突提示拆成两次可以大幅降低这类情况。全新安装的朋友直接在官网下载 Manjaro 26 ISO用 RufusWindows或dd写入 U 盘即可。安装器默认进入的会话就是 Wayland。安装过程中如果你有 Windows 双系统分区时注意保留 ESP 分区装完如果 Grub 菜单里没有 Windows 项回到系统执行sudo update-grub一般就能找回来。5.3 确认自己处于 Wayland 会话升级完成后有几个命令建议逐一执行确认系统状态# 确认当前会话类型 echo $XDG_SESSION_TYPE # 查询 systemd 记录的会话类型 loginctl show-session $(loginctl | grep $(whoami) | awk {print $1}) -p Type # 查看已安装的显卡驱动 mhwd -li # 输入法诊断 fcitx5-diagnose | head -n 30如果XDG_SESSION_TYPE显示wayland说明默认会话已经切过去了。如果不是打开 SDDM 登录界面的会话菜单手动选择 Plasma Wayland。5.4 升级后必做的三项校验升级完成、重新登录进入 Wayland 会话后我一般还会做三件事第一检查内核模块加载情况。执行dmesg | grep -i firmware看看有没有大量 firmware 缺失提示。如果缺的是某些 Wi-Fi 或蓝牙模块的固件系统会通过linux-firmware包自动补齐如果提示的是第三方闭源模块相关的缺失就需要按驱动的具体情况处理。第二确认输入法候选框能正常跟随。随便打开一个 Qt 应用比如 Kate和一个 GTK 应用比如 Firefox在里面输入中文并移动光标观察候选框是否跟随。如果只有 GTK 应用异常检查GTK_IM_MODULE环境变量是否被旧配置覆盖。第三重点检查多显示器配置。Wayland 下每块屏幕的缩放是独立的但正常升级后旧的显示器配置有时不会完整迁移到新会话框架下。重新到系统设置的显示里确认每个屏幕的分辨率和缩放比例避免出现升完级一个屏幕清晰一个屏幕发虚的尴尬。6. 实测中遇到的意外情况与给新旧用户的建议6.1 我碰到的几个小问题升级过程中和有几天深度使用里我实际遇到的小问题包括这几类写出来供大家对照参考。第一个是输入法候选框不跟随。这个问题在前面已经拆过根因是 fcitx5 和一个旧自启动项同时存在导致 Wayland 输入法前端没有正确绑定 KWin 的 text-input 协议。处理方式就是删自启动项 重新登录。第二个是混合缩放导致部分应用发虚。在 Wayland 会话下主屏 150% 缩放、副屏 100% 缩放大多数应用表现正常但个别 Electron 应用某些聊天软件、开发工具在跨屏拖动时会出现文本模糊。这是因为它们还没原生适配 Wayland 分数缩放。解决办法是给这类应用设置环境变量ELECTRON_OZONE_PLATFORM_HINTauto或干脆让它走 XWayland反而清晰。第三个是第三方主题失效。我之前用的一个 Plasma 全局主题在升级后直接崩了导致面板透明度和桌面组件显示异常。排查到最后就是主题未适配 Plasma 6。这类问题没法根治只能换回默认主题或者等待主题作者更新。6.2 不同用户的最优路径结合这几天的实测我给不同用户群的建议是这样新装机用户直接装 Manjaro 26默认 Wayland LTS 内核。硬件新的话甚至不用额外装闭源驱动NVIDIA 用户按安装向导提示勾选就是了。老用户且硬件较新备份后正常sudo pacman -Syu完成后保留旧内核至少两周再清理。NVIDIA 老显卡用户GTX 10 系以前不建议硬上 Wayland 会话登录时选 X11 更稳妥。用新版闭源驱动在旧卡上强跑 Wayland遇到问题的概率远高于收益。重度依赖远程桌面 / 无障碍工具的用户留一个 X11 会话做后备没必要跟新协议死磕。6.3 几个实用的小技巧最后分享几个这几天折腾下来觉得值得保留的小技巧。内核版本管理用mhwd-kernel可以组合出默认 LTS 主线并存的状态# 安装特定版本的内核以 6.12 LTS 为例 sudo mhwd-kernel -i linux612 # 查看已安装内核 mhwd-kernel -l如果你更喜欢纯命令行方式也可以直接用 pacman 装linux和linux-lts两个内核包并存grub 会自动生成多个启动项开机时按下 ESC 就能在旧内核和新内核之间切换。只要旧内核还在升级后遇到黑屏、驱动不加载这些问题都能在 GRUB 高级选项里先从旧内核启动自救再回头处理驱动。还有一个配置管理的小习惯大版本升级之前先在~/.config里初始化一个 git 仓库把当前所有配置提交一次。升级后如果某个软件行为异常可以直接git diff对比新旧配置差异而不是凭记忆逐个翻文件。这个习惯在我多年的 Linux 使用里救过很多次。我在实际使用中的体会是这次换血最值得在意的反而不是那些一眼能看见的视觉变化而是 Wayland 终于把输入法、分数缩放、多屏这些日常琐碎给理顺了。如果你也打算升级记住一条核心原则内核和驱动可以多留一份会话和配置要能从旧状态快速回退。系统换血归换血给自己留条退路永远不亏。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进