Видео смотреть бесплатно

Смотреть аниме видео

Официальный сайт welinux 24/7/365

Смотреть видео бесплатно

dr_magnus 14.04.2010 00:31

How-to`sМой путь настройки LIRC

По просьбам трудящихся опишу как я настраивал LIRC.

У меня есть какой-то безымянный ТВ-тюнер, а у него, в свою очередь, есть пульт ДУ. На базе этого безобразия я расскажу о настройке и конфигурации LIRC'a.

Небольшое отступление.
Это уже третий ТВ-тюнер, который попал в мои руки. Первый был фирмы KWorld на базе чипсета Philips и использовал драйвер gpio - его я так и не сумел заставить работать. Второй (какой-то VideoMate на чипе saa7134) мне дали просто на один день пощупать - хоть он и определялся как devinput-устройство, но "искаропки" не запустился, а возится с ним у меня просто не было времени.


Итак, моя конфигурация:

# lspci
02:09.0 Multimedia controller: Philips Semiconductors SAA7134/SAA7135HL Video Broadcast Decoder (rev 01)

Для начала я продублирую свой пост, в котором я подружил ТВ-тюнер и UDEV с некоторыми пояснениями.

Часть 1. Конфигурация UDEV.


Мой пульт работает через драйвер devinput, а этим устройствам номер event'a udev при каждой перезагрузке назначает каким-то произвольным образом. Т.е. если мой пульт сейчас висит на /dev/input/event5, то при следующей перезагрузке udev ему может присвоить /dev/input/event6. Естественно, если наш LIRC в качестве параметра LIRC_DEVICE использует /dev/input/event5, то работать после перезагрузки он перестанет.

Это можно исправить, указав в правилах udev'а создание симлинка на наше устройство.

Поиск нашего пульта:

# cat /proc/bus/input/devices
I: Bus=0001 Vendor=5168 Product=0138 Version=0001
N: Name="saa7134 IR (LifeView FlyVIDEO30"
P: Phys=pci-0000:02:09.0/ir0
S: Sysfs=/devices/pci0000:00/0000:00:1e.0/0000:02:09.0/input/input6
U: Uniq=
H: Handlers=kbd event6
B: EV=100003
B: KEY=c0304 390000 0 0 0 0 0 0 c0000002 1e0000 0 0 10000ffc


Нас интересует номер input'a, присвоенный нашему устройству. В данном случае - это input6.

С помощью udevadm выясняем атрибуты нашего устройства:

# udevadm info -a -p /sys/class/input/input6

Информации вываливается довольно-таки много. Нам интересна та, которая однозначно определяет наше устройство:

....
KERNEL=="input6"
SUBSYSTEM=="input"
DRIVER==""
ATTR{name}=="saa7134 IR (LifeView FlyVIDEO30"
ATTR{phys}=="pci-0000:02:09.0/ir0"
ATTR{uniq}==""
ATTR{modalias}=="input:b0001v5168p0138e0001-e0,1,14,k71,72,73,74,81,9E,9F,170,173,174,175,182,188,189,192,193,ramlsfw"
....


Создаем правило для UDEV, которое будет создавать нам симлинк с нашего устройства на /dev/lirc0:

# cat /etc/udev/rules.d/10-lirc.rules
KERNEL=="event*", ATTRS{name}=="saa7134 IR (LifeView FlyVIDEO30", SYMLINK="lirc0"

Теперь, при следующей перезагрузке, мы получим устройство /dev/lirc0, которое будем однозначно указывать на наш девайс.

Часть 2. Установка, конфигурация и настройка LIRC.


Каждый готовит кошек как умеет. У меня в Арче для установки LIRC'a достаточно двух пакетов - lirc и lirc-utils.

Теперь неплохо бы настроить наш пульт. Для этого используется файл /etc/lirc/lircd.conf и утилита irrecord (man irrecord).

Примечание:
Файл /etc/lirc/lircd.conf содержит "общепринятые" названия кнопок на пульте и их управляющие коды, получаемые непосредственно с пульта. Если кому-то повезет, то этот файл для своего устройства можно найти на оффсайте LIRC'a. Мне не повезло :-)

# irrecord --disable-namespace -H devinput -d /dev/lirc0 /etc/lirc/lircd.conf
Здесь нужно немного пояснить параметр --disable-namespace. Оказывается, что если его не указать, то irrecord ищет какие-то "общепринятые" названия кнопок в каком-то одному ему известном name-space. Т.е. мы просто не сможем называть кнопки пульта так, как нам нравится.

irrecord сначала предложит нам нажать любую кнопку на пульте и подержать её, а затем указать имя для кнопки и нажать её. Поочередно обзываем все кнопки пульта и жмакаем их. Когда закончили - просто нажали ENTER. irrecord радостно сообщит нам об удачном создании файла /etc/lirc/lircd.conf.

Ну что же, основной файл конфигурации создан и можно перейти к запуску демона.
Проверим настройки:

# cat /etc/conf.d/lircd.conf

LIRC_DEVICE="/dev/lirc0"
LIRC_DRIVER="devinput"
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE=""


Запускаемся:

# /etc/rc.d/lircd start

Для проверки LIRC'a служит утилитка irw - при ее запуске в терминале при нажатии на клавишу пульта отображается название клавиши и её управляющий код. Вот пример ее работы:
0000000080010074 00 POWER /etc/lirc/lircd.conf
0000000080010188 00 AUDIO /etc/lirc/lircd.conf
0000000080010189 00 VIDEO /etc/lirc/lircd.conf
0000000080010175 00 TV /etc/lirc/lircd.conf

Если все хорошо, то можно перейти к следующей части.

Часть 3. ~/.lircrc


Для того, что бы задействовать пульт в своей системе нужно рассказать об этом приложению, используещему пульт (как-то не по-русски фраза звучит - подправьте кто сможет). Для этого служит файл ~/.lircrc, в котором описывается как и какому приложению реагировать на нажатие клавиши на пульте.
Вот мой файл :-):

# cat ./.lircrc
include .lirc/lircrc.mplayer

В большинство мультемедийных приложений под Линуксом уже включен модуль/плагин для работы с LIRC'ом, поэтому для работы таких приложений как mplayer, vlc, totem, etc достаточно просто поставить галочку в нужном месте.
Вот моя конфигурация для mplayer'a:

# cat ./.lirc/lircrc.mplayer
begin
button = VOL_PLUS
prog = mplayer
config = volume 10
repeat = 5
end

begin
button = VOL_MINUS
prog = mplayer
config = volume -10
repeat = 5
end

begin
button = MUTE
prog = mplayer
config = mute
end

begin
button = POWER
prog = mplayer
config = quit
end

begin
button = FULL_SCREEN
prog = mplayer
config = vo_fullscreen
end

begin
button = CH_PLUS
prog = mplayer
config = seek 30
end

begin
button = CH_MINUS
prog = mplayer
config = seek -30
end

begin
button = 0
prog = mplayer
config = pause
end

Отдельного упоминания заслуживает программа irexec - она передает управляющие команды тем программам, которые не умеют самостоятельно работать с LIRC'ом. Но это уже - домашнее задание.
Спасибо всем за внимание.

З.Ы. Предлагаю в камментах выкладывать свои конфиги lircrc, дабы узнать как и какими программами можно управлять с помощью пульта.


Тэги: archlinux lirc
+ 16 -
Похожие Поделиться

vvorth 14.04.2010 09:01 #
+ 0 -
Простите за оффтоп:
Вы звук с тюнера заворачиваете шнурком во вход аудиокарты или по PCI забираете? У меня тоже saa7134 что то я никак не разберусь как без провода звук забрать, вроде это должен уметь делать модуль saa7134_alsa(при условии что тюнер умеет), но я даже не знаю с чего начать =.(
dr_magnus 14.04.2010 13:00 #
+ 0 -
да. шнурком с аудио-выхода тюнера на аудио-вход звуковой.
по pci как-то никогда даже не заморачивался - нужды не было.
vvorth 14.04.2010 14:58 #
+ 0 -
Эх жалко, а то в гугле одна вода по этому поводу =.((

ЗЫ
а топик статья знатная получилась =.)))
dr_magnus 01.11.2010 00:02 #
+ 0 -
посмотри вот эту ссылку - я не экспериментировал, но там вроде как твоя проблемка решается
andrew72ru 14.04.2010 11:47 #
+ 0 -
Отлично, спасибо за статью - у меня была проблема с Lirc`ом, которую я так и не решил. Не хотел работать и все тут - без указания, так сказать, причин.
Потом-то я понл, что дело было не в бобине - просто инпут не тот указывал. Но поборолся я с ним знатно тогда.
P.S. Пожалуй в избранное положу - вдруг да пригодится на будущее.
xrays 14.04.2010 19:13 #
+ 1 -
Заработало !!!
Моя система Убунта 10.04 бета 2, пульт sony rm-ga002, приемник сделан своими руками, подключено всё на СОМ1.
Поехали.

