пятница, 21 мая 2010 г.

Настройка lirc в Ubuntu 9.11 с пультом от TV-тюнера Pinnacle PCTV

Решил соорудить себе медиацентр, на базе Intel Atom D510. В качестве оболочки использую XBMC. Чтобы не заморачиваться отдельно с настройкой системы и самого XBMC, решил воспользоваться Live образом взятым отсюда. Установка прошла на ура, однако не обошлось без трудностей: не захотел работать ПДУ от древнего TV-тюнера Pinnacle PCTV. Решение было найдено тут. Все что следует далее - вольный перевод в моем исполнении, с незначительными изменениями и поправкой на текущие версии используемого ПО.



Установка
В первую очередь устанавливаем следующие пакеты:
# sudo apt-get install build-essential
# sudo apt-get install linux-headers-2.6.31-16 (изменить в соответствии с версией установленного ядра)
# sudo apt-get install dialog
Скачиваем последнюю версию lirc с http://www.lirc.org. Распаковываем в рабочий каталог:
# tar -xvjf lirc-0.8.6.tar.bz2
Переходим в папку lirc-0.8.6 и запускаем setup.sh
# cd lirc-0.8.6
# ./setup.sh
Запустится скрипт настройки параметров сборки lirc:
На первой странице выбираем пункт "1 Driver Configuration", далее, на открывшейся странице пункт "4 Other serial port devices", в следующем меню выбираем пункт "b Pinnacle Systems PCTV (pro) reciever" и, наконец, указываем COM порт, к которому подключен IR-приемник.
Возвращаемся на первую страницу и выбираем там пункт "2 Software configuration", в следующем окне выбираем пункты "1 Compile tools for X-Windows" и "5 Use syslogd instead of own log file".
Возвращаемся на главную страницу и выбираем пункт "3 Save configuration & run configure".
Далее собираем и устанавливаем lirc:
# make
# sudo make install
Следующий пункт необходим только в случае, если lirc не был установлен ранее (у меня он был установлен "из коробки")
Устанавливаем пакет lirc штатными средствами Ubuntu, при этом будут созданы некоторые нужные файлы, специфичные для Ubuntu:
# sudo apt-get install lirc
Настройка
Приступаем непосредственно к настройке. Редактируем файл /etc/lirc/hardware.conf, находим и редактируем строки:
LOAD_MODULES="false"
DRIVER="pinsys"
DEVICE="/dev/ttyS0" #Для COM1. Для COM2 используется /dev/ttyS1 и т.д.
Копируем нужный lircd.conf (файл с описанием команд ПДУ):
# sudo cp /usr/share/lirc/remotes/pinnacle_systems/lircd.conf.pctv /etc/lirc/lircd.conf
Теперь, собственно финт, ради которого мы дважды устанавливали lirc разными способами, заменяем бинарники lircd и lircmd установленные с помощью apt-get, на собранные из исходников:
# sudo mv /usr/sbin/lircd /usr/sbin/lircd-original
# sudo mv /usr/sbin/lircmd /usr/sbin/lircmd-original
# sudo cp /usr/local/sbin/lircd /usr/sbin
# sudo cp /usr/local/sbin/lircmd /usr/sbin
На этом установку и настройку можно считать законченными.

Тестирование
Выполняем команды:
# sudo /etc/init.d/lirc stop
# sudo lircd --nodaemon
Если lirc запустился нормально, будет выведено сообщение:
lircd-0.8.6[28291]: lircd(pctv) ready
Переходим в другой терминал и запускаем irw:
# irw
Теперь берем в руки пульт и нажимаем на нем чего ни будь, если все в порядке, то на консоли будут появляться сообщения вида:
000000000000001b 00 vol+ PinnacleSysPCTVRemote
000000000000000b 00 Stop PinnacleSysPCTVRemote
0000000000000015 00 pause PinnacleSysPCTVRemote
000000000000000d 00 Play PinnacleSysPCTVRemote
Завершаем работу irw и lircd (Ctrl^C в обоих терминалах) и запускаем демон lircd в обычном режиме:
# sudo /etc/init.d/lirc start
 Пользуемся и говорим большое спасибо хорошему человеку Rilson Raposo из жаркой Бразилии.

2 комментария:

  1. У меня на драйвер ругается , пишет нету или не поддерживается pinsys. Помогите плиз

    ОтветитьУдалить
  2. Как ставил Lirc, из репозитария, или по статье? Если из репозитария - запусти dpkg-reconfigure lirc и дальше действуй как в этой статье указано - "На первой странице выбираем пункт "1 Driver Configuration", далее, на открывшейся странице пункт "4 Other serial port devices", в следующем меню выбираем пункт "b Pinnacle Systems PCTV (pro) reciever" и, наконец, указываем COM порт, к которому подключен IR-приемник." Если по этой статье, то попробу повторить все заново.

    ОтветитьУдалить