Автор Тема: ИК пульт, irda+lirc  (Прочитано 28525 раз)

Оффлайн _AP_

  • Давно тут
  • **
  • Сообщений: 102
ИК пульт, irda+lirc
« : 08.11.2009 18:54:56 »
Ситуация такая. Установил irda-utils, lirc,  kdeutils-irkick. Настроил irda (irmate 410w usb), телефон видит:
]# irdadump
15:19:02.155647 xid:cmd 4720c5f2 > ffffffff S=6 s=1 (14)
15:19:02.255557 xid:cmd 4720c5f2 > ffffffff S=6 s=2 (14)
15:19:02.355563 xid:cmd 4720c5f2 > ffffffff S=6 s=3 (14)
15:19:02.455559 xid:cmd 4720c5f2 > ffffffff S=6 s=4 (14)
15:19:02.535063 xid:rsp 4720c5f2 < a1c60000 S=6 s=4 Nokia 8310 hint=b125 [ PnP Modem Fax Telephony IrCOMM IrOBEX ] (27)

Попытался настроить lirc  по http://faq.altlinux.ru/index.php?action=listq&nf=1&qid=938 загвоздка в том, что

Цитировать
Заходим в папку /dev/input/by-path/
Ищем файлик, который заканчивается на -event-ir.

там нет:

ls /dev/input/by-path/
platform-i8042-serio-0-event-kbd    platform-i8042-serio-1-mouse
platform-i8042-serio-1-event-mouse  platform-pcspkr-event-spkr

поэтому оставил исходный, без изменений.
/etc/lircd.conf изменил под свой пульт, при этом

# irw

на нажатие кнопок с пульта не реагирует, но ИК-приемник своим зеленым глазом перестает моргать. Вот лог:

Nov  8 18:53:38 pirozhkov lircd-0.8.6[8601]: lircd(default) ready, using /dev/lircd
Nov  8 18:53:38 pirozhkov lircd: lircd startup succeeded
Nov  8 18:53:38 pirozhkov lircd-0.8.6[8601]: accepted new client on /dev/lircd
Nov  8 18:53:38 pirozhkov lircd: lircmd startup succeeded
Nov  8 18:53:39 pirozhkov lircd-0.8.6[8601]: accepted new client on /dev/lircd

Может, кто сталкивался? Система - сизиф.


Удачи.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 30 553
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: ИК пульт, irda+lirc
« Ответ #1 : 09.11.2009 14:51:25 »
Напишите в рассылку - там есть люди, работающие с lirc

Оффлайн _AP_

  • Давно тут
  • **
  • Сообщений: 102
Re: ИК пульт, irda+lirc
« Ответ #2 : 03.12.2009 19:42:09 »
Небольшое руководство по настройке lirc.

Поскольку мой ИК-приемник не поддерживается, пришлось спаять самому. Схем много, поэтому зацикливаться на конкретной не буду. Скажу лишь, что приемник из древнего видеоплеера, и подключен без всякой обвески к com-порту. 
Устанавливаем пакеты lirc, liblirc. Для управления КДЕ4 устанавливаем еще и kde4utils-irkick.
Ищем сдесь http://lirc.sourceforge.net/remotes/ один из своих пультов, радуемся находке, и сразу создаем файл /etc/lircd.conf с содержимым.

Тормозим первый (или в какой воткнут) com-порт:

# setserial /dev/ttyS0 uart none

Подключаем модуль:

# modprobe lirc_serial

И проверяем работу пульта командой:

# mode2
если много цифр, то работает и приемник, и пульт.

Далее надо дописать в файл /etc/sysconfig/lircd такие строчки:

DRIVER=default
HWMOD="lirc_serial"
DEVICE=/dev/lirc0
COM_PORT=/dev/ttyS0
DRIVER_OPTS="irq=4 io=0x3e8"

Ну и стартуем:

# service lircd start

или просто
 
# lircd
Проверяем:

