Tengo un conmutador KVM de mi empleador (Aten CS782DP) que funciona bien hasta donde puedo decir. Sin embargo, parece estar causando un problema con mi dispositivo de entrada (Thinkpad USB Compact Keyboard con TrackPoint) en Ubuntu 16.04 y 16.10. Ya no puedo hacer clic con el botón central y tampoco puedo desplazarme verticalmente (horizontalmente funciona bien).
En particular, así es como xinput
se ve la salida cuando el teclado está conectado directamente:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=14 [slave pointer (2)]
⎜ ↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint id=10 [slave pointer (2)]
⎜ ↳ ATEN KVM V1.1.104 id=17 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad 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)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)]
↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint id=9 [slave keyboard (3)]
↳ ATEN KVM V1.1.104 id=16 [slave keyboard (3)]
Así es como xinput
se ve la salida cuando se conecta a través del KVM:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=14 [slave pointer (2)]
⎜ ↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint id=9 [slave pointer (2)]
⎜ ↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint id=16 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad 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)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)]
↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint id=10 [slave keyboard (3)]
Por lo que puedo ver, esto también se ve bien, excepto por la extraña duplicación del dispositivo puntero (ID 9 y 16). Asumiré que esto tiene que ver con que el KVM sea un poco como un concentrador USB e ignoraré esta duplicación por ahora.
Intenté ejecutar xinput test
para ambos dispositivos y descubrí que el primer dispositivo acepta movimientos y clics izquierdo y derecho (botones del mouse 1 y 3), mientras que el segundo dispositivo solo desplaza horizontalmente (botones 6 y 7). Ninguno acepta el botón central (botón 2) ni el desplazamiento vertical (botones 4 y 5).
La salida de se xinput list-props
ve idéntica para ambos dispositivos:
Device 'Lenovo ThinkPad Compact USB Keyboard with TrackPoint':
Device Enabled (152): 1
Coordinate Transformation Matrix (154): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (284): 0
Device Accel Constant Deceleration (285): 1.000000
Device Accel Adaptive Deceleration (286): 1.000000
Device Accel Velocity Scaling (287): 10.000000
Device Product ID (272): 6127, 24647
Device Node (273): "/dev/input/event17"
Evdev Axis Inversion (288): 0, 0
Evdev Axes Swap (290): 0
Axis Labels (291): "Rel X" (162), "Rel Y" (163), "Rel Horiz Wheel" (282), "Rel Vert Wheel" (283)
Button Labels (292): "Button Left" (155), "Button Middle" (156), "Button Right" (157), "Button Wheel Up" (158), "Button Wheel Down" (159), "Button Horiz Wheel Left" (160), "Button Horiz Wheel Right" (161), "Button Side" (280), "Button Extra" (281), "Button Unknown" (275), "Button Unknown" (275), "Button Unknown" (275), "Button Unknown" (275)
Evdev Scrolling Distance (293): 1, 1, 1
Evdev Middle Button Emulation (294): 1
Evdev Middle Button Timeout (295): 50
Evdev Third Button Emulation (296): 0
Evdev Third Button Emulation Timeout (297): 1000
Evdev Third Button Emulation Button (298): 3
Evdev Third Button Emulation Threshold (299): 20
Evdev Wheel Emulation (300): 1
Evdev Wheel Emulation Axes (301): 6, 7, 4, 5
Evdev Wheel Emulation Inertia (302): 10
Evdev Wheel Emulation Timeout (303): 200
Evdev Wheel Emulation Button (304): 2
Evdev Drag Lock Buttons (305): 0
La configuración predeterminada de TrackPoint en Ubuntu ( /usr/share/X11/xorg.conf.d/11-evdev-trackpoint.conf
) se ve así:
Section "InputClass"
Identifier "trackpoint catchall"
MatchIsPointer "true"
MatchProduct "TrackPoint|DualPoint Stick"
MatchDevicePath "/dev/input/event*"
Option "Emulate3Buttons" "true"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection
Entonces, de acuerdo con esta regla, ambos dispositivos deben tener la configuración idéntica, que es aceptar el movimiento, los tres botones y también ambos tipos de desplazamiento. Sin embargo, este no es el caso, como se ilustra arriba. Un teclado conectado directamente funciona a la perfección.
Entonces, ¿qué me estoy perdiendo, qué debo hacer para que mi teclado externo funcione correctamente a través de este conmutador KVM?
fuente
Respuestas:
Lo creas o no, he resuelto este. La solución no es específica ni para el teclado Aten KVM ni para el teclado Thinkpad Compact y podría ayudar en el genérico "mi teclado no funciona con un interruptor KVM correctamente".
Entonces, la idea es esta: el controlador del núcleo está intentando inicializar el dispositivo específico (por ejemplo, un teclado). Sin embargo, un conmutador KVM generalmente proporciona accesos directos convenientes para el cambio y otras funciones. En el caso de Aten, hay un atajo para hacer doble clic en la rueda de desplazamiento. El conmutador en sí mismo necesita filtrar comandos USB para que esto funcione, lo que obviamente interfiere con la capacidad del núcleo para establecer ciertos bits de configuración en el dispositivo. En mi caso, no se pudo configurar la funcionalidad de desplazamiento.
La solución es simple: deshabilite el modo conflictivo. Para Aten, se llama "modo de emulación del mouse". Habiendo deshabilitado eso, todo comenzó a funcionar correctamente.
fuente