![在 Unity 上切换用户时未检测到 Synaptics 触摸板](https://linux22.com/image/1046208/%E5%9C%A8%20Unity%20%E4%B8%8A%E5%88%87%E6%8D%A2%E7%94%A8%E6%88%B7%E6%97%B6%E6%9C%AA%E6%A3%80%E6%B5%8B%E5%88%B0%20Synaptics%20%E8%A7%A6%E6%91%B8%E6%9D%BF.png)
如果只有单个用户登录,Synaptics 触摸板会被检测到并正常工作。但是,如果我们切换到另一个用户,鼠标将不再对第二个用户起作用。您可以使用“锁定/切换”用户帐户菜单或使用 CTRL+ALT+F8 进行切换。
Screen0 的日志文件(CTRL+ALT+F7)-> Synaptics 触摸板工作正常。
[ 20.205] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/event17)
[ 20.205] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"
[ 20.205] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad catchall"
[ 20.205] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "Default clickpad buttons"
[ 20.205] (II) LoadModule: "synaptics"
[ 20.205] (II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so
[ 20.205] (II) Module synaptics: vendor="X.Org Foundation"
[ 20.205] compiled for 1.15.0, module version = 1.7.4
[ 20.205] Module class: X.Org XInput Driver
[ 20.205] ABI class: X.Org XInput driver, version 20.0
[ 20.205] (II) Using input driver 'synaptics' for 'SynPS/2 Synaptics TouchPad'
[ 20.205] (**) SynPS/2 Synaptics TouchPad: always reports core events
[ 20.205] (**) Option "Device" "/dev/input/event17"
[ 20.232] (--) synaptics: SynPS/2 Synaptics TouchPad: x-axis range 1472 - 5472 (res 58)
[ 20.232] (--) synaptics: SynPS/2 Synaptics TouchPad: y-axis range 1408 - 4448 (res 106)
[ 20.232] (--) synaptics: SynPS/2 Synaptics TouchPad: pressure range 0 - 255
[ 20.232] (--) synaptics: SynPS/2 Synaptics TouchPad: finger width range 0 - 15
[ 20.232] (--) synaptics: SynPS/2 Synaptics TouchPad: buttons: left right
[ 20.232] (--) synaptics: SynPS/2 Synaptics TouchPad: Vendor 0x2 Product 0x7
[ 20.232] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[ 20.232] (**) SynPS/2 Synaptics TouchPad: always reports core events
[ 20.264] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input9/event17"
[ 20.264] (II) XINPUT: Adding extended input device "SynPS/2 Synaptics TouchPad" (type: TOUCHPAD, id 12)
[ 20.264] (**) synaptics: SynPS/2 Synaptics TouchPad: (accel) MinSpeed is now constant deceleration 2.5
[ 20.264] (**) synaptics: SynPS/2 Synaptics TouchPad: (accel) MaxSpeed is now 1.75
[ 20.264] (**) synaptics: SynPS/2 Synaptics TouchPad: (accel) AccelFactor is now 0.040
[ 20.264] (**) SynPS/2 Synaptics TouchPad: (accel) keeping acceleration scheme 1
[ 20.264] (**) SynPS/2 Synaptics TouchPad: (accel) acceleration profile 1
[ 20.264] (**) SynPS/2 Synaptics TouchPad: (accel) acceleration factor: 2.000
[ 20.264] (**) SynPS/2 Synaptics TouchPad: (accel) acceleration threshold: 4
[ 20.264] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[ 20.264] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/mouse1)
[ 20.264] (**) SynPS/2 Synaptics TouchPad: Ignoring device from InputClass "touchpad ignore duplicates"
屏幕 1 的日志文件 (CTRL+ALT+F8) -> 未检测到第二个用户 Synaptics 触摸板
[ 32380.253] (II) Using input driver 'synaptics' for 'SynPS/2 Synaptics TouchPad'
[ 32380.253] (**) SynPS/2 Synaptics TouchPad: always reports core events
[ 32380.253] (**) Option "Device" "/dev/input/event17"
[ 32380.260] (EE) synaptics: SynPS/2 Synaptics TouchPad: Synaptics driver unable to detect protocol
[ 32380.260] (EE) PreInit returned 11 for "SynPS/2 Synaptics TouchPad"
[ 32380.260] (II) UnloadModule: "synaptics"
[ 32380.260] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/mouse1)
[ 32380.260] (**) SynPS/2 Synaptics TouchPad: Ignoring device from InputClass "touchpad ignore duplicates"
屏幕 0 上的 xinput 输出
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
⎜ ↳ MCE IR Keyboard/Mouse (ene_ir) id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ HP Webcam id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ HP WMI hotkeys id=14 [slave keyboard (3)]
↳ ENE eHome Infrared Remote Receiver id=15 [slave keyboard (3)]
在提供适当的修复之前是否有任何已知的解决方法?
答案1
以下是解决该问题的一个解决方法:
/usr/local/sbin/mousecheck
创建一个包含以下内容的文件:
#!/bin/bash
OLDVT="x"
while sleep 1
do
VT=$(fgconsole)
if [[ "$VT" -ne "$OLDVT" ]]; then
modprobe -r psmouse
modprobe psmouse
OLDVT="$VT"
fi
done
使该脚本可执行:
chmod a+x /usr/local/sbin/mousecheck
您现在可以通过使用
sudo /usr/local/sbin/mousecheck
并检查它是否正常工作。最后,您可以通过添加永久启用该黑客程序
/usr/local/sbin/mousecheck &
添加到文件中/etc/rc.local
。注意:在行前添加
exit 0
并且不要忘记行尾的与符号 (&)。
答案2
重新安装设备驱动程序:
sudo apt-get --purge autoremove xserver-xorg-input-synaptics && sudo apt-get install xserver-xorg-input-synaptics
答案3
根据https://bugs.launchpad.net/ubuntu/+source/gdm/+bug/1247388,一种解决方法是运行:
sudo modprobe -r psmouse
sudo modprobe psmouse
这样可以为用户启用触摸板,但为另一个用户禁用触摸板(我测试过了)。但这需要管理员权限,所以我不知道普通用户的解决方案是什么。
我也在访客会话中尝试过这个,但在虚拟控制台中用第一个(管理员)用户执行了这两个命令,并为两个用户启用了触摸板。但有趣的是,当我用另一个管理员帐户而不是访客帐户尝试这个时,在虚拟控制台中执行同样的事情只会为其中一个用户启用触摸板。很奇怪。
另一种解决方法(来自https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/868400):
sudo modprobe -r psmouse
sudo modprobe psmouse proto=imps
切换用户之前运行此操作似乎可以解决问题,但会破坏触摸板设置。
答案4
升级到 Ubuntu 14.10 终于解决了这个问题。耶。使用 nouveau 驱动程序对 14.10 进行了测试。