아마도 이것은 쇼키 맨 페이지에서 문제에 대해 약간의 조명을 줄 수 있습니다.
2.6 커널에서는 원시 모드 또는 스캔 코드 모드가 전혀 원시적이지 않습니다. 스캔 코드는 먼저 키 코드로 변환되고 스캔 코드가 필요한 경우 키 코드가 다시 변환됩니다. 다양한 변형이 수반되며, 최종 결과가 키보드 하드웨어가 전송 한 것과 일치한다는 보장은 없습니다. 따라서 다양한 키로 전송 된 스캔 코드를 알고 싶다면 2.4 커널로 부팅하는 것이 좋습니다. 2.6.9부터는 2.6 커널이 실제 스캔 코드를 반환하도록하는 부팅 옵션 atkbd.softraw = 0도 있습니다.
원시 스캔 코드는 AT 및 PS / 2 키보드에서만 사용할 수 있으며 atkbd.softraw = 0 커널 매개 변수를 사용하지 않으면 비활성화됩니다. 원시 스캔 코드를 사용할 수없는 경우 커널은 고정 내장 테이블을 사용하여 키 코드에서 스캔 코드를 생성합니다. 따라서 setkeycodes (8)는 스캔 코드 덤프 모드에서 showkey의 출력에 영향을 줄 수 있습니다.
이 부팅 옵션이 설정된 후 showkey가 매크로 키로 무엇이든 덤프하는지 확인하려고합니다.
편집 : 재부팅 후 성공하지 못했지만 USB 장치 자체에서 원시 입력을 캡처하려고했습니다. 나는 흥미롭게도 다음과 같이 지적했다. (Razer Diamondback과 BlackWidow가있다) :
[root@kestrel by-id]# pwd
/dev/input/by-id
[root@kestrel by-id]# ls
usb-Razer_Razer_BlackWidow_Ultimate-event-kbd usb-Razer_Razer_Diamondback_Optical_Mouse-event-mouse
usb-Razer_Razer_BlackWidow_Ultimate-event-mouse usb-Razer_Razer_Diamondback_Optical_Mouse-mouse
usb-Razer_Razer_BlackWidow_Ultimate-mouse
[root@kestrel by-id]#
그러나 dd를 사용하여 원시 입력을 캡처하면 두 다이아몬드 백 마우스, 이벤트 KBD 장치에서는 작동하지만 BlackWidow 마우스 장치에서는 작동하지 않습니다.
나는 그들이 설치된 드라이버에 의해 어떻게 든 활성화 될 때까지 출력을 생성하지 않을 것이라고 생각합니다. 그러나 Linux USB에 대해서는 많이 알지 못하므로 이것이 의미가 있는지조차 알지 못합니다. 아마도 그들은 먼저 묶어야합니까?
글쎄, 세 개의 검은 미망인 장치는 모두에 언급되어 /proc/bus/input/devices
있지만 lsusb
또는에 열거되어 있지는 않습니다 /proc/bus/usb/devices
. 이 장치에 액세스하여 장치를 바인딩하거나 어떤 식 으로든 인터페이스를 시도하는 방법을 잘 모르겠습니다.
event4
매크로 키가있는 실제 키보드, event6에 해당하는 것으로 보이지만 여전히 입력을 캡처 할 수 없습니다. 모두 도움이 되었기를 바랍니다.
[root@kestrel input]# ls
devices handlers
[root@kestrel input]# cat handlers
N: Number=0 Name=kbd
N: Number=1 Name=mousedev Minor=32
N: Number=2 Name=evdev Minor=64
N: Number=3 Name=rfkill
[root@kestrel input]# pwd
/proc/bus/input
[root@kestrel input]# cat devices
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
U: Uniq=
H: Handlers=kbd event0
B: EV=3
B: KEY=10000000000000 0
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
U: Uniq=
H: Handlers=kbd event1
B: EV=3
B: KEY=10000000000000 0
I: Bus=0017 Vendor=0001 Product=0001 Version=0100
N: Name="Macintosh mouse button emulation"
P: Phys=
S: Sysfs=/devices/virtual/input/input2
U: Uniq=
H: Handlers=mouse0 event2
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3
I: Bus=0003 Vendor=1532 Product=010d Version=0111
N: Name="Razer Razer BlackWidow Ultimate"
P: Phys=usb-0000:00:12.1-3/input0
S: Sysfs=/devices/pci0000:00/0000:00:12.1/usb4/4-3/4-3:1.0/input/input4
U: Uniq=
H: Handlers=kbd event4
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=1532 Product=010d Version=0111
N: Name="Razer Razer BlackWidow Ultimate"
P: Phys=usb-0000:00:12.1-3/input1
S: Sysfs=/devices/pci0000:00/0000:00:12.1/usb4/4-3/4-3:1.1/input/input5
U: Uniq=
H: Handlers=kbd event5
B: EV=1f
B: KEY=837fff002c3027 bf00444400000000 1 c040a27c000 267bfad941dfed 9e000000000000 0
B: REL=40
B: ABS=100000000
B: MSC=10
I: Bus=0003 Vendor=1532 Product=010d Version=0111
N: Name="Razer Razer BlackWidow Ultimate"
P: Phys=usb-0000:00:12.1-3/input2
S: Sysfs=/devices/pci0000:00/0000:00:12.1/usb4/4-3/4-3:1.2/input/input6
U: Uniq=
H: Handlers=mouse2 event6
B: EV=17
B: KEY=70000 0 0 0 0
B: REL=103
B: MSC=10
I: Bus=0003 Vendor=1532 Product=0002 Version=0110
N: Name="Razer Razer Diamondback Optical Mouse"
P: Phys=usb-0000:00:12.1-2/input0
S: Sysfs=/devices/pci0000:00/0000:00:12.1/usb4/4-2/4-2:1.0/input/input9
U: Uniq=
H: Handlers=mouse1 event3
B: EV=17
B: KEY=7f0000 0 0 0 0
B: REL=103
B: MSC=10
[root@kestrel input]#