от Daniel Zhelyazkov(3-03-2003)
рейтинг (28)
[ добре ]
[ зле ]
Вариант за отпечатване
Как да управляваме Линукс
приложенията с дистаннционно управление с помоща на
LIRC - Linux Infrared Remote
Control
LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. Pre-release versions are currently available at the LIRC homepage: http://www.lirc.org/
Цел на тази статия е да даде идея как да се пусне дистанционно
под Линукс чрез LIRC и за какво да се използва.
Чрез LIRC могат да се управляват MPlayer, XMMS и други, но аз използвам
само тези. Ако имате DVD и работеща TV карта с MPlayer ще превърнете
PC-то си в нещо уникално. С ще си джиткате MP3-ки ще гледате TV, DVD и
DIVX без да се налага да седите на стола пред PC-то.
Инсталация и
настроика:
При мен ситуацията е:
Видео карта Tekram M230 Mach64 с TV и дистанционно.
LIRC Version: 0.6.6
След като изтеглите и разархивирате LIRC в директорията на LIRC ще
откриете setup.sh, пускате го
$ ./setup.sh
и за обща радост инсталацията се извършва чрез меню, подобно на ядрото
на Линукс. Първо е необходимо да изберем нашият хардуер "1 Driver
Configuration", следва избор на типа на дистанционното( дали е към TV
карта сериен порт или други), аз избирам "5 TV Card", и следва
избор на точния модел (при мен "O Tekram M230 Mach 64"). Дотук с
настройката на драйвера. В "2 Software configuration" нямя нищо,
което да се нуждае от промяна. И избирам "4 Save Configuration & run
configure". След успешно изпънение на конфигурационният скрипт
бива изписан модула, който трябва да използваме и сме подканени да
компилираме и инсталираме LIRC.
You will have to use the lirc_bt829 kernel module. Now enter 'make' and 'make install' to compile and install the package.
Изпълняваме:
$ make
за make install ще трябва да сме root затова
$ su Password: # make install
В /lib/modules/kernel_version/misc/ ще откриете 2 модула:
lirc_bt829.o това е модула, който аз използвам, а вие този който
конфигурационният скрипт ви посочи и
lirc_dev.o
В /dev/ са създадени nod-овете:
- /dev/lirc - тук модулита lirc_dev предава получените от
дистаннционното сигнали. Към /dev/lirc се свързва и демона lircd, който
пък сравнява кодовете получени от /dev/lirc с тези в /etc/lircd.conf
като на мястото на /etc/lircd.conf трябва да сложите съответстващия на
вашето дистанционно, конфигурационните файлове се намират в директорята
на LIRC, при мен lirc-0.6.6/remotes/ най-вероятно ще откриете и за
вашето(особенно вероятно ако е към TV карта или комерсиално работещо на
сериен порт) , ако не потърсете на http://lirc.sourceforge.net/remotes/.
- /dev/lircd - тук демона lircd след сравняването на кодовете
изпраща съответстващия сигнал от вида на "000000000000001c 00 POWER
M230" или "000000000000001c 01 POWER M230". Където 000000000000001c е
декодирания сигнал, 00 или 01 показват, за кой път се изпраща сигнал от
дълго задържано копче POWER e съответства на сигнала 000000000000001c,
което е описано в /etc/lircd.conf, а M230 показва от кое дистанционно
произлиза сигнала.(предполагам е възможно повече от едно дистанционо да
работи с един приемник стига кодовете им да не съвпадат). Към /dev/lircd
се свързват XMMS MPlayer и др. приложения.
- /dev/lircm - чрез демона lircmd може да използвате /dev/lircm
като мишка.
След инсталацията изпълнете като root:
# depmod
За стартиране на драйверите е нужно:
modprobe lirc_dev
modprobe lirc_bt829 #тук само да напомня, вместо lirc_bt829 сложете нужния вам модул ;)
lircd
Тези 3 команди най добре да поставите в /etc/rc.d/rc.local (за
slackware) или в друг скрипт, който се изпълнява от init на start-up.
След като ги стартирате ръчно или reboot-нете стартирайте `irw`(идва с
LIRC) и използвайте дистанционното си, ако на екрана започнат да
се изписват сигнали, всичко е ОК в противен случай ще се наложи да
потърсите
проблема.
Настройка на XMMS и MPlayer:
За управление на XMMS използвам "Animax Multimedia Magic Control",
които изтеглих компилиран от http://mta.koti.tpo.fi/xmms/,
състои се от 2 фала:
http://mta.koti.tpo.fi/xmms/libanimax.la
http://mta.koti.tpo.fi/xmms/libanimax.so
копирайте ги в /usr/lib/xmms/General или в ~/.xmms/Plugins/, при
следващо стартиране на XMMS в Ефекти/Общи ще откриете "Animax
Multimedia Magic Control", настройте го като за Device посочете
/dev/lircd. Съществуват и други плъгини за тази цел, потърсете на http://www.xmms.org
MPlayer ще се наложи да прекомпилирате с опцията --enable-lirc
# ./configure --enable-lirc; make ;make install
Настройката на MPlayer е следната във файла ~/.lircrc ще трябва да
опишете командите.
begin #усилва звука button = VOL_UP prog = mplayer config = volume 1 repeat = 1 end begin #намаля звука button = VOL_DN prog = mplayer config = volume -1 repeat = 1 end begin #пауза button = RECALL prog = mplayer config = pause end begin button = PLAY prog = mplayer config = play end begin #превърта 1 мин. напред button = CH_UP prog = mplayer config = seek +60 end
begin #превърта 1 мин. назад button = CH_DN prog = mplayer config = seek -60 end begin #STOP button = STOP prog = mplayer config = seek 0\npause end begin #превърта 10 мин. напред button = FFW prog = mplayer config = seek +600 end begin # превърта 10 мин. назад button = REW prog = mplayer config = seek -600 end begin #quit mplayer button = POWER prog = mplayer config = quit end begin # превключва на цял екран и обратното button = PC_VID prog = mplayer config = vo_fullscreen end
begin #дали да показва OSD и субтитри button = 0 prog = mplayer config = osd 0\nsub_visibility end
Разбира се вие може да си направите друга подредба.
За повече информация прочетете
Mplayer-install-dir/DOCS/documentation.html 3.2.2 Control from LIRC
Примерен скрипт за
управление на системата:
С този скрипт, който върви от стартирането на Линукс до неговото
спиране, аз имам възможност да изпълнявам и спирам различни команди и
приложения, изключително полезно когато искате да се пуснете музика,
mount и umont на CD-ROM-а вече не са толкова досадни :).
#!/usr/bin/perl
open(REMOTE, "/usr/local/bin/irw |") || die "cannot fork: $!";
while (<REMOTE>) {
$a=<REMOTE>;
chomp($a);
($id,$i,$cmmd,$remote) = split (/ /, $a);
if( ($cmmd eq'ADD_ER') ){
system ("/usr/bin/xmms &");
}
if( ($cmmd eq'FUNC') && ($i eq '00') ){
system ("/sbin/mount /cdrom");
system ("/usr/local/bin/mplayer /cdrom/*.avi /cdrom/*.AVI /cdrom/*.Avi &");
}
if($cmmd eq 'F_MINUS'){
system ("eject -t");
system ("/sbin/mount /cdrom &");
}
if($cmmd eq 'F_PLUS'){
system ("/sbin/umount /cdrom");
system ("eject &");
}
if($cmmd eq 'SOURCE'){
system ("killall xmms");
}
if( ($cmmd eq 'POWER') && ( $i eq '05' ) ) {
system ("apm --standby");
}
if($cmmd eq 'PC_VID'){
if( ($i eq '00') ){
system ("xscreensaver-command -deactivate &");
}
if($i eq '03'){
system ("xscreensaver-command -activate &");
}
}
}
close(REMOTE);
Скрипта е бая бъгав и ще се наложи да го промените за да го използвате
поради различните кодове в /etc/lircd.conf , но се надявам ви даде идея,
как да постигнете желаното. Няко команди изискват root привилегии, може
да ги сетнете suid или да изпълнити скрипта като root, аз го стартирам
непосредствено след lircd в /etc/rc.d/rc.local, като го стартирам като
background процес
/path_to/script.pl &
Ако разбирате от 'C' в документацията на LIRC има примерен код за нещо
подобно.
Поддържан хардуер:
TV Capture карти с дистанционно :
Askey Magic TView CPH03x
Askey/Typhoon/Anubis Magic TView CPH051/061
AverMedia TV card (TVCapture, TVPhone)
AverMedia TV card (TVCapture98, TVPhone98)
BestBuy Easy TV (BT848)
BestBuy Easy TV (BT878)
Chronos Video Shuttle II
Dynalink Magic TView
FlyVideo II
FlyVideo 98
FlyVideo 98/FM /2000S
Hauppauge TV card (new I2C layer required)
Hauppauge DVB-s card (ver. 2.1)
KNC ONE TV Station (-/SE/PRO/RDS)
Lenco MXTV-9578 CP
Miro PCTV serial port receiver
Phoebe Tv Master + FM
PixelView PlayTV PAK
Pixelview PlayTV pro
Pixelview PlayTV (bt878)
Prolink PV-BT878P+4E
Prolink PV-BT878P+9B
ProVideo PV951
Technisat MediaFocus I
Tekram M230 Mach64 (and others bt829 based)
TView99 CPH063
Typhoon TView RDS / FM Stereo
Winfast TV2000
Приемници с дистанционно работещи на сериен порт:
Anir Multimedia Magic
CARACA
Creative Infra Receiver
IRdeo
IRdeo Remote
Irman / UIR
Logitech/AST
Miro PCTV receiver
Packard Bell receiver
Pinnacle Systems PCTV (pro) receiver
REALmagic (bundled with Hollywood Plus DVD card)
Slink-e (receive only)
Silitek SM-1000
Tekram Irmate 210
LIRC поддържа и собственоръчно направени приемници, на сайта ще
откриете схеми на примерни приемници работещи на сериен порт.
Изработката им не е сложна (по не така изглежда ), но все ще се намери
някой познат занимаващ се с електроника :). С тези приемници може
да използвате всякакво дистанционно от телевизор видео и т.н., за някои
дистанционни може и да няма конфигурационни файлове, на http://lirc.sourceforge.net/remotes/
ще намерите такива, там има за всякакви модели и марки. Ако вси пак не
откриете за вашето LIRC предлага програми, с които да определите
кодовете на различните бутони на дистанционното.
Успех.
Даниел Желязков
daniel.zh@gmx.net
<< Как да си подкарате скенер Acer S2W 3300U под Дебиан/GNU | Още по-добър Red Hat 8.x >>
|