Cosa devo configurare se un dispositivo di input è collegato tramite uno switch KVM?


8

Ho un interruttore KVM dal mio datore di lavoro (Aten CS782DP) che funziona bene per quanto posso dire. Tuttavia, sembra causare un problema con il mio dispositivo di input (Thinkpad USB Compact Keyboard con TrackPoint) su Ubuntu 16.04 e 16.10. Non riesco più a fare clic con il pulsante centrale e non posso nemmeno scorrere verticalmente (funziona bene in orizzontale).

In particolare, ecco come xinputappare l'output quando la tastiera è collegata direttamente:

⎡ 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)]

Ecco come xinputappare l' output quando collegato tramite 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)]

Per quanto posso vedere, anche questo sembra perfetto, tranne per la strana duplicazione del dispositivo puntatore (ID 9 e 16). Suppongo che questo abbia a che fare con il fatto che KVM sia un po 'come l'hub USB e per ora ignoro questa duplicazione.

Ho provato a correre xinput testper entrambi i dispositivi e ho scoperto che il primo dispositivo accetta movimenti e clic sinistro e destro (pulsante 1 e 3 del mouse), mentre il secondo dispositivo scorre solo in orizzontale (pulsante 6 e 7). Non accetta il pulsante centrale (pulsante 2) o lo scorrimento verticale (pulsanti 4 e 5).

L'output di xinput list-propssembra identico per entrambi i dispositivi:

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 configurazione predefinita di TrackPoint in Ubuntu ( /usr/share/X11/xorg.conf.d/11-evdev-trackpoint.conf) è simile alla seguente:

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

Quindi, secondo questa regola, entrambi i dispositivi dovrebbero avere la stessa configurazione, che è accettare il movimento, tutti e tre i pulsanti e anche entrambi i tipi di scorrimento. Tuttavia, non è così, come illustrato sopra. Una tastiera collegata direttamente funziona perfettamente.

Quindi cosa mi manca, cosa devo fare per far funzionare correttamente la mia tastiera esterna tramite questo switch KVM?


Ho uno switch Aten KVM, ma un modello diverso. Non ho avuto problemi con questo. Potrebbe essere un problema con l'hardware o alcuni firmware, che è difficile da risolvere. Forse puoi provare un'altra tastiera (altro marchio e modello).
sudodus,

Risposte:


0

Che ci crediate o no, ho risolto questo. La soluzione non è specifica né per Aten KVM né per la tastiera Thinkpad Compact e potrebbe essere utile nel generico "la mia tastiera non funziona correttamente con uno switch KVM".

Quindi l'idea è questa: il driver del kernel sta cercando di inizializzare il dispositivo specifico (ad esempio una tastiera). Tuttavia, uno switch KVM di solito offre scorciatoie per la commutazione e altre funzionalità. Nel caso di Aten c'è una scorciatoia per fare doppio clic sulla rotella di scorrimento. Lo switch stesso ha bisogno di filtrare i comandi USB per far funzionare tutto ciò, ovviamente integra con la capacità del kernel di impostare determinati bit di configurazione sul dispositivo. Nel mio caso, non è stato possibile configurare la funzionalità di scorrimento.

Il soluton è semplice: disabilitare la modalità in conflitto. Per Aten, si chiama "modalità di emulazione del mouse". Dopo averlo disabilitato, tutto ha iniziato a funzionare correttamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.