LIRC (ir-keytable + lircd) на armbian
LIRC стабильная и проверенная библиотека с открытым кодом, которая позволяет отправлять и получать команды по инфракрасному порту, (англ. Linux Infrared Remote Control, «управление Linux при помощи инфракрасного пульта дистанционного управления»)

При использовании irrecord он будет просить вас несколько раз нажимать кнопки различным образом, использование ir-keytable лишает этой радости, но всё равно надо привязать названия к кнопкам. Не обязательно ко всем, можно только к тем, которые планируете использовать.
тестировал на Armbian_5.75_Orangepipc_Ubuntu_bionic_next_4.19.20
uname -a
Linux orangepipc 4.19.20-sunxi #5.75 SMP Sat Feb 9 19:02:47 CET 2019 armv7l armv7l armv7l GNU/Linux
ставим ir-keytable
apt install ir-keytable -y
(просто скопируйте код, и вставьте в терминал )
mkdir -p /etc/rc_keymaps
touch /etc/rc_keymaps/my_keymaps
ir-keytable -c -p other,lirc,rc-5,rc-5-sz,jvc,sony,nec,sanyo,mce_kbd,rc-6,sharp,xmp -w /etc/rc_keymaps/my_keymaps
ir-keytable -t
нажимаем на кнопки пульта, пример выдачи моего пульта
при нажатии кнопки «1» , «2», «-VOL», «+VOL» и т. д.
root@orangepipc:~# ir-keytable -t
Testing events. Please, press CTRL-C to abort.
1300.707932: lirc protocol(nec): scancode = 0xc
1300.758474: lirc protocol(nec): scancode = 0xc repeat
1305.305770: lirc protocol(nec): scancode = 0x18
1308.840815: lirc protocol(nec): scancode = 0x18 repeat
1810.025185: lirc protocol(nec): scancode = 0x15
1810.075733: lirc protocol(nec): scancode = 0x15 repeat
1811.312910: lirc protocol(nec): scancode = 0x9
1811.363469: lirc protocol(nec): scancode = 0x9 repeat
scancode прописываем в файл: /etc/rc_keymaps/my_keymaps
0x0c KEY_1
0x18 KEY_2
0x15 KEY_VOLUMEDOWN
0x09 KEY_VOLUMEUP
для автозапуска ir-keytable в файл /etc/rc.local прописываем строку:
ir-keytable -c -p other,lirc,rc-5,rc-5-sz,jvc,sony,nec,sanyo,mce_kbd,rc-6,sharp,xmp -w /etc/rc_keymaps/my_keymaps
вывод команды: lsmod | grep ir_
root@orangepipc:~# lsmod | grep ir_
ir_xmp_decoder 16384 0
ir_mce_kbd_decoder 16384 0
ir_sharp_decoder 16384 0
ir_sanyo_decoder 16384 0
ir_sony_decoder 16384 0
ir_jvc_decoder 16384 0
ir_rc6_decoder 16384 0
ir_nec_decoder 16384 0
ir_rc5_decoder 16384 0
после настройки, лишние модули при запуске ir-keytable в опции -p можно не указывать.
Ставим lirc
apt install lirc -y
запуск irw
irw
при нажатии на кнопки пульта «1» , «2», «-VOL», «+VOL» и т. д. если scancode прописали в файл: /etc/rc_keymaps/my_keymaps наблюдаем выдачу irw.
пример выдачи моего пульта:
root@orangepipc:~# irw
0000000080010002 00 KEY_1 devinput-32
0000000080010003 00 KEY_2 devinput-32
0000000080010072 00 KEY_VOLUMEDOWN devinput-32
0000000080010073 00 KEY_VOLUMEUP devinput-32
Далее требуется настроить команды, которые будут получать приложения, использующие управление при помощи ПДУ, при нажатии кнопок пульта. Они указываются в файле: /etc/lirc/irexec.lircrc в котором описывается как и какому приложению реагировать на нажатие клавиши на пульте. Для примера как всегда поморгаем светодиодами на плате OrangePI PC и поуправляем громкостью с помощью amixer, запустив alsamixer наблюдаем визуально столбик «Line Out» при регулировке громкостью с помощью пульта.
begin
remote = devinput-32
button = KEY_1
repeat = 0
delay = 0
prog = irexec
config = echo heartbeat | sudo tee "/sys/class/leds/orangepi:red:status/trigger"
config = echo none | sudo tee "/sys/class/leds/orangepi:red:status/trigger"
end
begin
remote = devinput-32
button = KEY_2
repeat = 0
delay = 0
prog = irexec
config = echo heartbeat | sudo tee "/sys/class/leds/orangepi:green:pwr/trigger"
config = echo none | sudo tee "/sys/class/leds/orangepi:green:pwr/trigger"
end
begin
remote = devinput-32
prog = irexec
button = KEY_VOLUMEDOWN
config = amixer set "Line Out" 3%- &> /dev/null
repeat = 10
delay = 10
end
begin
remote = devinput-32
prog = irexec
button = KEY_VOLUMEUP
config = amixer set "Line Out" 3%+ &> /dev/null
repeat = 10
delay = 10
end