# service lircd statusirw
Нажимаем на кнопки пульта, видим в выводе название пульта и кнопки. Пример:

$ irw
00000000e0e0e01f 00 VolUp Samsung_BN59-00685A
00000000e0e0e01f 01 VolUp Samsung_BN59-00685A
00000000e0e0e01f 02 VolUp Samsung_BN59-00685A
00000000e0e0e01f 03 VolUp Samsung_BN59-00685A

Дальше надо настроить управление системой через пульт. Идем в "Параметры системы", там есть "Удаленное управление". Жмем, запускаем. В трее видим перечеркнутый крестиком значок irkick. Чтобы исправить, добавляем пользователя в группу lirc:

# gpasswd -a <пользователь> lirc
 

Вроде все. Дальше все завит от вашей фантазии. Если конфиг пульта не нашли, то следуя за

man irrecord
можно настроить почти любой пульт.

Осталось сделать так, чтобы после перезагрузки не повторять команды

# setserial /dev/ttyS0 uart none
# modprobe lirc_serial

Сейчас с этим воюю.
Удачи.

Оффлайн koral

  • Давно тут
  • **
  • Сообщений: 32
    • Email
Re: ИК пульт, irda+lirc
« Ответ #3 : 24.02.2010 15:48:32 »
Проблема такая! Нарыл у Себя Tekram IR210! Классная вещь. В винде все нормально работает. В линуксе (Alt 5.0 Школьный). Никак не могу настроить.

По умолчанию, с репозитория установил "irda-utils, lirc,  kdeutils-irkick"

Висит все это хозяйство на Com1 (/dev/ttyS0).

Выполнил
"
Далее надо дописать в файл /etc/sysconfig/lircd такие строчки:

Код:

DRIVER=default
HWMOD="lirc_serial"
DEVICE=/dev/lirc0
COM_PORT=/dev/ttyS0
DRIVER_OPTS="irq=4 io=0x3f8"
"

Только перепроверил по прерываниям io=0x3f8

[root@host-124 ~]# service lircd status                                                                 
lircd is running                                                                                         
lircmd is running             

Далее

[root@host-124 ~]# gpasswd -a papa lirc                                                                 
Adding user papa to group lirc     

Далее http://lirc.sourceforge.net/remotes/
нашел свой пульт
и прописал его в /etc/lircd.conf

[root@host-124 ~]# irw     

ничего не выдает

при наведении мыши в трее на irkick система выдает "Служба Lirc в настоящий момент недоступна

Уважаемые ГУРУ! Помогите ламеру.

irw

sivakvale

  • Гость
Re: ИК пульт, irda+lirc
« Ответ #4 : 12.03.2010 16:10:13 »
У меня Aver 505. Сам тюнер я настроил давно. Теперь хочу настроить ДУ-пульт. Но пока как-то не очень получается. Пульт привязан к "/dev/input/event7". Какие-то команды посылаются при нажатии. Проверял через консоль. Почему-то на пульте работают цифровые клавиши. Например, текст 125469 я ввел в форму через пульт. Как мне настроить LIRC?
В /etc/sysconfig/lirc  прописал: "LIRCD_OPTIONS="-H dev/input -d /dev/input/event7"
Затем в /etc/lircd.conf вписал:
# brand:                       Avermedia
 # devices being controlled by this remote:
 #                Avermedia AVerTV Studio 305 (0x1461 0x9715)
 
 begin remote
 
   name  AverTV_305
   bits           16
   eps            30
   aeps          100
 
   one             0     0
   zero            0     0
   pre_data_bits   16
   pre_data        0x8001
   gap             132799
   toggle_bit      0
 
 
 
       begin codes
           TV                       0x0000000000000179
           CD                       0x000000000000017F
           TELETEXT                 0x0000000000000184
           POWER                    0x0000000000000074
           1                        0x0000000000000002
           2                        0x0000000000000003
           3                        0x0000000000000004
           4                        0x0000000000000005
           5                        0x0000000000000006
           6                        0x0000000000000007
           7                        0x0000000000000008
           8                        0x0000000000000009
           9                        0x000000000000000A
           0                        0x000000000000000B
           VIDEO                    0x0000000000000189
           AUDIO                    0x0000000000000188
           FULLSCREEN               0x0000000000000174
           PREVIEW                  0x00000000000000D2
           LOOP                     0x00000000000000A8
           DISPLAY                  0x0000000000000172
           AUTOSCAN                 0x00000000000000D9
           FREEZE                   0x000000000000008E
           CAPTURE                  0x000000000000019A
           MUTE                     0x0000000000000071
           RECORD                   0x00000000000000A7
           PAUSE                    0x0000000000000077
           STOP                     0x0000000000000080
           PLAY                     0x00000000000000CF
           RED                      0x000000000000018E
           GREEN                    0x000000000000018F
           YELLOW                   0x0000000000000190
           BLUE                     0x0000000000000191
           VOLDOWN                  0x0000000000000072
           VOLUP                    0x0000000000000073
           CHUP                     0x0000000000000192
           CHDOWN                   0x0000000000000193
       end codes
 
 end remote
 

