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
- для моего пульта ДУ требуется предварительно установить, настроить и загрузить драйверы v4l и bttv
- скачать и развернуть архив
- при сборке пакета создаются модули ядра (непонятно зачем, если все непосредственное взаимодействие с аппаратурой производится драйверами btttv и i2c), поэтому ядро необходимо подготовить для сборки
- cd /usr/src/linux-2.4
- make distclean (может достаточно make mrproper?)
- make menuconfig (сразу выйти с сохранением)
- make dep
- make bzImage (warning: kernel is too big for standalone boot from floppy, но я и не собираюсь его устанавливать, но если ядро не собрать, то модуль потом не загружается)
- make modules (не компилируется drivers/addon/cipe, убрал ее и поменял drivers/addon/Makefile)
- ./setup.sh (создает configure.sh на всякий случай для последующего запуска, нужен пакет dialog — /usr/bin/dialog)
- Driver configuration -> TV card -> AverMedia TV card (TVCapture 98, TVPhone98; card 13/41)
- Software configuration -> Compile tools for X-Windows
- Save configuration & run configure
- make (нужен root, т.к. собирается модуль в /usr/src/linux)
- 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
- поменять права для /dev/lircd и /dev/lircmd, если хочется иметь доступ к lirc не только для root
- depmod -a # обновление БД зависимости модулей ядра