Eu recentemente reconstruí minha caixa MythTV usando o Mythbuntu 12.04, para aproveitar o hardware mais novo (Ivy Bridge).
Na minha versão anterior, usei lirc
para gerenciar o controle remoto, ou seja, o mapeamento de códigos-chave - > keypresses - > chaves de aplicativos; foi uma jornada e tanto para aprender tudo, e acabei ficando bastante confortável com a forma como tudo funcionava.
O que eu tenho:
- Eu tenho um controle remoto Chinavasion e dongle USB barato, que eu encontrei vários artigos sobre; estes em grande parte giram em torno trabalhando com o XBMC (interessante, mas eu não penso diretamente aplicável) e também em torno de obter um controle remoto Harmony (é um Chinavasion CVSB-983 - muito útil, pois eu precisava disso para ter meu Harmony 900 funcionando).
- Mythbuntu 12,04 64 bits
- MythTV 0,25 (provavelmente irrelevante)
Como é agora
Quando eu conecto isso, ele 'funciona'. O que é ótimo, exceto que o Ubuntu o usa nativamente e evita alguns do botão pressiona de passar para o Myth. Por exemplo, eu posso enviar um botão do controle remoto que equivale a Ctrl-Alt-A (que eu suponho que o Ubuntu não esteja interessado), e então capturar isso no Mythfrontend, mas o controle remoto é capturado pelo Ubuntu (que exibe um grande círculo com uma linha, já que não há media player carregado).
Eu entendo que isso é porque o lirc é mesclado no kernel agora, e eu gosto disso.
O que eu fiz até agora:
Encontrou o dispositivo usando lsusb
:
$ lsusb
Bus 001 Device 004: ID 073a:2230 Chaplet Systems, Inc. infrared dongle for remote
Encontrou o número do dispositivo do evento:
$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=073a Product=2230 Version=0110
N: Name="HID 073a:2230"
P: Phys=usb-0000:00:1a.0-1.2/input0
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input5
U: Uniq=
H: Handlers=sysrq kbd mouse1 event5 js0
B: PROP=0
B: EV=10001f
B: KEY=4c37fff072ff32d bf54445600000000 ffffffffff 30c100b17c007 ffa67bfad951dfff febeffdfffefffff fffffffffffffffe
B: REL=343
B: ABS=100030000
B: MSC=10
Testei a entrada com evtest
(pressionei Reproduzir ):
$ sudo evtest /dev/input/event5
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x73a product 0x2230 version 0x110
Input device name: "HID 073a:2230"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 1 (KEY_ESC)
Event code 2 (KEY_1)
Event code 3 (KEY_2)
Event code 4 (KEY_3)
Event code 5 (KEY_4)
Event code 6 (KEY_5)
Event code 7 (KEY_6)
<------------snipped lots of 'Event code' lines------------>
Testing ... (interrupt to exit)
Event: time 1336435683.230656, -------------- SYN_REPORT ------------
Event: time 1336435683.246648, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00cd
Event: time 1336435683.246652, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 0
Event: time 1336435683.246655, -------------- SYN_REPORT ------------
Testado showkey
, novamente para a tecla Reproduzir :
$ sudo showkey -s
kb mode was RAW
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]
press any key (program terminates 10s after last keypress)...
0xe0 0x22 0xe0 0xa2
O que eu quero:
- Eu gostaria de uma maneira de digitalizar os botões de entrada pressionados, se o método acima não estiver correto.
- Eu gostaria de remapear cada pressionamento de botão para algo que o Ubuntu / Unity irá ignorar, ou melhor ainda, passar a tecla diretamente para Myth (eu suspeito que isso depois só é possível com o lirc, mas posso estar errado).
- Eu realmente gostaria de fazer isso com os drivers in-kernel, ou seja, sem carregar explicitamente o lirc; se é assim que o mundo está indo, prefiro encontrar uma maneira de mapear o comportamento atual para o que eu quero, em vez de forçar o arranjo "antigo" de carregar o lirc fora do kernel. Aprender algo novo também vale a pena!
Meu palpite:
Eu estou supondo que isso vai exigir o uso de setkeycodes
, mas teve problemas para encontrar informações suficientes para configurar isso.
Qualquer ajuda muito apreciada!