Затем в ~/.lircrc
begin
 
     prog = irexec
     button = TV
     # Команды запуска и и выхода из программы
     config = tvtime &
     config = tvtime-command QUIT
     repeat = 0
 end
 begin
     prog = irexec
     button = 0
     config = tvtime-command CHANNEL_0
     repeat = 0
 end
 begin
     prog = irexec
     button = 1
     config = tvtime-command CHANNEL_1
     repeat = 0
 end
 begin
     prog = irexec
     button = 2
     config = tvtime-command CHANNEL_2
     repeat = 0
 end
 begin
     prog = irexec
     button = 3
     config = tvtime-command CHANNEL_3
     repeat = 0
 end
 begin
     prog = irexec
     button = 4
     config = tvtime-command CHANNEL_4
     repeat = 0
 end
 begin
     prog = irexec
     button = 5
     config = tvtime-command CHANNEL_5
     repeat = 0
 end
 begin
     prog = irexec
     button = 6
     config = tvtime-command CHANNEL_6
     repeat = 0
 end
 begin
     prog = irexec
     button = 7
     config = tvtime-command CHANNEL_7
     repeat = 0
 end
 begin
     prog = irexec
     button = 8
     config = tvtime-command CHANNEL_8
     repeat = 0
 end
 begin
     prog = irexec
     button = 9
     config = tvtime-command CHANNEL_9
     repeat = 0
 end
 
 begin
     prog = irexec
     button = CHDOWN
     config = tvtime-command DOWN
     repeat = 0
 end
 begin
     prog = irexec
     button = CHUP
     config = tvtime-command UP
     repeat = 0
 end
 begin
     prog = irexec
     button = VOLUP
     config = tvtime-command RIGHT
     repeat = 2
 end
 begin
     prog = irexec
     button = VOLDOWN
     config = tvtime-command LEFT
     repeat = 2
 end
 begin
     prog = irexec
     button = MUTE
     config = tvtime-command TOGGLE_MUTE
     repeat = 0
 end
 begin
     prog = irexec
     button = FULLSCREEN
     config = tvtime-command TOGGLE_FULLSCREEN
     repeat = 0
 end
 begin
     prog = irexec
     button = DISPLAY
     config = tvtime-command DISPLAY_INFO
     repeat = 0
 end
 begin
     prog = irexec
     button = CAPTURE
     config = tvtime-command SCREENSHOT
     repeat = 0
 end
 begin
     prog = irexec
     button = ASPECT
     config = tvtime-command TOGGLE_ASPECT
     repeat = 0
 end
 begin
     prog = irexec
     button = PAUSE
     config = tvtime-command TOGGLE_PAUSE
     repeat = 0
 end
 begin
     prog = irexec
     button = POWER
     config = poweroff
     repeat = 0
 end
 ##########Gnomeradio##########
 begin
    prog = irexec
    button = CD
    config = gnomeradio
    mode = gnomeradio
    flags =startup_mode
    flags = once
 end
 
 begin
    prog = gnomeradio
    button = VOLUP
    config = volume up
    repeat = 4
    mode = gnomeradio
 end
 
 begin
    prog = gnomeradio
    button = VOLDOWN
    config = volume down
    repeat = 4
    mode = gnomeradio
 end
 
 begin
    prog = gnomeradio
    button = CHUP
    config = preset up
    repeat = 1
    mode = gnomeradio
 end
 
 begin
    prog = gnomeradio
    button = CHDOWN
    config = preset down
    repeat = 1
    mode = gnomeradio
 end
 
 begin
    prog = gnomeradio
    button = MUTE
    config = mute
    repeat = 1
    mode = gnomeradio
 end
 begin
     prog = gnomeradio
     button = RED
     config = QUIT
     flags = mode
 end
 ##########End Gnomeradio##########
 
 begin
     prog = irexec
     button = FREEZE
     config = /usr/bin/xdtv -screensaver_mgt yes -noalsa -c /dev/video0
     mode  = xdtv
     flags = mode
 end
 begin
     prog   = xdtv
     button = CHUP
     config = setstation next
 end
 begin
     prog   = xdtv
     button = CHDOWN
     config = setstation prev
 end
 begin
     prog   = xdtv
     button = VOLUP
     config = volume inc
     repeat = 1
 end
 begin
     prog   = xdtv
     button = VOLDOWN
     config = volume dec
     repeat = 1
 end
 begin
     prog   = xdtv
     button = MUTE
     config = volume mute
 end
 begin
     prog   = xdtv
     button = FULLSCREEN
     config = fullscreen toggle
 end
 begin
     prog   = xdtv
     button = CAPTURE
     config = setres capture toggle
 end
 begin
     prog   = xdtv
     button = 1
     config = keypad 0
 end
 begin
     prog   = xdtv
     button = 2
     config = keypad 1
 end
 begin
     prog   = xdtv
     button = 3
     config = keypad 2
 end
 begin
     prog   = xdtv
     button = 4
     config = keypad 3
 end
 begin
     prog   = xdtv
     button = 5
     config = keypad 4
 end
 begin
     prog   = xdtv
     button = 6
     config = keypad 5
 end
 begin
     prog   = xdtv
     button = 7
     config = keypad 6
 end
 begin
     prog   = xdtv
     button = 8
     config = keypad 7
 end
 begin
     prog   = xdtv
     button = 9
     config = keypad 8
 end
 begin
     prog   = xdtv
     button = 0
     config = keypad 9
 end
 begin
     prog   = xdtv
     button = Record
     config = record
 end
 begin
     prog   = xdtv
     button = RED
     config = quit
     flags  = mode
 end

