
내 고객 중 한 명이 다음 세부 정보를 갖춘 Linux 시스템을 보유하고 있습니다.
Suse Linux 15
절대 마우스 모드에서 키보드 + 마우스가 있는 USB 장치를 소개하는 Raritan(DKX4-101)의 KVM-over-IP 장치를 연결했습니다.
중요한 것은절대 마우스 모드사용.
KVM을 통해 시스템을 조종할 수 있지만 마우스가 KVM에 있는 것처럼 동작합니다.상대 마우스 모드. 나는 KVM이 절대 마우스 좌표를 전송하고 있다고 100% 확신합니다. 나는 찾았다설명Linux에는 레거시 응용 프로그램이 /dev/input/mice를 통해 ps2 스타일 인터페이스를 사용하도록 만들고 절대 마우스 좌표를 사용하여 마우스를 상대 좌표로 변환할 수 있는 레거시 마우스 드라이버(mousedev)가 있습니다. 따라서 KVM의 절대 마우스는 응용 프로그램에서 직접 사용되지 않지만 ps2 기반이고 절대 마우스 모드를 지원하지 않는 레거시 mousedev 인터페이스를 통해 "파이프/변환"되는 것 같습니다.
지금 달성하려는 것은 이 시스템에서 mousedev와 함께 로컬 마우스를 사용할 수 있고 KVM은 절대 마우스 모드를 지원하는 "일반" 드라이버를 사용한다는 것입니다. 고객이 (가능한 경우) 시스템에서 아무것도 변경해서는 안 된다고 말함에 따라 나는 mousedev 접근 방식을 유지하고 싶습니다. 뭔가를 변경하면 KVM에 대해 뭔가를 도입해야 하며 예를 들어 기존 장치에 사용된 드라이버와 관련된 어떤 것도 변경해서는 안 됩니다.
그래서 내 질문은 다음과 같습니다.
- 이것이 가능합니까?
- 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