Apa yang harus saya konfigurasi jika perangkat input dipasang melalui sakelar KVM?

8

Saya mendapat sakelar KVM dari atasan saya (Aten CS782DP) yang berfungsi dengan baik sejauh yang saya tahu. Namun, tampaknya menyebabkan masalah dengan perangkat input saya (Thinkpad USB Compact Keyboard dengan TrackPoint) di Ubuntu 16.04 dan 16.10. Saya tidak dapat mengklik tengah lagi dan saya juga tidak dapat menggulir secara vertikal (secara horizontal berfungsi dengan baik).

Secara khusus, ini adalah bagaimana xinputoutput terlihat ketika keyboard terpasang secara langsung:

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

Ini adalah bagaimana xinputoutput terlihat ketika dilampirkan melalui 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)]

Sejauh yang saya bisa lihat, ini juga terlihat bagus kecuali untuk duplikasi aneh dari perangkat pointer (ID 9 dan 16). Saya akan menganggap ini ada hubungannya dengan KVM yang sedikit seperti hub USB dan mengabaikan duplikasi ini untuk saat ini.

Saya sudah mencoba menjalankan xinput testuntuk kedua perangkat dan menemukan bahwa perangkat pertama menerima gerakan dan klik kiri dan kanan (tombol mouse 1 dan 3), sedangkan perangkat kedua hanya bergulir horizontal (tombol 6 dan 7). Baik menerima tombol tengah (tombol 2) atau pengguliran vertikal (tombol 4 dan 5).

Output xinput list-propsterlihat identik untuk kedua perangkat:

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

Konfigurasi TrackPoint default di Ubuntu ( /usr/share/X11/xorg.conf.d/11-evdev-trackpoint.conf) terlihat seperti ini:

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

Jadi menurut aturan ini, kedua perangkat harus mendapatkan konfigurasi yang identik, yaitu untuk menerima gerakan, ketiga tombol dan juga kedua jenis gulir. Namun ini bukan masalahnya, seperti digambarkan di atas. Keyboard yang terpasang langsung berfungsi dengan sempurna.

Jadi apa yang saya lewatkan, apa yang harus saya lakukan untuk membuat keyboard eksternal saya berfungsi dengan baik melalui sakelar KVM ini?

Nikolai Prokoschenko
sumber
Saya memiliki sakelar Aten KVM, tetapi model yang berbeda. Saya tidak punya masalah dengan itu. Mungkin ada masalah dengan perangkat keras atau firmware, yang sulit dipecahkan. Mungkin Anda dapat mencoba keyboard lain (nama merek dan model lain).
sudodus

Jawaban:

0

Percaya atau tidak, saya sudah memecahkan yang ini. Solusinya tidak spesifik untuk Aten KVM atau keyboard Thinkpad Compact dan mungkin membantu secara umum "keyboard saya tidak berfungsi dengan sakelar KVM dengan benar".

Jadi idenya adalah ini: driver kernel sedang mencoba untuk menginisialisasi perangkat tertentu (misalnya keyboard). Namun, sakelar KVM biasanya menyediakan pintasan praktis untuk beralih dan fitur lainnya. Dalam kasus Aten ada jalan pintas untuk klik dua kali pada roda gulir. Switch itu sendiri perlu memfilter komando USB untuk membuatnya bekerja yang jelas menunjukkan kemampuan kernel untuk mengatur bit konfigurasi tertentu pada perangkat. Dalam kasus saya, gagal mengkonfigurasi fungsi gulir.

Solutonnya sederhana: nonaktifkan mode yang bertentangan. Untuk Aten, ini disebut "mode emulasi mouse". Setelah dinonaktifkan itu, semuanya mulai berfungsi dengan baik.

Nikolai Prokoschenko
sumber