Оффлайн Dominion

  • Давно тут
  • **
  • Сообщений: 28
Re: ИК пульт, irda+lirc
« Ответ #5 : 08.05.2011 12:32:52 »
Друзья, помогите, не могу настроить работу с пультом 0471:060c Philips
установил lirc,
команда #mode2 по нажатию на кнопку пульта выдает серию данных (space и pulse)
irw - нажатий клавиш не регистрирует.Помогите, нигде не могу найти мануал

kublo

  • Гость
Re: ИК пульт, irda+lirc
« Ответ #6 : 08.05.2011 16:34:48 »
Ну мануал то известно где http://www.lirc.org/html/index.html
Как я понял, пакет lirc у вас установлен, я на всякий случай устанавливал еще kernel-modules-lirc-*  для своего ядра (не знаю, нужен ли он, но думаю не помешает).
Сначала вам нужно сгенерировать lircd.conf для своего пульта, тот который по умолчанию вряд ли подойдет.
Делается это с помощью утилиты irrecord.
Останавливаем службу lircd
# service lircd stopпотом, предварительно на всякий случай сохранив /etc/lircd.conf в другом месте
# irrecord --disable-namespace -H devinput -d /dev/input/by-path/pci-0000:04:02.0-event-ir /etc/lircd.confгде /dev/input/by-path/pci-0000:04:02.0-event-ir ваше устройство ввода, узнать можно, например, так
ls /dev/input/by-path/*ir Запущенная irrecord попросит нажать кнопку Enter, потом попросит нажать и удерживать любую кнопку на пульте. Держите до тех пор, пока не появится предложение ввести имя для кнопки. Введите имя кнопки пульта, нажмите Enter, потом нажмите на пульте соответсвующую названию кнопку. И так по кругу, пока не дадите имена всем кнопкам пульта. В конце просто нажмите Enter.
Я вводил названия написанные над кнопками пульта. Дело это нудное, но делается один раз.
Потом отредактировать /etc/sysconfig/lircd, что бы в нем была одна строчка
OPT="-H dev/input -d /dev/input/by-path/pci-0000:04:02.0-event-ir /etc/lircd.conf"где /dev/input/by-path/pci-0000:04:02.0-event-ir то которое вы узнали ранее
запускаем службу lircd
# service lircd startи проверяем работу пульта
# irwесли все работает, то добавляем пользователя в группу lirc и перезагружаемся, после этого irw должна работать и от пользователя.
« Последнее редактирование: 08.05.2011 16:58:51 от kublo »

Оффлайн Dominion

  • Давно тут
  • **
  • Сообщений: 28
Re: ИК пульт, irda+lirc
« Ответ #7 : 08.05.2011 22:09:50 »
Спасибо огромное за подробные разъяснения.
все пакеты lirc у меня установлены, в т.ч. модули ядра под мое ядро. Все это пытался уже сделать в том же порядке, но, вместо /dev/input/by-path/pci-0000:04:02.0-event-ir использовал /dev/input/lirc0 т.к. в указаной Вами директории у меня нет файла ./*-ir
В принципе, программа irrecord запускалась и предлагала нажимать клавиши на пульте, но не реагировала на них.
В чем может быть причина того, что файл /dev/input/by-path/*-ir у меня отсутствует? Пульт, вроде, система видит через lsusb. Куда копать?

kublo

  • Гость
Re: ИК пульт, irda+lirc
« Ответ #8 : 08.05.2011 23:38:07 »
А покажите что у вас в каталогах
$ ls -l /dev/input/by-id
и
$ ls -l /dev/input/event*
Если дать команду
cat /dev/<то самое устройство>и нажимать кнопки на пульте, то в консоли будут печататься иероглифы. (lircd должен быть остановлен).

Оффлайн Dominion

  • Давно тут
  • **
  • Сообщений: 28
Re: ИК пульт, irda+lirc
« Ответ #9 : 09.05.2011 08:11:16 »
:)
[sergey@torchuk ~]$ sudo ls -l /dev/input/by-id
ls: cannot access /dev/input/by-id: No such file or directory
[sergey@torchuk ~]$ sudo ls -l /dev/input/event*
crw-r----- 1 root root 13, 64 May  8 11:13 /dev/input/event0
crw-r----- 1 root root 13, 65 May  8 11:13 /dev/input/event1
crw-r----- 1 root root 13, 66 May  8 11:13 /dev/input/event2
crw-r----- 1 root root 13, 67 May  8 11:13 /dev/input/event3
в том то и дело, что непонятно мне какое устройство то самое
Еще такая информация
[sergey@torchuk ~]$ sudo ls -l /dev/lirc*
crw-rw---- 1 root root 61, 0 May  8 08:35 /dev/lirc0
crw-rw---- 1 root root 61, 1 May  8 10:47 /dev/lirc1
srw-rw---- 1 root lirc     0 May  8 11:58 /dev/lircd
prw-r--r-- 1 root root     0 May  8 08:13 /dev/lircm
« Последнее редактирование: 09.05.2011 08:27:05 от Dominion »

kublo

  • Гость
Re: ИК пульт, irda+lirc
« Ответ #10 : 09.05.2011 13:04:53 »
1 А для чего вы sudo используете ?
2 Расскажите подробнее, что из себя пульт представляет. У меня пульт от тв-тюнера.
3 и попробуйте вариант с
# cat /dev/input/eventXвместо Х последовательно подставляя 0 - 4.

Оффлайн Dominion

  • Давно тут
  • **
  • Сообщений: 28
Re: ИК пульт, irda+lirc
« Ответ #11 : 09.05.2011 15:06:07 »
- sudo использовал машинально, т.к. читать нужно было "системную директорию"
- Пульт, шёл в комплекте с ноутом. Предназначался для МС медиацентра. К нему приемник отдельный под USB. Пульт такой (верхний): Транссивер такой
- пробовал, в т.ч. раньше. командная строка просто зависает, как будто ожидает завершения операции. Ничего не выводится и не меняется до нажатия Ctrl+C
« Последнее редактирование: 09.05.2011 15:17:16 от Dominion »

kublo

  • Гость
Re: ИК пульт, irda+lirc
« Ответ #12 : 09.05.2011 21:16:38 »
- пробовал, в т.ч. раньше. командная строка просто зависает, как будто ожидает завершения операции. Ничего не выводится и не меняется до нажатия Ctrl+C
Значит не было среди них нужного устройства.

Ну, как вариант, втыкать приемник в usb слот и смотреть, какие новые устройства в /dev появились.

Для облегчения поисков сваял небольшой скрипт на питоне, который покажет разницу в выводе
ls -Rl /devдо и после подключения устройсва.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
os.system('ls -Rl /dev > /tmp/1')
raw_input('Вставте устройство в usb слот и нажмите <Enter>')
os.system('ls -Rl /dev > /tmp/2')
f = open('/tmp/2', 'r')
p = f.readlines()
f.close()
f = open('/tmp/1', 'r')
v = f.readlines()
f.close()
for i in p:
    if not i in v: print i[:-1]
Запускаете скрипт, втыкаете в usb и нажимаете Enter.
« Последнее редактирование: 09.05.2011 21:21:11 от kublo »

Оффлайн Dominion

  • Давно тут
  • **
  • Сообщений: 28
Re: ИК пульт, irda+lirc
« Ответ #13 : 09.05.2011 22:11:39 »
Спасибо огромное за помощь и простите, что напрягаю
применил скрипт, результат получился такой:
drwxr-xr-x 2 root   root        13640 May  9 21:07 char
crw-rw---- 1 root   root      61,   0 May  9 21:07 lirc0
crw-rw-r-- 1 root   root     189, 900 May  9 21:07 usbdev8.5
crw-rw---- 1 root   root     252,  18 May  9 21:07 usbdev8.5_ep00
crw-rw---- 1 root   root     252,  16 May  9 21:07 usbdev8.5_ep01
crw-rw---- 1 root   root     252,  17 May  9 21:07 usbdev8.5_ep82
drwxr-xr-x 2 root root 80 May  9 21:07 008
crw-rw-r-- 1 root root 189, 900 May  9 21:07 005
lrwxrwxrwx 1 root root 12 May  9 21:07 189:900 -> ../usbdev8.5
lrwxrwxrwx 1 root root 17 May  9 21:07 252:16 -> ../usbdev8.5_ep01
lrwxrwxrwx 1 root root 17 May  9 21:07 252:17 -> ../usbdev8.5_ep82
lrwxrwxrwx 1 root root 17 May  9 21:07 252:18 -> ../usbdev8.5_ep00
lrwxrwxrwx 1 root root  8 May  9 21:07 61:0 -> ../lirc0


kublo

  • Гость
Re: ИК пульт, irda+lirc
« Ответ #14 : 10.05.2011 01:23:22 »
Всё таки очень похоже что это lirc0.
Остановите работу lircd и посмотрите выводы
$ find /dev -name "lirc*"сначала с отключенным usb, потом с подключенным.