Что мне нужно настроить, если устройство ввода подключено через KVM-переключатель?

8

У меня есть KVM-переключатель от моего работодателя (Aten CS782DP), который, насколько я могу судить, работает нормально. Тем не менее, кажется, что это вызывает проблемы с моим устройством ввода (компактная клавиатура Thinkpad USB с TrackPoint) в Ubuntu 16.04 и 16.10. Я не могу больше щелкать средней кнопкой мыши, а также не могу прокручивать вертикально (по горизонтали работает нормально).

В частности, так xinputвыглядит вывод, когда клавиатура подключена напрямую:

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

Вот как xinputвыглядит вывод при подключении через 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)]

Насколько я вижу, это также выглядит хорошо, за исключением странного дублирования указательного устройства (идентификаторы 9 и 16). Я собираюсь предположить, что это связано с тем, что KVM немного похож на USB-концентратор, и пока проигнорируем это дублирование.

Я попытался запустить xinput testоба устройства и обнаружил, что первое устройство принимает движение и щелчки левой и правой кнопкой мыши (кнопки мыши 1 и 3), а второе - только горизонтальную прокрутку (кнопки 6 и 7). Ни одна из кнопок не принимает среднюю кнопку (кнопка 2) или вертикальную прокрутку (кнопки 4 и 5).

Вывод xinput list-propsвыглядит одинаково для обоих устройств:

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

Конфигурация TrackPoint по умолчанию в Ubuntu ( /usr/share/X11/xorg.conf.d/11-evdev-trackpoint.conf) выглядит следующим образом:

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

Таким образом, согласно этому правилу, оба устройства должны иметь одинаковую конфигурацию, которая должна принимать движение, все три кнопки, а также оба типа прокрутки. Однако это не тот случай, как показано выше. Непосредственно подключенная клавиатура работает безупречно.

Так что же мне не хватает, что мне нужно сделать, чтобы моя внешняя клавиатура работала правильно через этот KVM-переключатель?

Николай Прокощенко
источник
У меня Aten KVM-переключатель, но другая модель. У меня не было никаких проблем с этим. Это может быть проблема с аппаратным обеспечением или некоторой прошивкой, которую трудно решить. Может быть, вы можете попробовать другую клавиатуру (другую марку и модель).
Судод

Ответы:

0

Верьте или нет, я решил это. Решение не относится ни к клавиатуре Aten KVM, ни к клавиатуре Thinkpad Compact, и может помочь в общем: «Моя клавиатура не работает с переключателем KVM должным образом».

Идея такова: драйвер ядра пытается инициализировать конкретное устройство (например, клавиатуру). Тем не менее, KVM-переключатель обычно обеспечивает удобные сочетания клавиш для переключения и других функций. В случае Aten есть ярлык для двойного щелчка на колесе прокрутки. Коммутатор сам должен фильтровать USB-коммандос, чтобы это работало, что явно связано со способностью ядра устанавливать определенные биты конфигурации на устройстве. В моем случае не удалось настроить функцию прокрутки.

Soluton прост: отключить конфликтный режим. Для Aten это называется «режим эмуляции мыши». Отключив это, все стало работать правильно.

Николай Прокощенко
источник