Linux управление с пульта

Bog BOS: Использование пульта ДУ в Linux: Lirc

Пакет Lirc позволяет использовать пульт ДУ для управления операционной системой Linux и прикладными программами. В качестве пульта ДУ можно использовать как самодельные устройства (на сайте даются рекомендации по их изготовлению), так и промышленно изготавливаемые ИК передатчики. В частности, я использую пульт ДУ и ИК приёмник от ТВ тюнера AVerMedia TVPhone98 w/VCR и ТВ тюнера AverMedia AVerTV Studio 307. Пакет также позволяет использовать оборудование для передачи ИК сигналов.

В состав пакета входят:

  • драйверы различных устройств (модули ядра)
  • демон lircd, преобразующий ИК сигналы, полученные от драйвера, в стандартные сообщения, которые прикладные программы могут получить через сокет
  • демон lircmd, получающий сообщения от lircd и имитирующий мышку в X Windows
  • программы для управления приложениями, которые не имеют прямого интерфейса с lircd
    • irexec — запуск программ по нажатию кнопки ДУ
    • irxevent — посылка X Windows сообщения по нажатию кнопки ДУ
    • irpty — псевдотерминал, запускает программу и имитирует нажатие клавиш клавиатуры
  • вспомогательные программы для отладки и настройки
    • irrecord — утилита для создания lircd.conf
    • irw — читает сообщения с сокета lircd и выдает на stdout; в качестве параметра можно указать имя сокета (/dev/lircd); на каждое нажатие выдаётся строка текста (число-повторений у меня всегда равно нулю; имя-клавиши и имя-пульта-ДУ определяются в /etc/lircd.conf и не могут содержать пробелы):
    • ircat — отладочная программа для конфигурационного файла

      /.lircrc; в качестве параметра указывается имя программы (точнее имя описывающей её секции); по нажатию кнопки на пульте ДУ ircat выводит на stdout строку, привязанную к этой кнопке

    • mode2, smode2, xmode2 — осциллоскоп для инфракрасных сигналов (smode2 требует svgalib); не работает с TV картами
  • rc (переименован в irsend) — посылает команды на видеомагнитофон или ТВ (если позволяет оборудование), есть отдельный пакет xrc
  • интерфейсная библиотека: liblirc_client
  • правила для udev: /etc/udev/rules.d/lirc.rules
  • отдельный пакет lircrc_config — GUI для редактирования

    /.lircrc (gvim удобнее 😉

Сервер lircd преобразует ИК сигналы, полученные от различных драйверов, в стандартного вида сообщения, которые прикладные программы могут получить через сокет (/dev/lircd). В качестве параметра можно указать имя файла настройки (обычно /etc/lircd.conf). По сигналу HUP сервер перечитывает файл настройки и переоткрывает журнальный файл (если не используется syslog), после чего извещает клиентов. Ключи:

  • —nodaemon (отладочная печать, не уходить в фоновый режим)
  • —permission=mode (0666; права доступа к сокету при его создании, если файл уже существует в момент запуска, то права доступа не изменяются)
  • —driver=имя-драйвера (полный список имён можно получить запустив lircd с ключом «-H help»)
  • —device=имя-файла (/dev/lirc)
  • —listen=порт (8765; слушать сетевой порт)
  • —connect=хост[:порт] (использовать сервер lircd на другом хосте)
  • —output=имя-сокета (/dev/lircd)
  • —pidfile=имя-файла (/var/run/lircd.pid)
  • —logfile=имя-файла (syslog или /var/log/lircd в зависимости от параметров сборки)

Сервер lircmd получает сообщения от lircd и имитирует мышку типа MouseSystems, IntelliMouse или IMPS/2. Файл настройки — /etc/lircmd.conf. Ключ —nodaemon позволяет отлаживать работу сервера. Сообщения об ошибках выводятся на syslog.

  1. установить драйверы для AverMedia AVerTV Studio 307 (модуль saa7134 и пр.) и обеспечить их загрузку (в частности, saa7134 подгружает модуль ir_common:
  2. FC3: установить пакеты с репозитория at-stable: lirc-kmdl-2.6.10-1.770_FC3.i686 (не нужен?), lirc-lib-devel.i386, lirc-lib.i386, lirc.i386, lirc-devices.noarch, portaudio.i386 (зачем он понадобился?)
  3. FC6: установить пакеты lirc, lirc-devel и lirc-doc
  4. посмотреть какое клавиатурное устройство создают saa7134/ir_common (в данном случае /dev/input/event2):
  5. отредактировать /etc/sysconfig/lircd в FC3 или /etc/sysconfig/lirc в FC6 (не удивлюсь, если при следующей загрузке номер устройства будет другим — у меня в /dev/input/ длинный список):
  6. проверить /etc/init.d/lircd (/etc/init.d/lirc в FC6)
  7. установить /etc/lircd.conf (взять здесь от Nickolay V. Shmyrev)
  8. тестовый запуск:
  9. запустить irw и понажимать кнопки на пульте ДУ (пришлось остановить lirc и поменять настройки кнопок с цифрами с помощью «irrecord -H dev/input -d /dev/input/event4 /etc/lircd.conf»; взять результат в /etc/lircd.conf.conf)
  10. обеспечение запуска lircd:
  11. создать

/.lircrc и опробовать его с помощью irexec

  1. для моего пульта ДУ требуется предварительно установить, настроить и загрузить драйверы v4l и bttv
  2. скачать и развернуть архив
  3. при сборке пакета создаются модули ядра (непонятно зачем, если все непосредственное взаимодействие с аппаратурой производится драйверами btttv и i2c), поэтому ядро необходимо подготовить для сборки
    1. cd /usr/src/linux-2.4
    2. make distclean (может достаточно make mrproper?)
    3. make menuconfig (сразу выйти с сохранением)
    4. make dep
    5. make bzImage (warning: kernel is too big for standalone boot from floppy, но я и не собираюсь его устанавливать, но если ядро не собрать, то модуль потом не загружается)
    6. make modules (не компилируется drivers/addon/cipe, убрал ее и поменял drivers/addon/Makefile)
  4. ./setup.sh (создает configure.sh на всякий случай для последующего запуска, нужен пакет dialog — /usr/bin/dialog)
    1. Driver configuration -> TV card -> AverMedia TV card (TVCapture 98, TVPhone98; card 13/41)
    2. Software configuration -> Compile tools for X-Windows
    3. Save configuration & run configure
  5. make (нужен root, т.к. собирается модуль в /usr/src/linux)
  6. make install (устанавливаются модули ядра!)
    • /lib/modules/2.4.18-14/misc/lirc_dev.o
    • /lib/modules/2.4.18-14/misc/lirc_gpio.o
    • /dev/lirc (char 61, 0)
    • /dev/lircd (named pipe)
    • /dev/lircm (named pipe)
    • /usr/local/sbin: lircd, lircmd
    • /etc/lircd.conf (из remotes/avermedia/lircd.conf.avermedia98)
    • /etc/lircmd.conf (из remotes/avermedia/lircmd.conf.avermedia98)
    • /usr/local/lib: liblirc_client.a, liblirc_client.so.0.0.0, liblirc_client.so.0, liblirc_client.so, liblirc_client.la
    • /usr/local/bin: irw, irpty, irexec, ircat, mode2, rc, irxevent, xmode2, irrecord
    • /usr/local/include/lirc/lirc_client.h
    • /usr/local/man/man1: irexec.1, ircat.1, irpty.1, irrecord.1, irw.1, irxevent.1, mode2.1, smode2.1, xmode2.1, rc.1
    • /usr/local/man/man8: lircd.8, lircmd.8
  7. поменять права для /dev/lircd и /dev/lircmd, если хочется иметь доступ к lirc не только для root
  8. depmod -a # обновление БД зависимости модулей ядра

Для FC3 и AverMedia AVerTV Studio 307 дополнительных модулей (кроме saa7134 и ir_common) не нужно.

Добавить в /etc/modules.conf

  1. alias char-major-81 bttv # загрузка модуля для AverMedia TVPhone98
  2. alias char-major-89 i2c-dev # управление тюнером и ИК приемником через модуль bttv
  3. alias char-major-61 lirc_gpio # аппаратная часть lirc
  4. install lirc_dev insmod -f lirc_dev # т.к. собранное ядро я не стал устанавливать, то приходится бороться с разницей версий модуля и ядра
  5. install lirc_gpio insmod -f lirc_gpio # аналогично

Параметры модуля lirc_gpio

  • debug
  • card — номер TV карты
  • minor — младший номер char-устройства /dev/lirc (старший — 61)
  • gpio_mask — маска для извлечения полезных значений из GPIO (0 — модуль автомагически распознает тип ТВ карты и все остальные параметры)
  • gpio_lock_mask
  • gpio_xor_mask
  • soft_gap — минимальный промежуток в мс между сканкодами (0; 0 — отключение проверки)
  • sample_rate — сколько раз в секунду опрашивать GPIO (10; 0 — использовать прерывания вместо опроса)

Для AverMedia TVPhone98 (хотя все настраивается автоматически)

Модуль lirc_dev имеет только параметр debug.

Сначала надо проверить, работает ли собранный пакет:

  1. запускаем /usr/local/sbin/lircd (это демон, журнал в /var/log/lircd)
  2. запускаем irw и жмем кнопки на пульте ДУ, на терминал должны выводиться названия клавиш

Настройка lircd производится с помощью файла /etc/lircd.conf (лучше не трогать без нужды ;).

Настройка lircmd производится с помощью файла /etc/lircmd.conf (я его удалил, чтобы lircmd не запускался совсем).

Чтобы обеспечить автоматический запуск lircd (и, если нужно, lircmd) копируем /etc/init.d/lircd из lirc-0.6.5-fr3.i386.rpm в /etc/rc.d/init.d (поправить с учетом /usr/local/sbin). Затем добавляем lircd в список сервисов:

Запускаем lircd (и lircmd) в первый раз вручную (при следующей загрузке это произойдет автоматически):

Демон lircd декодирует сигналы, поступающие с ИК приемника, и передает приложениям сообщения в виде пары: имя приемника, имя клавиши. Имя клавиши задается в /etc/lircd.conf совпадающим с надписью на соответствующей кнопке ДУ. Например, для моих устройств ДУ передаются следующие имена приемников и клавиш:

  • TVPhone98: POWER, TV/FM, CD, TELETEXT, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, VIDEO, AUDIO, FULLSCREEN, PREVIEW, DISPLAY, LOOP, MUTE, AUTOSCAN, FREEZE, CAPTURE, PLAY, RECORD, PAUSE, STOP, YELLOW, RED, VOL_DOWN, VOL_UP
  • TVPhone98_ext: BLUE, GREEN, CH_DOWN, CH_UP
  • AverTV_307: TV, CD, TELETEXT, POWER, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, VIDEO, AUDIO, FULLSCREEN, DISPLAY, LOOP, PREVIEW, AUTOSCAN, FREEZE, CAPTURE, MUTE, RECORD, PAUSE, STOP, PLAY, RED, VOLDOWN, VOLUP, YELLOW, GREEN, CHDOWN, CHUP, BLUE

Для доступа к /dev/lircd большинство приложений использует входящую в состав пакета библиотеку liblirc_client. Так как в состав библиотеки входят подпрограммы разбора файлов конфигурации, то большинство приложений используют для настройки интерфейса с пультом ДУ файлы одного формата, точнее 1 файл. По умолчанию, этот файл называется

/.lircrc, но приложение может позволять задавать отдельный файл конфигурации.

Файл конфигурации состоит из блоков строк, заключенных между скобками begin и end. Директива include вставляет содержимое указанного файла. После запуска каждое приложение находится с точки зрения библиотеки liblirc_client в основном режиме, при обработке очередного блока приложение может перейти в указанный в нем поименованный режим. Блоки, описывающие поведение программы в поименованном режиме, заключаются в файле конфигурации в скобки

Внутри блока могут быть использованы следующие директивы:

  • prog = имя программы, к которой относится данный блок
  • remote = имя приемника (по умолчанию — *, т.е. любой)
  • button = имя клавиши
  • repeat = число (что делать, если клавиша нажата несколько раз; по умолчанию — 0, т.е. игнорировать повторы, иначе учитывать каждое n-е нажатие)
  • delay = число (по умолчанию — 0; сколько повторений пропустить прежде чем начать обработку директивы repeat)
  • config = строка, передаваемая приложению (если задано несколько директив config, то значение каждой строки передается приложению по очереди при нажатии той же клавиши; непечатные символы записываются как в C — \n или \xFF)
  • mode = переход в указанный режим (если имя режима совпадает с именем приложения, то оно переходит в данный режим при запуске; действия по переключениям режимов выполняются для всех клиентских программ независимо от значения prog (и похоже, что независимо от текущего режима); все приложения рекомендуется запускать одновременно, чтобы избежать рассогласования режимов)
  • flags =
    • startup_mode (при запуске приложение сразу переходит в указанный в директиве режим)
    • mode (покинуть режим; только для блоков внутри поименованного режима)
    • once (только в сочетании с директивой mode; строка config передается приложению только при входе и выходе из режима)
    • quit (прекратить разбор блоков)

В одном блоке может быть задана последовательность директив remote и button, в этом случае для передачи строки приложению требуется последовательное нажатие указанных кнопок (удобно для задания пароля для poweroff ;).

Если приложение может самостоятельно обрабатывать команды ДУ (mplayer, xine, xawtv, tvtime), то для него задаются отдельные блоки в конфигурационном файле:

Если приложение может управляться событиями X Windows, то интерфейс между Lirc и приложением осуществляется с помощью утилиты irxevent (в качестве параметра может задаваться имя файла конфигурации; irxevent надо запускать в начале сеанса вместе с другими lirc-приложениями):

В директиве config кроме имени клавиши X Windows (см. список в файле irxevent.keys) или символа (возможно, с использованием префиксов shift-, numlock-, ctrl-, alt-, meta-) можно также указывать:

  • config = Button кнопка-мышкиxyимя-окна
  • config = xy_Key xyклавишаимя-окна

Вместо имени окна (часто совпадает с именем приложения, см. также xwininfo и xev) можно указывать идентификатор окна или CurrentWindow или RootWindow. Некоторые программы (xterm, xemacs) требуется настраивать, чтобы они позволяли прием сообщений (при этом создается дырка в безопасности!):

Если приложение управляется нажатием клавиш клавиатуры (консольная программа), то ею можно управлять с помощью утилиты irpty (в данном случае для каждого приложения необходим отдельный файл конфигурации, утилита создает псевдотерминал):

Запуск приложений по нажатию кнопок ДУ можно осуществлять с помощью утилиты irexec, для чего надо вставить в скрипт инициализации сеанса ( .bash_profile? ):

/.lircrc надо записать:

irexec можно также использовать для управления приложениями, имеющими вспомогательные управляющие программы:

Bog BOS: Использование пульта ДУ в Linux: Lirc

Источник

Linux.yaroslavl.ru

Последнее изменение файла: 2003.06.26
Скопировано с www.bog.pp.ru: 2003.09.22

Использование пульта ДУ в Linux: Lirc

Пакет Lirc позволяет использовать пульт ДУ для управления операционной системой Linux и прикладными программами. В качестве пульта ДУ можно использовать как самодельные устройства (на сайте даются рекомендации по их изготовлению), так и промышленно изготавливаемые ИК передатчики. В частности, я использую пульт ДУ и ИК приёмник от ТВ тюнера AVerMedia TVPhone98 w/VCR. Пакет также позволяет использовать оборудование для передачи ИК сигналов.

В состав пакета входят:

  • драйверы различных устройств
  • демон lircd, преобразующий ИК сигналы, полученные от драйвера, в стандартные сообщения, которые прикладные программы могут получить через сокет
  • демон lircmd, получающий сообщения от lircd и имитирующий мышку в X Windows
  • программы для управления приложениями, которые не имеют прямого интерфейса с lircd
    • irexec — запуск программ по нажатию кнопки ДУ
    • irxevent — посылка X Windows сообщения по нажатию кнопки ДУ
    • irpty — псевдотерминал, запускает программу и имитирует нажатие клавиш клавиатуры
  • вспомогательные программы для отладки и настройки
    • mode2, smode2, xmode2 — осциллоскоп для инфракрасных сигналов (smode2 требует svgalib); не работает с TV картами
    • irw — вспомогательная утилита, читает сообщения с сокета lircd и выдает на stdout
    • ircat — отладочная программа
    • irrecord — утилита для создания lircd.conf
  • rc — посылает команды на видеомагнитофон или ТВ (если позволяет оборудование), есть отдельный пакет xrc
  • интерфейсная библиотека liblirc_client
  1. для моего пульта ДУ требуется предварительно установить, настроить и загрузить драйверы v4l и bttv
  2. скачать и развернуть архив
  3. при сборке пакета создаются модули ядра (непонятно зачем, если все непосредственное взаимодействие с аппаратурой производится драйверами btttv и i2c), поэтому ядро необходимо подготовить для сборки
    1. cd /usr/src/linux-2.4
    2. make distclean (может достаточно make mrproper?)
    3. make menuconfig (сразу выйти с сохранением)
    4. make dep
    5. make bzImage (warning: kernel is too big for standalone boot from floppy, но я и не собираюсь его устанавливать, но если ядро не собрать, то модуль потом не загружается)
    6. make modules (не компилируется drivers/addon/cipe, убрал ее и поменял drivers/addon/Makefile)
  4. ./setup.sh (создает configure.sh на всякий случай для последующего запуска, нужен пакет dialog — /usr/bin/dialog)
    1. Driver configuration -> TV card -> AverMedia TV card (TVCapture 98, TVPhone98; card 13/41)
    2. Software configuration -> Compile tools for X-Windows
    3. Save configuration & run configure
  5. make (нужен root, т.к. собирается модуль в /usr/src/linux)
  6. make install (устанавливаются модули ядра!)
    • /lib/modules/2.4.18-14/misc/lirc_dev.o
    • /lib/modules/2.4.18-14/misc/lirc_gpio.o
    • /dev/lirc (char 61, 0)
    • /dev/lircd (named pipe)
    • /dev/lircm (named pipe)
    • /usr/local/sbin: lircd, lircmd
    • /etc/lircd.conf (из remotes/avermedia/lircd.conf.avermedia98)
    • /etc/lircmd.conf (из remotes/avermedia/lircmd.conf.avermedia98)
    • /usr/local/lib: liblirc_client.a, liblirc_client.so.0.0.0, liblirc_client.so.0, liblirc_client.so, liblirc_client.la
    • /usr/local/bin: irw, irpty, irexec, ircat, mode2, rc, irxevent, xmode2, irrecord
    • /usr/local/include/lirc/lirc_client.h
    • /usr/local/man/man1: irexec.1, ircat.1, irpty.1, irrecord.1, irw.1, irxevent.1, mode2.1, smode2.1, xmode2.1, rc.1
    • /usr/local/man/man8: lircd.8, lircmd.8
  7. поменять права для /dev/lircd и /dev/lircmd, если хочется иметь доступ к lirc не только для root
  8. depmod -a # обновление БД зависимости модулей ядра

Добавить в /etc/modules.conf

  1. alias char-major-81 bttv # загрузка модуля для AverMedia TVPhone98
  2. alias char-major-89 i2c-dev # управление тюнером и ИК приемником через модуль bttv
  3. alias char-major-61 lirc_gpio # аппаратная часть lirc
  4. install lirc_dev insmod -f lirc_dev # т.к. собранное ядро я не стал устанавливать, то приходится бороться с разницей версий модуля и ядра
  5. install lirc_gpio insmod -f lirc_gpio # аналогично

Параметры модуля lirc_gpio

  • debug
  • card — номер TV карты
  • minor — младший номер char-устройства /dev/lirc (старший — 61)
  • gpio_mask — маска для извлечения полезных значений из GPIO (0 — модуль автомагически распознает тип ТВ карты и все остальные параметры)
  • gpio_lock_mask
  • gpio_xor_mask
  • soft_gap — минимальный промежуток в мс между сканкодами (0; 0 — отключение проверки)
  • sample_rate — сколько раз в секунду опрашивать GPIO (10; 0 — использовать прерывания вместо опроса)

Для AverMedia TVPhone98 (хотя все настраивается автоматически)

Модуль lirc_dev имеет только параметр debug.

Сначала надо проверить, работает ли собранный пакет:

  1. запускаем /usr/local/sbin/lircd (это демон, журнал в /var/log/lircd)
  2. запускаем irw и жмем кнопки на пульте ДУ, на терминал должны выводиться названия клавиш

Настройка lircd производится с помощью файла /etc/lircd.conf (лучше не трогать без нужды ;).

Настройка lircmd производится с помощью файла /etc/lircmd.conf (я его удалил, чтобы lircmd не запускался совсем).

Чтобы обеспечить автоматический запуск lircd (и, если нужно, lircmd) копируем /etc/init.d/lircd из lirc-0.6.5-fr3.i386.rpm в /etc/rc.d/init.d (поправить с учетом /usr/local/sbin). Затем добавляем lircd в список сервисов:

Запускаем lircd (и lircmd) в первый раз вручную (при следующей загрузке это произойдет автоматически):

Демон lircd декодирует сигналы, поступающие с ИК приемника, и передает приложениям сообщения в виде пары: имя приемника, имя клавиши. Имя клавиши задается в /etc/lircd.conf совпадающим с надписью на соответствующей кнопке ДУ. Например, для моего ДУ передаются следующие имена приемников и клавиш:

  • TVPhone98: POWER, TV/FM, CD, TELETEXT, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, VIDEO, AUDIO, FULLSCREEN, PREVIEW, DISPLAY, LOOP, MUTE, AUTOSCAN, FREEZE, CAPTURE, PLAY, RECORD, PAUSE, STOP, YELLOW, RED, VOL_DOWN, VOL_UP
  • TVPhone98_ext: BLUE, GREEN, CH_DOWN, CH_UP

Для доступа к /dev/lircd большинство приложений использует входящую в состав пакета библиотеку liblirc_client. Так как в состав библиотеки входят подпрограммы разбора файлов конфигурации, то большинство приложений используют для настройки интерфейса с пультом ДУ файлы одного формата. По умолчанию, этот файл называется

/.lircrc, но приложение может позволять задавать отдельный файл конфигурации.

Файл конфигурации состоит из блоков строк, заключенных между begin и end. После запуска каждое приложение находится с точки зрения библиотеки liblirc_client в основном режиме, при обработке очередного блока приложение может перейти в указанный в нем поименованный режим. Блоки, описывающие поведение программы в поименованном режиме, заключаются в файле конфигурации в скобки

Внутри блока могут быть использованы следующие директивы:

  • prog = имя клиентской программы, к которой относится данный блок
  • remote = имя приемника (по умолчанию — *, т.е. любой)
  • button = имя клавиши
  • repeat = что делать, если клавиша нажата несколько раз (0 — игнорировать повторы, иначе учитывать каждое n-е нажатие)
  • config = строка, передаваемая приложению (если задано несколько директив config, то значение каждой строки передается приложению по очереди; непечатные символы записываются как в C — \n или \xFF)
  • mode = переход в указанный режим (если имя режима совпадает с именем приложения, то оно переходит в данный режим при запуске; действия по переключениям режимов выполняются для всех клиентских программ независимо от значения prog; все приложения рекомендуется запускать одновременно, чтобы избежать рассогласования режимов)
  • flags =
    • startup_mode (при запуске приложение сразу переходит в указанный в директиве режим)
    • mode (покинуть режим; только для блоков внутри поименованного режима)
    • once (только в сочетании с директивой mode; строка config передается приложению только при входе и выходе из режима)
    • quit (прекратить разбор блоков)

В одном блоке может быть задана последовательность директив remote и button, в этом случае для передачи строки приложению требуется последовательное нажатие указанных кнопок (удобно для задания пароля для poweroff ;).

Если приложение может самостоятельно обрабатывать команды ДУ (mplayer, xine), то для него задаются отдельные блоки в конфигурационном файле:

Если приложение может управляться событиями X Windows, то интерфейс между Lirc и приложением осуществляется с помощью утилиты irxevent (в качестве параметра может задаваться имя файла конфигурации; irxevent надо запускать в начале сеанса вместе с другими lirc-приложениями):

В директиве config кроме имени клавиши X Windows (см. список в файле irxevent.keys) или символа (возможно, с использованием префиксов shift-, numlock-, ctrl-, alt-, meta-) можно также указывать
config = Button кнопка-мышки x y имя-окна
config = xy_Key x y клавиша имя-окна
Вместо имени окна (часто совпадает с именем приложения) можно указывать идентификатор окна или CurrentWindow или RootWindow. Некоторые программы (xterm, xemacs) требуется настраивать, чтобы они позволяли прием сообщений (при этом создается дырка в безопасности!):

Если приложение управляется нажатием клавиш клавиатуры (консольная программа), то ею можно управлять с помощью утилиты irpty (в данном случае для каждого приложения необходим отдельный файл конфигурации, утилита создает псевдотерминал):

Запуск приложений по нажатию кнопок ДУ можно осуществлять с помощью утилиты irexec, для чего надо вставить в скрипт инициализации сеанса ( .bash_profile? ):

/.lircrc надо записать:

irexec можно также использовать для управления приложениями, имеющими вспомогательные управляющие программы:

Источник

Читайте также:  Создать восстановление образа системы windows 10
Оцените статью