Доброго времени суток всем! На дворе июль 2012 года!
Отцы, спецы и иже с ними, я задолбался разбираться как заставить работать пульт ДУ от Behold TV H7.
Точнее, мануалы приведённые здесь мне не помогают.
Для начала представлюсь:
Ubuntu 10.04.04
Ядро 3.0.0-15-generic
Тюнер разумеется Behold TV H7
Пульт ДУ - родной, из комплекта
Программа для просмотра ТВ - Tvtime.
ПРОБЛЕМА: не работают кнопки переключения каналов на пульте CH-UP и CH-DOWNЦифры, регулировка звука, питание и др. - в пределах нормы.
Код:
technocrat@deskuntu:~$ dmesg | grep BeholdTV
[ 19.330586] saa7133[0]: subsystem: 5ace:7190, board: Beholder BeholdTV H7 [card=178,autodetected]
[ 44.472253] input: i2c IR (BeholdTV) as /devices/virtual/rc/rc0/input5
[ 44.472362] rc0: i2c IR (BeholdTV) as /devices/virtual/rc/rc0
[ 44.472365] ir-kbd-i2c: i2c IR (BeholdTV) detected at i2c-1/1-002d/ir0 [saa7133[0]]
technocrat@deskuntu:~$ dmesg | grep saa
[ 19.330381] saa7130/34: v4l2 driver version 0.2.16 loaded
[ 19.330570] saa7134 0000:03:06.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
[ 19.330577] saa7133[0]: found at 0000:03:06.0, rev: 209, irq: 20, latency: 32, mmio: 0xfdcff000
[ 19.330586] saa7133[0]: subsystem: 5ace:7190, board: Beholder BeholdTV H7 [card=178,autodetected]
[ 19.330619] saa7133[0]: board init: gpio is 0
[ 19.484089] saa7133[0]: i2c eeprom 00: ce 5a 90 71 54 20 00 00 00 00 00 00 00 00 00 01
[ 19.484097] saa7133[0]: i2c eeprom 10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484102] saa7133[0]: i2c eeprom 20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484108] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484113] saa7133[0]: i2c eeprom 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484118] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484123] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484128] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484133] saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484138] saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484142] saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484147] saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484152] saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484157] saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484162] saa7133[0]: i2c eeprom e0: 97 db 00 00 ff ff ff ff ff ff ff ff ff ff ff ff
[ 19.484167] saa7133[0]: i2c eeprom f0: 42 54 56 30 30 30 30 ff ff ff ff ff ff ff ff ff
[ 19.492095] saa7133[0]: i2c scan: found device @ 0x1e [???]
[ 19.504090] saa7133[0]: i2c scan: found device @ 0x5a [remote control]
[ 19.516090] saa7133[0]: i2c scan: found device @ 0xa0 [eeprom]
[ 19.526871] saa7133[0]: i2c scan: found device @ 0xc2 [???]
[ 44.472365] ir-kbd-i2c: i2c IR (BeholdTV) detected at i2c-1/1-002d/ir0 [saa7133[0]]
[ 44.472941] saa7133[0]: registered device video0 [v4l2]
[ 44.472963] saa7133[0]: registered device vbi0
[ 44.472983] saa7133[0]: registered device radio1
[ 44.485281] saa7134 ALSA driver for DMA sound loaded
[ 44.485342] saa7133[0]/alsa: saa7133[0] at 0xfdcff000 irq 20 registered as card -1
[ 44.573289] DVB: registering new adapter (saa7133[0])
technocrat@deskuntu:~$ dmesg | grep IR
...............................................................................
[ 19.330570] saa7134 0000:03:06.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
...............................................................................
[ 19.511051] IR NEC protocol handler initialized
[ 19.531267] IR RC5(x) protocol handler initialized
[ 19.554977] IR RC6 protocol handler initialized
[ 20.007954] IR JVC protocol handler initialized
[ 20.106209] IR Sony protocol handler initialized
...............................................................................
[ 20.202191] lirc_dev: IR Remote Control driver registered, major 249
[ 20.203191] IR LIRC bridge handler initialized
...............................................................................
[ 44.472100] Registered IR keymap rc-behold
[ 44.472253] input: i2c IR (BeholdTV) as /devices/virtual/rc/rc0/input5
[ 44.472362] rc0: i2c IR (BeholdTV) as /devices/virtual/rc/rc0
[ 44.472365] ir-kbd-i2c: i2c IR (BeholdTV) detected at i2c-1/1-002d/ir0 [saa7133[0]]
...............................................................................
technocrat@deskuntu:~$ dmesg | grep i2c
...............................................................................
[ 19.892597] i2c-core: driver [tuner] using legacy suspend method
[ 19.892601] i2c-core: driver [tuner] using legacy resume method
...............................................................................
technocrat@deskuntu:~$ dmesg | grep xc5000
[ 20.117306] xc5000 1-0061: creating new instance
[ 20.124085] xc5000: Successfully identified at address 0x61
[ 20.124089] xc5000: Firmware has not been loaded previously
[ 44.556094] xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
[ 44.572154] xc5000 1-0061: attaching existing instance
[ 44.573270] xc5000: I2C read failed
[ 44.573282] xc5000: I2C read failed
[ 44.604941] xc5000: firmware read 12401 bytes.
[ 44.604945] xc5000: firmware uploading...
[ 48.744088] xc5000: firmware upload complete...
[ 57.029242] xc5000: I2C write failed (len=4)
[ 57.029508] xc5000: I2C read failed
[ 57.043906] xc5000: I2C read failed
technocrat@deskuntu:~$ lsmod
Module Size Used by
zl10353 13753 1
saa7134_dvb 34414 0
videobuf_dvb 14147 1 saa7134_dvb
dvb_core 110178 1 videobuf_dvb
saa7134_alsa 18546 1
rc_behold 12499 0
ir_kbd_i2c 13142 0
binfmt_misc 17498 1
ppdev 17180 0
pci_stub 12622 1
vboxpci 23112 0
vboxnetadp 25670 0
vboxnetflt 23506 0
vboxdrv 287233 3 vboxpci,vboxnetadp,vboxnetflt
reiserfs 247394 1
xfs 820455 1
snd_hda_codec_hdmi 31787 1
snd_hda_codec_realtek 329829 1
ir_lirc_codec 12940 0
lirc_dev 19204 1 ir_lirc_codec
snd_hda_intel 32995 2
snd_hda_codec 104241 3 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel
xc5000 18668 1
snd_hwdep 13652 1 snd_hda_codec
ir_sony_decoder 12549 0
snd_pcm 96468 4 saa7134_alsa,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_seq_midi 13324 0
ir_jvc_decoder 12546 0
snd_rawmidi 30385 1 snd_seq_midi
tuner 27377 1
snd_seq_midi_event 14899 1 snd_seq_midi
snd_seq 61538 2 snd_seq_midi,snd_seq_midi_event
ir_rc6_decoder 12546 0
ir_rc5_decoder 12546 0
ir_nec_decoder 12546 0
fglrx 3264005 47
saa7134 181314 2 saa7134_dvb,saa7134_alsa
joydev 17597 0
snd_timer 29708 2 snd_pcm,snd_seq
snd_seq_device 14490 3 snd_seq_midi,snd_rawmidi,snd_seq
snd 68011 17 saa7134_alsa,snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
rc_core 26919 10 rc_behold,ir_kbd_i2c,ir_lirc_codec,ir_sony_decoder,ir_jvc_decoder,ir_rc6_decoder,ir_rc5_decoder,ir_nec_decoder,saa7134
videobuf_dma_sg 19307 3 saa7134_dvb,saa7134_alsa,saa7134
videobuf_core 26138 3 videobuf_dvb,saa7134,videobuf_dma_sg
v4l2_common 16494 2 tuner,saa7134
videodev 88394 3 tuner,saa7134,v4l2_common
v4l2_compat_ioctl32 17160 1 videodev
tveeprom 21250 1 saa7134
edac_core 53411 0
edac_mce_amd 23540 0
wmi 19141 0
k10temp 13119 0
soundcore 12680 1 snd
snd_page_alloc 18484 2 snd_hda_intel,snd_pcm
shpchp 37252 0
serio_raw 13208 0
i2c_piix4 13287 0
lp 17789 0
parport 46360 2 ppdev,lp
usb_storage 57484 1
usbhid 46754 0
hid 95075 1 usbhid
uas 17891 0
r8169 52130 0
pata_atiixp 13157 0
ahci 26002 7
libahci 30767 1 ahci
Нанём с первой страницы ветки форума "Работа пульта ДУ в разных программах":
igk72 сообщает, что существует два способа решения проблемы с разнобоем hardware-кодов клавиш и кодов клавиатурных событий:
Цитата:
1) применять пакет lirc с настройкой на драйвер dev/input и соответсвуюшим lircd-конфигом. Как настроить lirc читайте сами (или ниже, я дописал для новичков), тем более это легко и везде описано.
Готовый файл lircd.conf
2) с помощью программы input--kbd (из пакета input-utils) на старте динамически изменять "расскладку" пульта, так чтобы не было многобайтных клавиатурных событий от пульта.
примерно вот так
input-kbd -f /etc/input-kbd/beholder `cat /proc/bus/input/devices | grep -2 "i2c-.*/.*/ir0" | grep "H:" | awk '{ sub(/event/, "", $3); print $3}'` >/dev/null 2>&1
расположить можно в /etc/rc.d/rc.local или где еще в зависимости от дистрибутива.
Файлы
- файл beholder для input-kbd
- пакет input-utils
Надо ли упоминать, что файлы недоступны для загрузки?
А должен ли пост в сязи с этим быть отредактированным?
Про логику поста уже кто-то писал, присоединяюсь к оценке - логики мало.
Понятно, что писалось при дифиците времени и человеком, который сам себя понимает на 100%.
То, что igk72 соображает в Linux у меня сомнений нет никаких, СНИМАЮ ШЛЯПУ!
Но, уважаемые знатоки, нам, не знатокам очень трудно, и вся надежда на вас.
Если уж берётесь помогать, то будьте снисходительнее, пожалуйста.
Поймите правильно, кто-то давно прожевал проблему, переварил, и выбросил, а кто-то только что пришёл на форум за информацией и за помощью, и оказывается в бурлящем океане разнокалиберной информации.
Форум ведь не мануал, прочитал - сделал.
Попробуйте, к примеру, представить себя на фондовой или валютной бирже, в чём вы ничего не понимаете, где кричат и машут руками много людей, и попробуйте представить, как вы что нибудь продаёте-покупаете в этом гаме. :-)
Простите! Просто наболело, измучился из-за непоняток.Итак, я выбираю второй способ из рекомендованных igk72.
Мотивы:
- не хочу трогать lirc, т.к. задача - управлять тюнером а не всем рабочим столом;
- хочу просто заставить пульт ДУ и тюнер работать нативно, т.к. вижу, что модули для этого грузятся и похоже, что работать должны;
- хочу понять как всё это работает, ибо не обезъяна - "нажми на кнопку, получишь результат";
- к стыду своему, слаб в английском, man'ы читать тяжело (но пытаюсь), но как только пульт заработает, обещаю, начну повышать свой уровень в английском.
Итак, файла beholder для input-kbd у меня нет. Иду дальше.
Встречаю предположение:
Цитата:
Возможно надо так же четко указать чтобы программы не захватывали устройство пульта как еще одну клавиатуру.
Думаю касается ли это меня, я же не знаю что делать, и где искать проблему.
Но иду по ссылке (т.е. начинаю растекаться мозгом по форуму):
http://www.beholder.ru/bb/viewtopic.php?p=48076#48076Не зря, наткнулся на интересную подсказку, увидел крокозябры (нечитаемые символы) на экране при нажати кнопок пульта на выходе команды:
Код:
cat /dev/input/event5
видимо пульт дышит.
Дале читаю малопонятное, то про lirc и его конфиги, который мне не нужен, то ещё про что-то.
Но на всякий случай набил следующим содержимым указанный файл:
/etc/hal/fdi/preprobe/lirc.fdiКод:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.product" contains_ncase="Behold">
<merge key="info.ignore" type="bool">true</merge>
</match>
</device>
</deviceinfo>
Далее узнаю, что Х-сервер имеет свою таблицу соответствия кодов... голова начинает пухнуть.
Далее igk72 стругает несчастного Otto и объясняет ему что, как и где надо читать внимательнее.
Но тем не менее, даёт ему советы. Одним из них я пользуюсь, но получаю следующее при команде:
Код:
sudo input-events $(lsinput |grep -B 5 "BeholdTV" | grep "event" | sed 's#.*event##')
open /dev/input/event0: Permission denied
usage: input-events [ -g ] [ -t <sec> ] devnr
Но я понимаю что хочет igk72, подставляю в команду то, что подразумевается и получаю:
Код:
sudo input-events 5
/dev/input/event5
protocol version mismatch (expected 65536, got 65537)
К слову надо сказать:
Код:
technocrat@deskuntu:~$ sudo lsinput
[sudo] password for technocrat:
/dev/input/event0
protocol version mismatch (expected 65536, got 65537)
Далее отцы продолжают разговаривать про lirc, потом появляется паскалист, для идеи которого место в отдельной теме.
А pupkin кого-то победил, но где он взял файл behold по прежнему не ясно.
8 страниц заканчиваются гласом о помощи MikeB:
Цитата:
Можно поподробнее, ir-kbd-i2c rc-behold /etc/rc_keymaps/behold это команда или это нужно дописать в /etc/rc_map.cfg?
То есть, я пришёл к финишу ни с чем, прочитав 8 страниц. Тема не раскрыта.
Жду помощи и подсказок.
Кто возьмётся помочь?
Завидую англосаксам, мануалы на родном языке читают и раскладки клавиатур им не нужно переключать!