1) ставим lirc и setserial + выполняем действия указаные в 2) статьи изложеной выше, список пультов на которые есть готовое конфиги моего тоже не было пришлось учить с помощью irrecord --disable-namespace -H devinput -d /dev/lirc0 /etc/lirc/lircd.conf, единственное у меня почему то программа отказывадась принимать второю и последующие клавиши, пришлось запускать irrecord ещё из параметром -f
вот что получилось (для теста завёл только 2 клавиши звук+ звук-):

# Please make this file available to others
# by sending it to
#
# this config file was automatically generated
# using lirc-0.8.6(default) on Wed Apr 14 15:57:35 2010
#
# contributed by
#
# brand: lircd.conf
# model no. of remote control:
# devices being controlled by this remote:
#

begin remote

name lircd.conf
flags RAW_CODES|CONST_LENGTH
eps 30
aeps 100

gap 44849

begin raw_codes

name KEY_VOLUMEUP
2422 574 624 559 1220 553
636 551 627 568 1233 561
618 554 647 544 1234 568
632 552 627 552 638 557
629

name KEY_VOLUMEDOWN
2414 577 1224 561 1232 553
630 546 623 568 1237 560
626 550 629 558 1236 564
639 550 622 563 628 563
625

end raw_codes

end remote
и пример файла /etc/lirc/hardware.conf
# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE=""
REMOTE_MODULES="lirc_serial"
REMOTE_DRIVER="default"
REMOTE_DEVICE="/dev/lirc0"
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""

