Isso acabou sendo mais fácil do que eu pensava. Basicamente, eu apenas tive que ler a página do manual (gasp) e descobrir que não há problema em usar uma versão abreviada (e curinga) dos modalias do dispositivo USB para uma sequência de correspondência.
Etapas:
-
encontre o fornecedor do dispositivo com o lsusb. O meu foi 0BC7.
-
Encontre todos os arquivos de modalias do dispositivo com
find /sys -name *modalias | xargs grep -i 0BC7
-
Haverá vários. Use o que tem uma única string. O meu foi o arquivo em
/sys/devices/pci0000:00/0000:00:02.0/usb2/2-1/2-1:1.0/modalias
Minha string de modalias é assim. Queremos tudo antes do 'e', porque queremos que ele se aplique a todas as versões.
input:b0003v0BC7p0002e0100-e0,1,2,k110,111,113,114,r0,1,amlsfw
-
Eu uso o evtest para encontrar um código de verificação para um botão no meu controle remoto. É o "valor" depois de um MSC_SCAN. No meu caso, estou usando a chave com o valor 0b. Vou mapeá-lo para um código que seja fácil de observar: mudo.
-
Usando referências pesadas a esta página wiki do Arch , eu crio um arquivo hwdb em
/etc/udev/hwdb.d/10-x10.hwdb
. Contém:evdev:input:b0003v0BC7p0002* KEYBOARD_KEY_0b=mute
-
Os seguintes comandos atualizam e usam meu novo arquivo hwdb.
udevadm hwdb --update udevadm trigger udevadm info /dev/input/event4 | grep KEYB