Настройка пульта ДУ к тюнеру
Настройка пульта ДУ к тюнеру Xpert TV-PVR Vstream Kworld
Особая благодарность за живое участие в настройке данного тюнера выражается Алексею Шенцеву, без помощи которого пульт не работал бы и по сей день, не говоря уже о появлении этой страницы. А также Михаилу Шигорину за настройку эмуляции oss.
Данный тюнер был прописан в /etc/modprobe.d/tv как card=78 tuner=17 radio=1.
При таких параметрах работало видео и радио. Но не работал пульт ДУ. Даже никаких упоминаний о нем в выводе dmesg | grep bttv не было. Согласно ссылке http://aturov.blogspot.com/2009/02/2.html установлены исходники ядра (пакет kernel-source-2.6.30 в данном случае версия согласно текущего используемого ядра). Из файла /usr/src/kernel/sources/kernel-source-твоё_ядро_/Documentation/video4linux/CARDLIST.bttv взяты названия тюнеров содержащие в описании параметр has_remote = 1.
После этого ищем номер тв-тюнера в файле CARDLIST.bttv из /usr/share/doc/kernel-doc-std-2.6.30/video4linux Далее путем перебора:
#modprobe bttv card=xx (xx — номер тв тюнера)
#dmesg | grep bttv (смотрим сообщения ядра на предмет IR)
если нет — значит:
#rmmod bttv
и операция повторяется снова. В данном конктретном случае подошел номер карты указанный по приведенной выше ссылке, то есть card=120.
dmesg | grep bttv
[ 8.060770] bttv: driver version 0.9.18 loaded [ 8.060777] bttv: using 8 buffers with 2080k (520 pages) each for capture [ 8.060830] bttv: Bt8xx card found (0). [ 8.075958] bttv 0000:02:07.0: PCI INT A -> Link[LNKB] -> GSI 19 (level, low) -> IRQ 19 [ 8.075972] bttv0: Bt878 (rev 17) at 0000:02:07.0, irq: 19, latency: 64, mmio: 0xea8fe000 [ 8.076403] bttv0: using: Conceptronic CONTVFMi [card=120,insmod option] [ 8.076406] IRQ 19/bttv0: IRQF_DISABLED is not guaranteed on shared IRQs [ 8.076442] bttv0: gpio: en=00000000, out=00000000 in=003fffff [init] [ 8.076485] bttv0: tuner type=5 [ 8.260789] bttv0: audio absent, no audio device found! [ 8.261009] bttv0: registered device video0 [ 8.261046] bttv0: registered device vbi0 [ 8.261083] bttv0: registered device radio0 [ 8.261103] bttv0: PLL: 28636363 => 35468950 .. ok [ 8.292722] input: bttv IR (card=120) as /devices/pci0000:00/0000:00:0e.0/0000:02:07.0/input/input5
# ls -l /dev/input/*
crw-r----- 1 root root 13, 64 Dec 11 2010 /dev/input/event0 crw-r----- 1 root root 13, 65 Dec 11 2010 /dev/input/event1 crw-r----- 1 root root 13, 66 Dec 11 2010 /dev/input/event2 crw-r----- 1 root root 13, 67 Dec 11 2010 /dev/input/event3 crw-r----- 1 root root 13, 68 Dec 11 2010 /dev/input/event4 crw-rw-r-- 1 root video 13, 69 Dec 11 2010 /dev/input/event5 crw-r----- 1 root root 13, 70 Dec 11 2010 /dev/input/event6 crw-r----- 1 root root 13, 63 Dec 11 2010 /dev/input/mice crw-r----- 1 root root 13, 32 Dec 11 2010 /dev/input/mouse0 crw-r----- 1 root root 13, 33 Dec 11 2010 /dev/input/mouse1
/dev/input/by-id: total 0 lrwxrwxrwx 1 root root 9 Dec 11 2010 usb-A4Tech_USB_Optical_Mouse-event-mouse -> ../event6 lrwxrwxrwx 1 root root 9 Dec 11 2010 usb-A4Tech_USB_Optical_Mouse-mouse -> ../mouse1
/dev/input/by-path: total 0 lrwxrwxrwx 1 root root 9 Dec 11 2010 pci-0000:00:02.0-usb-0:2:1.0-event-mouse -> ../event6 lrwxrwxrwx 1 root root 9 Dec 11 2010 pci-0000:00:02.0-usb-0:2:1.0-mouse -> ../mouse1 lrwxrwxrwx 1 root root 9 Dec 11 2010 pci-0000:02:07.0-event-ir -> ../event5 lrwxrwxrwx 1 root root 9 Dec 11 2010 platform-i8042-serio-0-event-kbd -> ../event1 lrwxrwxrwx 1 root root 9 Dec 11 2010 platform-pcspkr-event-spkr -> ../event2
Теперь пишем в /etc/sysconfig/lircd такое:
OPT="--driver=devinput --device /dev/input/by-path/pci-0000:02:07.0-event-ir"
Подразумевается, что lirc уже установлен в системе.
Далее
# service lircd restart
После чего
cat /dev/input/by-path/pci-0000:02:07.0-event-ir
и нажимаем кнопки на пульте — должен появится вывод символов в консоль при нажатии. Если рекация на нажатия есть, значит нужно правильно сконфигурировать /etc/lircd.conf Примерно подходящий можно взять отсюда http://ru.gentoo-wiki.com/wiki/HOWTO_lirc или создать самому с помощью irrecord.
# irrecord -n -H dev/input -d /dev/input/event5 /etc/lircd.conf
Нужно будет нажать и удерживать любую клавишу на пульте, например power. В консоли будут появляться точки. Затем будет предложено ввести имя кнопки и нажать enter после чего нажать соответствующую кнопку на пульте и снова enter. И т. д. пока не будут записаны все клавиши. После записи последней снова нажимаем enter и конфиг записан. Для ДУ к данному тюнеру имеем следующий lirc.conf
begin remote name /etc/lircd.conf bits 16 eps 30 aeps 100 one 0 0 zero 0 0 pre_data_bits 16 pre_data 0x8001 gap 51991 toggle_bit_mask 0x0 begin codes POWER 0x0074 SOURCE 0x00E2 SCAN 0x00D9 MUTE 0x0071 TV_FM 0x0182 1 0x0002 2 0x0003 3 0x0004 4 0x0005 5 0x0006 6 0x0007 7 0x0008 8 0x0009 9 0x000A 0 0x000B + 0x0195 RECALL 0x018B FM_FREQ_UP 0x004E FM_FREQ_DOWN 0x004A RECORD 0x00A7 STOP 0x0080 PLAY 0x00CF MINIMIZE 0x0184 ZOOM 0x0174 CH_UP 0x0192 CH_DOWN 0x0193 VOL_DOWN 0x0072 VOL_UP 0x0073 SNAPSHOT 0x00A4 MTS 0x0162 FUNCTION_LEFT 0x004A FUNCTION 0x008D FUNCTION_RIGHT 0x004E RESET 0x00AD end codes end remote
ПРИ КОПИПАСТЕ ВОЗМОЖНЫ ОШИБКИ.
Перезапускаем lilrcd и запускаем irw после чего жмем кнопки на пульте и смотрим вывод в консоли. Если все правильно сделано, Вы увидите те название нажимаемых кнопок которые вводили при записи с помощью irrecord и соответстующие им коды.
# irw
0000000080010192 00 CH_UP /etc/lircd.conf 0000000080010072 00 VOL_DOWN /etc/lircd.conf 0000000080010193 00 CH_DOWN /etc/lircd.conf 0000000080010006 00 5 /etc/lircd.conf
Далее нужно создать файл /etc/.lircrc Например такой:
begin prog = irexec button = SCAN config = tvtime --device=/dev/video0 --vbidevice=/dev/vbi0 --mixer=/dev/mixer:vol & mode = tvtime end begin prog = irexec button = ZOOM config = tvtime-command TOGGLE_FULLSCREEN end begin prog = irexec button = CH_UP config = tvtime-command UP repeat = 1 end begin prog = irexec button = CH_DOWN config = tvtime-command DOWN repeat = 1 end begin prog = irexec button = VOL_UP config = tvtime-command RIGHT repeat = 2 end begin prog = irexec button = VOL_DOWN config = tvtime-command LEFT repeat = 2 end begin prog = irexec button = MUTE config = tvtime-command TOGGLE_MUTE end begin prog = irexec button = 1 config = tvtime-command CHANNEL_1 end begin prog = irexec button = 2 config = tvtime-command CHANNEL_2 end begin prog = irexec button = 3 config = tvtime-command CHANNEL_3 end begin prog = irexec button = RESET config = tvtime-command QUIT end # EOF
ПРИ КОПИПАСТЕ ВОЗМОЖНЫ ОШИБКИ.
Добавить нужного пользователя в группу lirc. Запустить irexec. Для старта irexec при запуске системы добавить следующие строки в ~/.bash_profile
killall irexec irexec -d ~/.lircrc
Далее пергружаем машину:
# reboot
После запуска наслаждаемся работой пулта ДУ.
Если в TVTime не регулируется звук через пульт, нужно сделать эмуляцию OSS в ALSA.
Создать файл:
cat /etc/modprobe.d/oss
alias sound_slot_0 snd_card_0 alias sound_service_0_0 snd-mixer-oss alias sound_service_0_1 snd-seq-oss alias sound_service_0_3 snd-pcm-oss alias sound_service_0_8 snd-seq-oss alias sound_service_0_12 snd-pcm-oss install snd-pcm /sbin/modprobe --first-time --ignore-install snd-pcm && { /sbin/modprobe snd-pcm-oss; /bin/true; } install snd-pcm-oss /sbin/modprobe --first-time --ignore-install snd-pcm-oss && { /sbin/modprobe snd-seq-oss; /bin/true; }
После перезагрузки должны появиться устройства:
# ls -l /dev/mix*
crw-rw----+ 1 samuray audio 14, 0 Dec 11 2010 /dev/mixer crw-rw----+ 1 samuray audio 14, 16 Dec 11 2010 /dev/mixer1