Talvez isso possa lançar alguma luz sobre o problema (da página de manobras do showkey):
No modo raw dos kernels 2.6, ou no modo scancode, não é muito bruto. Os códigos de escaneamento são primeiramente traduzidos para os códigos-chave e, quando os scancodes são desejados, os códigos-chave são convertidos de volta. Várias transformações estão envolvidas, e não há nenhuma garantia de que o resultado final corresponda ao que o hardware do teclado enviou. Então, se você quiser conhecer os códigos de varredura enviados por várias chaves, é melhor inicializar um kernel 2.4. Desde o 2.6.9 também existe a opção de inicialização atkbd.softraw = 0 que diz ao kernel 2.6 para retornar os códigos de scan atuais.
Os códigos de varredura brutos estão disponíveis somente nos teclados AT e PS / 2, e mesmo assim eles são desabilitados, a menos que o parâmetro do kernel atkbd.softraw = 0 seja usado. Quando os códigos de varredura brutos não estão disponíveis, o kernel usa uma tabela interna fixa para produzir códigos de varredura a partir de códigos de teclas. Assim, setkeycodes (8) podem afetar a saída de showkey no modo de dump de código de varredura.
Eu estou prestes a ver se showkey vai despejar qualquer coisa com as teclas de macro depois que essa opção de inicialização estiver definida.
EDIT: Após a reinicialização, não houve sucesso, mas eu estava olhando para a captura de entrada bruta dos próprios dispositivos USB. Eu observei o seguinte, curiosamente (eu tenho um Razer Diamondback assim como o 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]#
No entanto, usando o dd para capturar entrada bruta funciona nos dois mouses diamondback, no dispositivo event-kbd, mas não nos dispositivos de mouse BlackWidow.
Eu estou supondo que talvez eles não gerem nenhuma saída até que, de alguma forma, sejam ativados pelos drivers que estão instalados. Eu não sei muito sobre o Linux USB, então eu nem sei se isso faz sentido. Talvez eles precisem estar ligados primeiro?
Bem, todos os três dispositivos de viúvas negras são anotados em /proc/bus/input/devices
, mas eles não parecem ser enumerados em lsusb
ou /proc/bus/usb/devices
. Não sei como acessar esses dispositivos para tentar vinculá-los ou fazer interface com eles de qualquer maneira.
event4
parece corresponder ao teclado real, event6 com as teclas macro, mas ainda não consigo capturar nenhuma entrada deles. Espero que tudo tenha ajudado.
[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]#