Еще один пример настройки для Beholder BeholdTV 609 FM под Ubuntu 9.10
Всем привет. Прочитал тут все темы по настройке и хочу выложить свой пример, может быть кому поможет. У меня тюнер "Beholder BeholdTV 609 FM", это принципиально в некоторых моментах. Об этом я напишу позже.
1. Вспомним какой собственно у нас тюнер =)
Код:
dmesg | grep saa
В 4-й строчке у меня видно:
Код:
...
[ 12.000120] saa7133[0]: subsystem: 5ace:6091, board: Beholder BeholdTV 609 FM [card=164,autodetected]
...
Кстати, действительно не надо ничего искать и настраивать в модулях. Параметры карты (card,...) все определились автоматически.
2. Устанавливаем lirc. Тут все просто. Я при установки на вопросы о тюнере везде поставил "None".
Код:
sudo apt-get install lirc
Тут кстати уместно заметить что есть такая программа gnome-lirc-properties. В ней вроде как можно настроить свой пульт. Можете попробовать но там всего 2 модели бехолдера прописаны и ни одна из них мне не подошла. Во вторых она настраивает пульт по своему и я так и не смог прикрутить к ней правила для разных приложений (видео плеера, и т.д.). Все что у меня работало так это play/pause и изменение громкости.
3. Найдем а какое собственно устройство у нас в /dev
Код:
cat /proc/bus/input/devices
Эта команда перечислит наши устройства ввода. Последним у меня было такое:
Код:
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="i2c IR (BeholdTV)"
P: Phys=i2c-0/0-002d/ir0
S: Sysfs=/devices/virtual/input/input6
U: Uniq=
H: Handlers=kbd event6
B: EV=100003
B: KEY=20fc014 b0004100000000 0 40000000000 9000004003 1e000000000000 ffc
По имени "i2c IR (BeholdTV)" видно что это и есть наш тюнер, и это event6 а значит полный путь будет /dev/input/event6
4. Ну и собственно настройка lirc
4.1 Редактируем /etc/lirc/hardware.conf:
Код:
# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE="BeholdTV 609 FM" # Это прото название котороя я вписал
REMOTE_MODULES=""
REMOTE_DRIVER="dev/input"
REMOTE_DEVICE="/dev/input/event6" # это мы нашли на 3-м шаге
REMOTE_SOCKET=""
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""
#Chosen IR Transmitter
TRANSMITTER=""
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_SOCKET=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""
#Enable lircd
START_LIRCD="true" # включить демона
#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD="false"
#Try to load appropriate kernel modules
LOAD_MODULES="true"
# Default configuration files for your hardware if any
LIRCMD_CONF=""
#Forcing noninteractive reconfiguration
#If lirc is to be reconfigured by an external application
#that doesn't have a debconf frontend available, the noninteractive
#frontend can be invoked and set to parse REMOTE and TRANSMITTER
#It will then populate all other variables without any user input
#If you would like to configure lirc via standard methods, be sure
#to leave this set to "false"
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""
4.2 Настройки для пульта в /etc/lirc/lircd.conf
Код:
# Feel free to add any custom remotes to the configuration
# via additional include directives or below the existing
# include directives from your selected remote and/or
# transmitter.
#
begin remote
name BeholdTV 609 FM
bits 16
eps 30
aeps 100
one 0 0
zero 0 0
pre_data_bits 16
pre_data 0x8001
gap 135995
toggle_bit_mask 0x0
begin codes
TVFV 0x0000000080010181 #?
POWER 0x0000000080010074
1 0x0000000080010002
2 0x0000000080010003
3 0x0000000080010004
4 0x0000000080010005
5 0x0000000080010006
6 0x0000000080010007
7 0x0000000080010008
8 0x0000000080010009
9 0x000000008001000a
0 0x000000008001000b
VOLUMEDOWN 0x0000000080010072
VOLUMEUP 0x0000000080010073
CHANNELUP 0x0000000080010192
CHANNELDOWN 0x0000000080010193
OK 0x0000000080010160
RECALL 0x0000000080010081
ASPECT 0x0000000080010177
MODE 0x0000000080010175
FULLSCREEN 0x0000000080010174
MUTE 0x0000000080010071
INFO 0x0000000080010166
RECORD 0x00000000800100a7
PLAYPAUSE 0x00000000800100a4
STOP 0x0000000080010080
TELETEXT 0x0000000080010184
FORWARD 0x000000008001018e
BACK 0x0000000080010190
SLEEP 0x000000008001008e
PREVIOUS 0x000000008001018f
NEXT 0x0000000080010191
FREEZE 0x00000000800100ea
SNAPSHOT 0x0000000080010199
end codes
end remote
Насколько я понял коды клавиш на пульте разные для разных моделей тюнера. Поэтому многие примеры приведенные здесь вроде бы правильные но не работают, потому что просто не те коды.
Код для TVFV я пока не нашел =)
4.3 Перезапустим:
Код:
sudo /etc/init.d/lirc restart
4.4 Тут я хочу сказать как проверял все эти коды:
Код:
irw
А дальше жмете на кнопочки пульта и видите на экране какая нажата. Если все правильно то хорошо. Здесь стоит обратить внимание на то, что кнопочки которые вы нажимаете на пульте должны действительно совпадать с тем что на экране написано. Если не совпадает, то зайдите в файл 4.2 и поменяйте названия для кодов, чтобы было правильно. Не забывайте перезапускать lirc при каждом изменении файла (п.4.3).
4.5 Собственно сам пульт должен быть настроен. Возможно даже некоторый кнопки будут работать: громкость больше/меньше ....
4.6 Но мы хотим управлять чуть большим чем просто громкость. Поэтому надо у себя в домашнем каталоге создать файл .lircrc
Код:
### IREXEC ###
begin irexec
# Run applications
begin
prog = irexec
button = 1
# Start TVtime
config = tvtime --window &
# Enter tvtime mode
mode = tvtime
end
begin
prog = irexec
button = 2
# Start Totem player and play DVD
config = totem dvd:/ &
# Enter totem mode
mode = totem
end
begin
prog = irexec
button = 3
# Start Xine and play DVD
config = xine dvd:/ --hide-gui &
# Enter xine mode
mode = xine
end
begin
prog = irexec
button = 0
# Start Rhythmbox player and play
config = rhythmbox-client --hide --no-present & sleep 1 & rhythmbox-client --play &
# Enter rhythmbox mode
mode = rhythmbox
end
# Commands for irexec mode
include ~/.lirc/irexec.lircrc
end irexec
begin tvtime
include ~/.lirc/tvtime.lircrc
end tvtime
begin totem
include ~/.lirc/totem.lircrc
end totem
begin xine
include ~/.lirc/xine.lircrc
end xine
begin rhythmbox
include ~/.lirc/rhythmbox.lircrc
end rhythmbox
Здесь видно чо все команды с пульта (button = 1) будут передаваться программе (prog = irexec) irexec, которая и будет выполнять разные действия (config = tvtime --window &) и переходить в разные режимы (mode = tvtime). Режимы это когда кнопки пульта переназначаються под определенную программу. Например:
Код:
begin tvtime
include ~/.lirc/tvtime.lircrc
end tvtime
здесь для режима tvtime будет использоваться конфиг из файла ~/.lirc/tvtime.lircrc все эти файлы я приложу ниже. За файлы эти сильно не бейте, я писал только для тотема и ритмбокса. Но по их примеру можно написать для всего чего угодно.
Офф сайт:
http://www.lirc.org/html/configure.html#lircrc_format
Кстати lirc совершенно не привязывается к приложениям. У него все идет через режимы. Сейчас поясню:
Если вы запускаете программу из меню или другим способом, но не через пульт (в моем примере это кнопка 1 на пульте) то ничего работать не будет. Так как в режим работы tvtime сам lirc не перешел (а остался в режиме irexec)! А вот если нажать на кнопку 1, даже при работающем TVTime то тогда lirc перейдет в режим tvtime и начнут работать кнопки. Вот так он живет обственной жизнью, иногда не совпадающей с тем что на экране. Было бы конечно интересно чтобы при запуске какого-либо приложения lirc сам переходил в нужный режим. Надо поискать может какая прога есть или написать создателям lirc на эту тему.
4.7 В гноме надо в автозагрузку добавить команду irexec, ведь через нее все работает в п.4.6: меню Система - Параметры - Запускаемые приложения - Добавить. Название и описание любые, команда: irexec --daemon
Внимание! Когда вы рестартуете демона lirc (п.4.3) не забываейте потом запускать заново irexec --daemon так как он отваливаеться при перезапуске демона lirc. Как и любые другие программы работы с пультом: irw, ir...