Я недавно перестроил свой MythTV-бокс, используя Mythbuntu 12.04, чтобы воспользоваться преимуществами нового оборудования (Ivy Bridge).
В моей предыдущей сборке я использовал lirc
для управления пультом дистанционного управления, т.е. отображение кодов клавиш -> нажатия клавиш -> ключи приложения; это было настоящее путешествие, чтобы узнать все это, и в итоге я довольно комфортно понял, как все это работает.
Что у меня есть:
Как сейчас
Когда я подключаю его, он «просто работает». Что здорово, за исключением того, что Ubuntu использует его изначально и предотвращает некоторые нажатия кнопок от перехода в Myth.Например, я могу отправить кнопку с пульта дистанционного управления, которая соответствует Ctrl-Alt-A (что, как я полагаю, Ubuntu не интересует), а затем перехватить ее в Mythfrontend, но на пульте Кнопка Play перехватывается Ubuntu (которая отображает большой кружок с линией через него, поскольку медиаплеер не загружен).
Я понимаю, что это потому, что lirc теперь объединен с ядром, и мне это нравится.
Что я уже сделал:
Обнаружил устройство с помощью lsusb
:
$ lsusb
Bus 001 Device 004: ID 073a:2230 Chaplet Systems, Inc. infrared dongle for remote
Обнаружил номер устройства событий:
$ 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
Протестировал ввод с помощью evtest
( Я нажал Воспроизвести ):
$ 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 ------------
Протестировано showkey
, снова для клавиши Воспроизвести :
$ 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
Что я хочу:
Мое предположение:
Я предполагаю, что для этого потребуется использовать setkeycodes
, но у меня возникли проблемы с поиском достаточной информации для настройки этого.
Любая помощь очень ценится!
Я только что снизился на подобный путь обнаружения нового lirc в ядре для меня ах ха, момент был, когда я понял, что ir удаленной является теперь просто другая клавиатура.
Как альтернатива showkey/evtest можно работать sudo ir-keytable-t для обнаружения удаленных нажатий кнопки. Хотя я не думаю, что это предлагает слишком много новой информации.
Для корректировки отображения удаленного scancodes к ключам Вы должны создать свой собственный файл конфигурации, базирующийся от одного от/lib/udev/rc_keymaps/.
Используя evtest производит Вас, может использовать KEY_X и значение поля, чтобы помочь определить, какой rc_keymaps файл используется. Копия, что соответствие файлу и редактированию, чтобы повторно отобразить ключи, как Вы требуете. Можно загрузить измененную конфигурацию sudo ir-keytable-c-w newfile . Теперь можно протестировать новую конфигурацию с evtest.
, Если Вы не можете получить достаточно гибкости от изменения контурных карт, можно все еще использовать пространство пользователя lirc демон. Можно настроить lircd, чтобы вытянуть от в драйвере ядра и затем настроить lircd как нормальный.
Эти две ссылки, http://forum.xbmc.org/showthread.php?tid=104541 и http://ubuntuforums.org/showthread.php?t=1754719 , имеют большую информацию о том, как настроить и отладить любую установку.
Remote кнопка Play используется media-keys
плагин для гнома-демона настроек. Чтобы отключить его и разрешить MythTV, получающий событие, сделайте:
$ gsettings set org.gnome.settings-daemon.plugins.media-keys active false
Также Вы захотите отключить/удалить xfce4-volumed, чтобы препятствовать тому, чтобы он захватил XF86AudioLowerVolume
, XF86AudioRaiseVolume
и XF86AudioMute
.
можно хотеть повторно отобразить некоторые ключи менеджера окон также (например, в моем случае Ctrl+Alt+D используется для запуска прямой телетрансляции, в то время как использование xfwm4 это для show_desktop действия). Это может быть сделано в "Настройках> Менеджер окон", вкладка "Keyboard".
Дополнительно можно позволить управлению "Мышью" отправить события клавиатуры с помощью сценарий mythtv-mouse2kbd.py , который я описал в мое сообщение в блоге .