LOAD_MODULES=true
MODULES="lirc_serial"
LIRCD_CONF="/etc/lirc/lircd.conf"

#Enable lircd
START_LIRCD="true"

2) Пробуем
перезапускаем сервер lirc
* Stopping remote control daemon(s): LIRC < OK >
* Loading LIRC modules < OK >
* Starting remote control daemon(s) : LIRC < OK >

пробуем устройство при нажатии должны появлятся цифирки
запускаем irw проверяем привязку к клавишам
0000000000000001 00 KEY_VOLUMEUP lircd3.conf
0000000000000001 01 KEY_VOLUMEUP lircd.conf
0000000000000001 02 KEY_VOLUMEUP lircd.conf
0000000000000001 03 KEY_VOLUMEUP lircd.conf
0000000000000001 04 KEY_VOLUMEUP lircd.conf
0000000000000001 05 KEY_VOLUMEUP lircd.conf
0000000000000002 00 KEY_VOLUMEDOWN lircd.conf
0000000000000002 01 KEY_VOLUMEDOWN lircd.conf
0000000000000002 02 KEY_VOLUMEDOWN lircd.conf
0000000000000002 03 KEY_VOLUMEDOWN lircd.conf
0000000000000002 04 KEY_VOLUMEDOWN lircd.conf
0000000000000002 05 KEY_VOLUMEDOWN lircd.conf
0000000000000002 06 KEY_VOLUMEDOWN lircd.conf

