J'ai un commutateur KVM de mon employeur (Aten CS782DP) qui fonctionne très bien pour autant que je sache. Cependant, cela semble causer un problème avec mon périphérique d'entrée (Thinkpad USB Compact Keyboard avec TrackPoint) sur Ubuntu 16.04 et 16.10. Je ne suis plus en mesure de cliquer avec le bouton du milieu et je ne peux pas non plus faire défiler verticalement (horizontalement, cela fonctionne bien).
En particulier, voici à quoi xinput
ressemble la sortie lorsque le clavier est directement connecté:
⎡ 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)]
Voici à quoi xinput
ressemble la sortie lorsqu'elle est connectée via le 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)]
Pour autant que je puisse voir, cela semble également bien, sauf pour la duplication étrange du périphérique de pointeur (ID 9 et 16). Je vais supposer que cela a à voir avec le KVM étant un peu comme un concentrateur USB et ignorer cette duplication pour l'instant.
J'ai essayé de courir xinput test
pour les deux appareils et j'ai découvert que le premier appareil accepte le mouvement et les clics gauche et droit (bouton de souris 1 et 3), tandis que le deuxième appareil ne fait que défiler horizontalement (bouton 6 et 7). Ni accepte le bouton central (bouton 2) ou le défilement vertical (boutons 4 et 5).
La sortie de xinput list-props
semble identique pour les deux appareils:
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 configuration par défaut de TrackPoint dans Ubuntu ( /usr/share/X11/xorg.conf.d/11-evdev-trackpoint.conf
) ressemble à ceci:
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
Donc, selon cette règle, les deux appareils doivent avoir la même configuration, c'est-à-dire accepter le mouvement, les trois boutons et aussi les deux types de défilement. Cependant, ce n'est pas le cas, comme illustré ci-dessus. Un clavier directement connecté fonctionne parfaitement.
Alors qu'est-ce qui me manque, que dois-je faire pour que mon clavier externe fonctionne correctement via ce commutateur KVM?
la source
Réponses:
Croyez-le ou non, j'ai résolu celui-ci. La solution n'est pas spécifique au clavier Aten KVM ou au clavier Thinkpad Compact et pourrait aider dans le générique "mon clavier ne fonctionne pas correctement avec un commutateur KVM".
L'idée est donc la suivante: le pilote du noyau tente d'initialiser le périphérique spécifique (par exemple un clavier). Cependant, un commutateur KVM fournit généralement des raccourcis pratiques pour la commutation et d'autres fonctionnalités. Dans le cas d'Aten, il existe un raccourci pour double-cliquer sur la molette de défilement. Le commutateur lui-même doit filtrer les commandos USB pour que cela fonctionne, ce qui interfère évidemment avec la capacité du noyau à définir certains bits de configuration sur le périphérique. Dans mon cas, il n'a pas réussi à configurer la fonctionnalité de défilement.
La solution est simple: désactivez le mode conflictuel. Pour l'Aten, cela s'appelle le "mode d'émulation de souris". Après avoir désactivé cela, tout a commencé à fonctionner correctement.
la source