银河麒麟系统触摸无响应、漂移或不识别,主因是驱动未加载或X11配置缺失;需依次检查USB识别(lsusb)、内核日志(dmesg)、xinput状态、hid-multitouch模块加载,并配置99-touch.conf绑定驱动,最后通过麒麟控制中心或xinput-calibrator校准。

银河麒麟系统连接国产触摸一体机后光标能动但点击无响应、触控漂移或完全不识别,说明系统未正确加载触摸框驱动或X11输入配置缺失;这类设备通常使用USB HID协议或串口通信,需分层确认硬件识别、内核模块加载、Xorg驱动绑定与校准配置。
确认触摸框硬件是否被内核识别
打开终端,执行 lsusb | grep -i "touch\|hid\|egalax\|cypress\|planar\|3m"。若返回类似 Bus 001 Device 004: ID 0eef:0005 D-WAV Scientific Co., Ltd eGalax Touch Screen 的行,说明USB已探测到设备;若无输出,先检查USB线缆、接口及触摸框电源开关。
再运行 sudo dmesg | tail -20,查找含 hid-generic、usbhid 或具体厂商名的新日志行。出现 input: eGalax Inc. eGalaxTouch EXC7910-1024 as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:0005.0003/input/input12 表示内核已成功初始化,此时问题大概率出在Xorg驱动未绑定或权限不足。
【必须执行】若 dmesg 中出现 device descriptor read/64, error -71,说明USB协议握手失败,立即更换USB线缆——劣质线缆会导致触摸数据包丢帧,后续所有配置均无效。
启用并绑定Xorg触摸驱动
银河麒麟V10/V11默认使用 libinput 驱动,但国产触摸框常需强制指定 evdev 或启用 hid-multitouch 内核模块。
第一步:检查当前Xorg输入驱动状态
执行 xinput list,观察输出中是否包含带“touch”、“HID”或“eGalax”的设备条目。若存在但状态为 disabled,执行 xinput enable "eGalax Inc. eGalaxTouch EXC7910-1024"(引号内名称以实际输出为准)。
第二步:确认 hid-multitouch 模块已加载
运行 lsmod | grep hid_multitouch。若无输出,执行 sudo modprobe hid-multitouch 手动加载;为防止重启失效,运行 echo "hid-multitouch" | sudo tee -a /etc/modules。
第三步:创建Xorg驱动绑定配置文件
执行 sudo mkdir -p /etc/X11/xorg.conf.d,然后创建配置:sudo nano /etc/X11/xorg.conf.d/99-touch.conf。
填入以下内容(根据 xinput list 中的设备Product ID调整MatchUSBID):
Identifier "Touchscreen override"
MatchIsTouchscreen "on"
MatchUSBID "0eef:0005"
Driver "libinput"
Option "IgnoreRelativeAxes" "on"
Option "IgnoreAbsoluteAxes" "off"
EndSection
保存退出后,执行 sudo systemctl restart lightdm 重启显示管理器。
校准触摸坐标偏移
方法一:使用图形化校准工具(推荐初学者)
打开“麒麟控制中心”→“硬件”→“触摸屏”,若界面中出现设备名称,点击“校准”按钮,按提示在屏幕上点击四个角点。该工具会自动生成校准矩阵并写入 /var/lib/xinput/calibration.d/。
方法二:命令行强制校准(适用于校准失效或无图形界面场景)
安装校准工具:sudo apt install xinput-calibrator。
执行 xinput_calibrator --output-type xorg-conf,按提示完成四点点击;生成的配置段会直接输出到终端,复制全部内容(从 Section "InputClass" 到 EndSection),粘贴覆盖至 /etc/X11/xorg.conf.d/99-touch-calibration.conf。
【注意】若校准后触控仍反向或缩放异常,检查是否误将 MatchIsTouchscreen "on" 写成 "true"——Xorg只识别 "on" 和 "off",其他值会导致整个Section被忽略。
执行 sudo systemctl restart lightdm。


















