有些问题不是“不会装”,而是你不知道到底需不需要装

最近在一台 Rocky Linux 8.6 工作站上遇到一个看似简单、实则非常容易“误操作”的问题:
Wacom 数位板插上之后,系统完全无法使用。

本文记录完整排障过程,以及最终采用的一个更工程化、更稳妥的解决方案


一、问题现象

环境信息:

  • 系统:Rocky Linux 8.6

  • 内核:4.18.x(默认内核)

  • 桌面环境:Xorg

  • 设备:Wacom 数位板(USB 接口)

问题表现:

  • 插入 Wacom 后 无任何响应

  • 鼠标/笔无法移动

  • xsetwacom --list 无输出

  • 系统看起来“什么都没发生”

这类问题最危险的地方在于:
👉 你很容易直接开始“装驱动”

但这一步,往往是错的。


二、第一步不是装驱动,而是判断「系统是否看到硬件」

在 Linux 下,是否识别到硬件是否能正常使用 是两件完全不同的事。

1️⃣ USB 层面检查

lsusb | grep -i wacom

如果这里 完全没有 Wacom,那说明问题在:

  • USB 接口

  • 线材

  • 设备本身

  • BIOS / 电源管理

👉 此时装任何驱动都是徒劳的。


2️⃣ 内核日志检查(关键)

dmesg | grep -i wacom

如果能看到类似:

  • Wacom Intuos

  • input: Wacom ...

  • usbcore: registered new interface driver wacom

说明:

内核已经“看见”设备,但驱动能力不足

这才是 input-wacom 出场的正确时机。


三、为什么 Rocky Linux 上 Wacom 特别容易出问题?

原因并不复杂:

  • Rocky Linux = 企业发行版

  • 内核版本 稳定但偏旧

  • 新款 Wacom 的支持往往在 更新内核或外部模块中

input-wacom 的存在意义正是:

为旧内核提供更新的 Wacom 驱动模块(out-of-tree)


四、常见误区:无条件编译 input-wacom

很多教程直接就是:

./configure
make
make install

问题是:

  • 如果系统根本没识别到硬件

  • 或已经被 libinput 正常接管

那么你做的只是:

  • 白白编译内核模块

  • 增加维护成本

  • 内核升级后留下隐患

所以我最终采用的原则是:

先识别硬件 → 再决定是否安装驱动


五、最终方案:带“硬件判断”的工程化安装脚本

核心逻辑只有一句话:

检测到 Wacom 才安装 input-wacom,没检测到就直接跳过

判断方式:

  • lsusb 判断 USB 层

  • dmesg 判断内核层(兜底)

if ! lsusb | grep -qi wacom && ! dmesg | grep -qi wacom; then
    echo "未检测到 Wacom 硬件,跳过驱动安装"
    exit 0
fi

只有在这一步通过后,才会继续:

  • 安装 kernel-devel

  • ./configure --with-kernel=...

  • make && make install

  • modprobe wacom


六、Xorg 下的额外问题:按键 & 触控干扰

即使驱动安装成功,在 Xorg 环境下仍然可能遇到:

  • 快捷键误触

  • 滚轮乱跳

  • 触控区域误操作

最终通过 xsetwacom 直接禁用:

  • PAD 所有按钮

  • 所有转轮

  • TOUCH 功能

这一点在 工作站 / 制作环境 尤其重要。


七、最终总结

这次问题的核心经验只有三点:

1️⃣ 驱动不是第一步,识别硬件才是

能不能用,先看系统有没有“看到它”。


2️⃣ input-wacom 不是必装组件

它是:

  • 旧内核 + 新硬件

  • 内核原生驱动有缺陷

时的补救方案。


3️⃣ 运维脚本必须“知道什么时候该停手”

比起“能装”,
“知道什么时候不装”更重要。


后记

后来我把整个过程封装成了一个:

  • 可重复执行

  • 带硬件判断

  • 不污染系统

  • 日志完整

的安装脚本。

如果后续这台工作站升级内核,
我会直接改成 DKMS 模式,避免手动维护。


有些问题不是技术不够,而是判断顺序错了

—— 记录一次 Rocky Linux 与 Wacom 的拉锯战