Архив рассылок сообщества снова открыт. Читать письма 2003-2009
Главная/Гайды/HTPC на Linux

Настройка ИК-пульта через LIRC

Это третья, заключительная статья цикла про HTPC на Linux. В первых двух мы собрали систему и настроили видео и звук. Медиацентр уже работает, но управлять им клавиатурой из гостиной неудобно. Пора научить систему понимать инфракрасный пульт. За это в Linux традиционно отвечает LIRC (Linux Infrared Remote Control).

Что делает LIRC

LIRC - это набор программ, который принимает сигналы от ИК-приёмника, распознаёт нажатые кнопки по заранее записанному описанию и превращает их в команды. Фоновый демон lircd слушает приёмник и отдаёт распознанные события приложениям вроде Kodi. Задача сводится к тому, чтобы система увидела приёмник, а мы описали кнопки нашего пульта.

Установка

Ставим сам пакет и утилиты:

sudo apt update
sudo apt install lirc

В комплект входят демон lircd, программа записи irrecord и отладчик irw, которые нам понадобятся дальше.

Определение приёмника

ИК-приёмник может быть USB-устройством, встроенным в тюнер или подключённым к материнской плате. После подключения проверьте, что ядро его увидело. Многие современные приёмники работают через подсистему ядра и создают устройство вида /dev/lirc0. Проверить можно так:

ls -l /dev/lirc*

Если файл /dev/lirc0 присутствует - приёмник опознан ядром и с ним можно работать. Полезно также заглянуть в журнал ядра, чтобы увидеть, какой драйвер загрузился:

dmesg | grep -i lirc

Запись кнопок через irrecord

Теперь главное - создать описание пульта. Файл описания сопоставляет физические кнопки с именами команд. Для многих распространённых пультов готовые файлы уже существуют в базе LIRC, но записать свой пульт надёжнее и полезнее для понимания. Для этого есть утилита irrecord.

Остановите демон, чтобы он не мешал захвату сигнала, и запустите запись в новый файл:

sudo systemctl stop lircd
sudo irrecord -d /dev/lirc0 my_remote.conf

Программа проведёт вас через процесс. Сначала она попросит несколько раз нажимать произвольные кнопки, чтобы понять параметры протокола пульта. Затем предложит по очереди назначать кнопкам стандартные имена. Имена лучше брать из общепринятого списка - например KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_OK, KEY_PLAY, KEY_STOP, KEY_MENU, KEY_BACK. Единые имена потом проще привязать в Kodi.

Записывайте кнопки в спокойной обстановке и держите пульт неподвижно. Дрожание руки и посторонний ИК-свет (например от солнца в окно) мешают LIRC чисто прочитать сигнал.

Файл lircd.conf

После записи вы получите файл с секцией begin remote, где перечислены параметры протокола и таблица codes - пары имя кнопки и её код. Выглядит это примерно так:

begin remote
  name  my_remote
  bits  16
  begin codes
    KEY_UP    0x00FF
    KEY_DOWN  0x807F
    KEY_OK    0x40BF
  end codes
end remote

Готовый файл нужно подключить к демону. Обычно его кладут в каталог конфигурации LIRC (например /etc/lirc/lircd.conf.d/) и перезапускают демон:

sudo cp my_remote.conf /etc/lirc/lircd.conf.d/
sudo systemctl start lircd

Отладка через irw

Прежде чем настраивать плеер, убедитесь, что LIRC вообще распознаёт кнопки. Для этого есть простая и очень полезная утилита irw. Запустите её и понажимайте кнопки на пульте:

irw

При каждом нажатии в терминале должна появляться строка с кодом, счётчиком повторов, именем кнопки и именем пульта, например:

0000000000ff40bf 00 KEY_OK my_remote

Если строки появляются и имена кнопок совпадают с тем, что вы записывали - LIRC работает правильно. Если ничего не выводится, проверьте, что демон запущен, что файл описания подключён и что вы целитесь пультом в приёмник. Это ключевой этап отладки: пока irw не показывает кнопки, настраивать Kodi бессмысленно.

Привязка кнопок в Kodi

Kodi понимает события LIRC через свой механизм ввода. Чтобы связать имена кнопок LIRC с действиями Kodi, используется файл раскладки, где каждой команде LIRC сопоставляется действие интерфейса. Упрощённо это выглядит так: приходит событие KEY_UP - Kodi выполняет перемещение вверх по меню, приходит KEY_OK - выбор пункта, KEY_BACK - возврат. Именно поэтому на этапе записи важно давать кнопкам стандартные, осмысленные имена: тогда сопоставление получается прозрачным и предсказуемым.

После правки раскладки перезапустите Kodi и проверьте навигацию: стрелки должны двигать выделение, кнопка выбора - открывать пункты, а кнопки воспроизведения - управлять проигрыванием.

Пульт в MythTV

MythTV, о котором мы говорили во вводной статье, тоже дружит с LIRC. Принцип тот же: демон lircd распознаёт кнопки, а MythTV сопоставляет их с действиями через свой конфигурационный файл раскладки (традиционно ~/.lirc/mythtv). Если вы используете связку MythTV backend плюс Kodi как frontend, то настраивать пульт достаточно один раз - на стороне того интерфейса, которым вы реально пользуетесь.

Итог цикла

На этом сборка домашнего медиацентра завершена. Мы прошли путь от голого компьютера до системы, которая выводит чёткую картинку на телевизор, плавно проигрывает тяжёлое видео силами видеокарты и слушается обычного ИК-пульта. Дальше можно наполнять медиатеку, ставить дополнения Kodi и, при желании, подключать ТВ-тюнер через MythTV. Если что-то не заработало - возвращайтесь к первой статье и проверяйте шаги по порядку: медиацентр собирается слоями, и каждый слой опирается на предыдущий.