Как заставить систему Linux с устаревшей поддержкой мыши принять мой KVM-переключатель в абсолютном режиме мыши?

Как заставить систему Linux с устаревшей поддержкой мыши принять мой KVM-переключатель в абсолютном режиме мыши?

У одного из моих клиентов есть система Linux со следующими характеристиками:
Suse Linux 15

Я подключил устройство KVM-over-IP от Raritan (DKX4-101), которое представляет USB-устройство с клавиатурой + мышью в абсолютном режиме мыши.
Важно, чтобыабсолютный режим мышииспользуется.
Я могу управлять системой через KVM, но мышь ведет себя так, как будто она находится вотносительный режим мыши. Я на 100% уверен, что KVM отправляет абсолютные координаты мыши. Я нашелописаниечто в Linux есть устаревший драйвер мыши (mousedev), который заставляет устаревшие приложения использовать интерфейс в стиле ps2 через /dev/input/mice и который также может переводить мыши, используя абсолютные координаты мыши, в относительные координаты. Поэтому я предполагаю, что абсолютная мышь KVM не используется приложением напрямую, но она "передается/транслируется" через устаревший интерфейс mousedev, который основан на ps2 и не поддерживает абсолютный режим мыши.

Сейчас я пытаюсь добиться того, чтобы в этой системе я мог использовать локальную мышь с mousedev, а KVM использовал "обычный" драйвер, который поддерживает абсолютный режим мыши. Я хочу сохранить подход mousedev, поскольку мой клиент говорит мне, что я не должен ничего менять (если это возможно) в системе. Если я что-то меняю, это должно просто ввести что-то для KVM и не должно менять НИЧЕГО, например, относительно используемых драйверов для существующих устройств.

Так что, я думаю, мои вопросы таковы:

  1. Возможно ли это вообще?
  2. Можно ли добиться этого, изменив xorg.conf?

Заранее спасибо за помощь. Ниже я прикрепляю все соответствующие файлы конфигурации/логи, которые мне удалось найти.

Дж.

Вот правила мыши udev:

# serial ps/2 mouse
KERNELS=="input*", SUBSYSTEMS=="input", ATTRS(name)=="PS/2 Logitech Mouse", ATTRS(phys)=="isa0060/serio1/input0", SYMLINK+="input/pmouse0", MODE="0660", RUN="/usr/bin/killall -10 X"

# usb mouse
KERNELS=="mouse*", SUBSYSTEM=="input", ATTRS(name)=="USB*Mouse*", MODE="0660", SYMLINK="input/pmouse0", RUN="/usr/bin/killall -10 X"

А вот более общие правила evdev udev

Section "InputClass"
       Identifier "evdev pointer catchall"
       MatchIsPointer "on"
       MatchDevicePath "/dev/input/event*"
       Driver "evdev"
EndSection

Section "InputClass"
       Identifier "evdev tablet catchall"
       MatchIsTablet "on"
       MatchDevicePath "/dev/input/event*"
       Driver "evdev"
EndSection

А вот более общие правила libinput udev

Section "InputClass"
       Identifier "libinput pointer catchall"
       MatchIsPointer "on"
       MatchDevicePath "/dev/input/event*"
       Driver "libinput"
EndSection

Section "InputClass"
       Identifier "libinput tablet catchall"
       MatchIsTablet "on"
       MatchDevicePath "/dev/input/event*"
       Driver "libinput"
EndSection

В xorg.conf я нашел это

...
Section "ServerLayout"
        Identifier     "NVidia"
        Screen         "Screen0"
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "ServerFlags"
 Option        "AutoAddDevices" "false"
 Option        "AutoEnableDevices" "true"
 Option        "AllowEmptyInput" "false"
EndSection

...

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "explorerps/2"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5"
        Option      "Emulate3Buttons" "no"
EndSection

Когда я запускаю xinput list, мышь с устройства KVM не отображается.

Virtual core pointer
   Virtual core XTEST pointer
   Mouse0
Virtual core keygoard
   Virtual core XTEST keyboard
   Keyboard0

Когда я запускаю lsusb, я вижу два локальных устройства (клавиатура+мышь) + KVM:

lsusb
...
BUS 001 Device 012: ID 03f0:034a HP, Inc Elite Keyboard
BUS 001 Device 010: ID 03f0:134a HP, Inc Optical Mouse
Bus 002 Device 014: ID 14dd:1010 Raritan Computer, Inc. KX4-101
...

В boot.msg я вижу как регистрируется устройство

input: Raritan KX4-101 as /devices/pci0000:00/0000:00:14,0/usb1/1-6/6:1.0/0003:1400:1010.0001/input/input1
hid-generic: 0003:1400:1010.0001: input.hidraw0: USB HID v1.01 Keyboard [Raritan KX4-101] on usb-0000:00:14.0-6/input0
input: Raritan KX4-101 as /devices/pci0000:00/0000:00:14,0/usb1/1-6/6:1.0/0003:1400:1010.0002/input/input2
hid-generic: 0003:1400:1010.0002: input.hidraw1: USB HID v1.01 Mouse [Raritan KX4-101] on usb-0000:00:14.0-6/input1

В xorg.log я нашел следующее:

(II) config/udev: Adding input device Raritan KX4-101 (/dev/input/mouse0)
(II) AutoAddDevices is off - not adding device.
(II) config/udev: Adding input device Raritan KX4-101 (/dev/input/event1)
(II) AutoAddDevices is off - not adding device.
...
(II) LoadModule: "mouse"
(II) Loading /usr/lib64/xorg/modules/input/mouse_drv.so
(II) Module mouse: vendor="X.Org Foundation"
   compiled for 1.20.3, module version = 1.9.2
   Module class: X.Org XInput Driver
   ABI class: X.Org XInput driver, version 24.1
...
(II)Using input driver 'mouse' for 'Mouse1'
(**) Option "CorePointer"
(**) Mouse1: always reports core events
(**) Option "Protocol" "PS/2"
(**) Option "Device" "/dev/input/

В /dev/input я нахожу много событий и в конце

... input 13 ... mice
... input 13 ... mouse0
... input 13 ... mouse1
... input 13 ... mouse2
... input 13 ... mouse3
... input 13 ... mouse4
... root     ... pmouse0 -> mouse3

Связанный контент