3) Конфигурируем приложение
в принцепе здесь тоже что и в основной Часть 3. ~/.lircrc, на собственном примере покажу настройку Totem 2.30.0, вот мой пример
#Custom lircrc generated via mythbuntu-lirc-generator
#All application specific lircrc files are within ~/.lirc
include ~/.lirc/mythtv
include ~/.lirc/mplayer
include ~/.lirc/xine
include ~/.lirc/vlc
include ~/.lirc/xmame
include ~/.lirc/xmess
include ~/.lirc/totem
include ~/.lirc/elisa


begin
prog = Totem
remote = *
button = KEY_VOLUMEDOWN
repeat = 1
config = volume_down
end

begin
prog = Totem
remote = *
button = KEY_VOLUMEUP
repeat = 1
config = volume_up
end

сохраняемся, пробуем, у меня заработало !!!!!

З.Ы. может что не так по тексту правте, ибо долго возился с даным девайсом, перепробывал кучу всего, может чегото пропустил...
dr_magnus 14.04.2010 23:33 #
+ 0 -
рад что сумел помочь. удачи!
Aesdana 14.04.2010 23:56 #
+ 0 -
Ну вот видишь, а ты переживал. Молодца, пиши ещё ?
dr_magnus 15.04.2010 00:59 #
+ 0 -
в данном случае нужно писать так: "аффтар жжет - пишЫ исчо" :-)
vvorth 15.04.2010 12:52 #
+ 0 -
Такая хорошая статья, а комментариев мало - надо хорошенько расписать плюсы LIRC и народ сразу начнёт ресиверы на коленке собирать =.)

А я для себя нашёл выход в виде anyremote - с телефона, по синему зубу.
dr_magnus 15.04.2010 16:06 #
+ 0 -
прикольно. какой, кстати, радиус действия? и не сильно ли мешают какие-нить преграды, типа плюшевого пингвина на столе?
dr_magnus 15.04.2010 16:08 #
+ 0 -
я просто как-то мышу по синезубу подключал, так пришлось этот самый зуб на шнурок вешать - из под стола не работала.
vvorth 15.04.2010 16:38 #
+ 0 -
В пределах прямой видимости - далеко, через железобетон - конечно не берёт, сквозь столы, кружки с пивом - на ура...

Но, при том что БТ-брелок воткнут сзади в корпус, когда между брелком и телефоном весь кейс вдоль, то на близком расстоянии до 2 метров подглючивает(видимо наводки от железа), но эта зона шириной всего сантиметров 10-15 и не беспокоит =.)
bsp 29.07.2010 18:54 #
+ 0 -
@ dr_magnus
Пытаюсь по разным мануалам отстроить свой пульт в Ubuntu 10.04. В 9.04 и 9.10 всё отстаивалось на раз , только по ATTRS{modalias}. Что-то изменилось в 10.04 , но процедура irrecord на "Press RETURN to continue." ни на одну кнопку пульта не реагирует.
Можете помочь советом?


bsp 29.07.2010 19:24 #
+ 0 -
p.s. на команды реагирует адекватно
~$ ls -l /dev/input
drwxr-xr-x 2 root root 80 2010-07-29 19:19 by-id
drwxr-xr-x 2 root root 140 2010-07-29 19:19 by-path
lrwxrwxrwx 1 root root 6 2010-07-29 19:19 Cyp -> event4

~$ irw
0000000080010002 00 KEY_1 devinput
0000000080010003 00 KEY_2 devinput
0000000080010074 00 KEY_POWER devinput
Сейчас определил пульт по ATTRS{modalias}. До этого аналогичная ситуация была по ATTRS{name} на lirc0

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн