Que dois-je configurer si un périphérique d'entrée est connecté via un commutateur KVM?

8

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 xinputressemble 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 xinputressemble 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 testpour 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-propssemble 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?

Nikolai Prokoschenko
la source
J'ai un commutateur KVM Aten, mais un modèle différent. Je n'ai eu aucun problème avec ça. Il peut s'agir d'un problème avec le matériel ou certains micrologiciels, difficile à résoudre. Vous pouvez peut-être essayer un autre clavier (autre marque et modèle).
sudodus

Réponses:

0

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.

Nikolai Prokoschenko
la source