Como depurar a entrada de um dispositivo de entrada (/ dev / input / event *)

18

Eu tenho um receptor de infravermelho que está usando o imon-driver e gostaria de fazê-lo funcionar com o kernel. Agora, metade das teclas do controle remoto ( imagem ) funciona, mas um todo importante é como o numérico chaves não!

O mais estranho é que o módulo keymap do kernel (rc-imon-pad) parece estar correto, mas parece que ele não é realmente usado, já que exatamente as mesmas teclas estão funcionando sem esse módulo.

Parece que o módulo rc-imon-pad sempre é carregado quando eu carrego o imon, e então eu suspeito que os códigos de teclas estão em cache, então não faz diferença se eu descarregar o rc-imon-pad

Agora estou perdido, se eu tiver cat /dev/input/event5 ou ir-keytable -t há dados não importa qual tecla eu pressionar, então o driver registra os botões, mas parece que eles estão traduzidos para os códigos incorretos.

Meus kernels são um kernel de estoque do Ubuntu do Natty (Linux xbmc 2.6.37-11-genérico # 25-Ubuntu SMP Ter Dez 21 23:42:56 UTC 2010 x86_64 GNU / Linux)

    
por LassePoulsen 29.12.2010 / 11:34

2 respostas

3

Eu tenho o mesmo controle remoto e tenho que enviar códigos de teclas corretos para o meu kernel 2.6.38-gentoo-r3. Eu não compilei códigos de tecla como um módulo, porque eles provavelmente não tiveram tempo para tornar possível selecionar keymaps individuais ainda. É tudo ou nada e eu não gosto de um gazilhão de módulos inúteis me entupindo. Em vez disso, estou deixando o v4l-utils lidar com isso com o udev.

Algumas coisas que aprendi:

  • Verifique a saída do ir-keytable -r, ele deve listar todos os códigos de teclas aplicáveis ao seu controle remoto.
  • Carregue a tabela de teclado manualmente: ir-keytable -c -webhw / keymaps / imon_pad, após o qual o ir-keytable -r deve fornecer a tabela de volta
  • Você pode realmente ter um receptor defeituoso, você não menciona nada sobre a história. Lembro-me de ver pelo menos uma mensagem na lista-lir onde o cara disse mandando o caso de volta e obtendo um novo resolvido seus problemas.

Deixe-nos saber como foi.

    
por 30.04.2011 / 18:49
16

Você pode encontrar xinput list e xinput test <device> úteis.

Por exemplo,

$ xinput list
⎡ Virtual core pointer                     id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer           id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad           id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                    id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard          id=5    [slave  keyboard (3)]
    ↳ Power Button                         id=6    [slave  keyboard (3)]
    ↳ Video Bus                            id=7    [slave  keyboard (3)]
    ↳ Sleep Button                         id=8    [slave  keyboard (3)]
    ↳ Asus Laptop extra buttons            id=9    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard         id=10   [slave  keyboard (3)]

e eu posso monitorar meu teclado ( xinput test 10 ) ou touchpad ( xinput test 11 , ou mesmo xinput test "SynPS/2 Synaptics TouchPad" ) para todos os tipos de eventos de entrada, e eles são bastante impressos no console e os parâmetros são extraídos e impressos também.

Isso não resolverá seu problema, mas pelo menos ajudará um pouco decifrando a desordem que, por exemplo, cat /dev/input/event1 produz.

    
por 21.01.2011 / 09:27