diff options
Diffstat (limited to 'abs/core-testing/local-website/htdocs/mythtv-doc/mythtv-HOWTO-8.html')
-rw-r--r-- | abs/core-testing/local-website/htdocs/mythtv-doc/mythtv-HOWTO-8.html | 530 |
1 files changed, 530 insertions, 0 deletions
diff --git a/abs/core-testing/local-website/htdocs/mythtv-doc/mythtv-HOWTO-8.html b/abs/core-testing/local-website/htdocs/mythtv-doc/mythtv-HOWTO-8.html new file mode 100644 index 0000000..98d4b66 --- /dev/null +++ b/abs/core-testing/local-website/htdocs/mythtv-doc/mythtv-HOWTO-8.html @@ -0,0 +1,530 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<HTML> +<HEAD> + <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21"> + <TITLE>Installing and using MythTV: Setting up a remote control.</TITLE> + <LINK HREF="mythtv-HOWTO-9.html" REL=next> + <LINK HREF="mythtv-HOWTO-7.html" REL=previous> + <LINK HREF="mythtv-HOWTO.html#toc8" REL=contents> +</HEAD> +<BODY> +<A HREF="mythtv-HOWTO-9.html">Next</A> +<A HREF="mythtv-HOWTO-7.html">Previous</A> +<A HREF="mythtv-HOWTO.html#toc8">Contents</A> +<HR> +<H2><A NAME="s8">8.</A> <A HREF="mythtv-HOWTO.html#toc8">Setting up a remote control.</A></H2> + +<P>MythTV does not have native remote control receiver and decoder software +built-in. Instead, remote control functions are implemented by cooperating +with <B>lirc</B>, the Linux Infrared Remote Control program. <B>lirc</B> +handles the IR hardware and passes keystrokes to MythTV, which then acts as +if the user had pressed the keys on the keyboard. The file +<CODE>keys.txt</CODE> describes the keys used to control MythTV.</P> +<P> +<FIGURE> +<EPS FILE="warning.eps"> +<IMG SRC="warning.png"> +<CAPTION><B>NOTE</B>: If you are running Mandriva, you may install +<B>lirc</B> by executing: <CODE># urpmi lirc lirc-remotes</CODE> and bypass +the manual compilation steps described below by jumping to the +<A HREF="#completing_lirc_install">Completing the lirc install</A> section. See the contrib/mandrake91.etc.sysconfig.lircd file for an example of how to +configure lircd.</CAPTION> +</FIGURE> +</P> +<P>Some IR devices require a kernel recompile, and some don't. However, all at +least require having the kernel source available as a resource for the lirc +build process. </P> + +<H2><A NAME="ss8.1">8.1</A> <A HREF="mythtv-HOWTO.html#toc8.1">Gentoo</A> +</H2> + +<P>To install lirc on Gentoo, all you need to do is: +<BLOCKQUOTE><CODE> +<PRE> +# emerge lirc +</PRE> +</CODE></BLOCKQUOTE> +</P> + +<H2><A NAME="ss8.2">8.2</A> <A HREF="mythtv-HOWTO.html#toc8.2">Obtaining and compiling lirc</A> +</H2> + +<P>You're going to need to download and compile <B>lircd</B>. Go to +<A HREF="http://www.lirc.org">http://www.lirc.org</A> and download lirc; as +of 2006-01-21, the version available is 0.8.0. Grab the remotes.tar.bz2 file as +well. +<BLOCKQUOTE><CODE> +<PRE> +$ tar -xjf lirc-0.8.0.tar.bz2 +$ cd lirc-0.8.0 +$ ./setup.sh +</PRE> +</CODE></BLOCKQUOTE> + +You're going to need to know what sort of receiver you have and where it's +connected. In the case of the Pinnacle Studio TV card, with the IR receiver +connected to COM1 (/dev/ttys0), once the configuration menu comes up, +perform the configuration by going to Driver Configuration->Other Serial +Port Devices->Pinnacle Systems Receiver->OK and on the next page select +COM1->OK.</P> +<P>Each remote is different; some remote receivers connect directly to your +capture card and not to a serial port, so make sure that you've got the +correct one.</P> +<P>You then click "Save Configuration and run configure" to continue.</P> +<P>Make sure you read the last text generated by the configure step. It will +tell you if you require a kernel recompile, and what the name of your kernel +module will be (if necessary). For instance a home-built receiver may +require a kernel recompile, so you would be notified that you will have to +load the lirc_serial module. If you did not get any such messages skip the +kernel recompile steps below and go directly to making and installing the +lirc driver.</P> +<P>Once the configuration step is complete: +<BLOCKQUOTE><CODE> +<PRE> +$ make +$ su +# make install +# chmod 666 /dev/lircd +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>At this point, if you're using a serial receiver, check that there's a +<CODE>lirc</CODE> device in <CODE>/dev</CODE>: +<BLOCKQUOTE><CODE> +<PRE> +$ ls -l /dev/li* +lr-xr-xr-x 1 root root 5 Jan 27 09:00 /dev/lirc -> ttyS0 +srw-rw-rw- 1 root root 0 Jan 27 15:01 /dev/lircd= +prw-r--r-- 1 root root 0 Jan 27 09:00 /dev/lircm| +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>As you can see, there's a link from /dev/lirc to ttyS0, a.k.a. "COM1", which is +appropriate for the Pinnacle Systems PCTV Pro. However, you may notice +something like this: +<BLOCKQUOTE><CODE> +<PRE> +crw------- 1 root root 61, 0 Dec 31 1969 lirc +</PRE> +</CODE></BLOCKQUOTE> + +Some IR receivers (including some homebrew units) use a character device as +their data interface as opposed to a link to a serial port. If the <CODE>make +install</CODE> step has created a character device for you, don't replace it +with a link to a COM port.</P> +<P>So, if the link or character device was not created (but should have been), +ensure that you ran the <CODE>make install</CODE> step as root. If it still +doesn't work, then there are three options. The first option is to re-read +the <B>lirc</B> documentation to determine whether your IR receiver is a +character device or should be a link to a serial port and to create the +link/character device manually. In this example, the IR device is connected +to ttyS0. If it were connected to "COM2", then use ttyS1, etc. +<BLOCKQUOTE><CODE> +<PRE> +$ su +# cd /dev +# ln -sf ttyS0 lirc +# exit +$ +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P> +<FIGURE> +<EPS FILE="stop.eps"> +<IMG SRC="stop.png"> +<CAPTION><B>NOTE</B>: The above example assumes that your receiver uses the +standard serial driver. Some receivers do not, including receivers that +plug into a TV capture card. Check the lirc documentation, but it may be +necessary to replace the link created above with a character pipe:</CAPTION> +</FIGURE> + +<BLOCKQUOTE><CODE> +<PRE> +# mknod /dev/lirc c 61 0 +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>See the lirc documentation for additional information. The lirc +installation <EM>should</EM> create this for you, so manually creating it +indicates that your lirc installation may have other issues.</P> +<P>The second option is to post your issue to the <EM>lirc</EM> list, not the +mythtv-users list. The lirc programmers will be the ones that can assist +you best.</P> +<P>The third option is to dispense with lirc altogether by purchasing an IR +keyboard (various options exist, although Chicony appears to work for some +people) and a learning remote control. The IR keyboard receiver plugs into +the PS/2 keyboard port on your PC and you would train your learning remote +to emulate the various keystrokes from <CODE>keys.txt</CODE> of your IR +keyboard. Using this method removes lirc entirely from the picture - your +remote will be sending keypresses that your PC "sees" on the keyboard port.</P> + +<H2><A NAME="completing_lirc_install"></A> <A NAME="ss8.3">8.3</A> <A HREF="mythtv-HOWTO.html#toc8.3">Completing the lirc install </A> +</H2> + +<P> +<FIGURE> +<EPS FILE="warning.eps"> +<IMG SRC="warning.png"> +<CAPTION><B>NOTE to Mandriva 9.1 users</B>: skip to the manual start paragraph +below.</CAPTION> +</FIGURE> +</P> +<P>If the lirc configure program / compile did not mention anything about a +kernel module, then you are finished. If it did mention a kernel module, you +must edit the <CODE>/etc/modules.conf</CODE> file. Add this line as the first +thing in the file. It must come first, or it may not work. +<BLOCKQUOTE><CODE> +<PRE> +alias char-major-61 XXX +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>replace XXX with the name which you determined earlier, which in this +example was "lirc_serial" +<BLOCKQUOTE><CODE> +<PRE> +$ su +# modprobe lirc_serial +# /sbin/ldconfig +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>Next, we're going to manually start lircd the first time. Mandriva 9.1 +users, type: <CODE># /etc/rc.d/init.d/lircd start</CODE> instead of: +<BLOCKQUOTE><CODE> +<PRE> +# /usr/local/sbin/lircd +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P><B>NOTE</B>: Read this next section if you're not familiar with how lirc works!</P> +<P>There are two separate files used by lirc, and both are required for your +remote control to do anything useful. First is the <CODE>lircd.conf</CODE> file. +<CODE>lircd.conf</CODE> tells the lirc daemon how to interpret the IR pulses +that it receives from a remote control and what name to assign to each +sequence of pulses. Without getting too involved, a particular series of +pulses may correlate to "Channel Up". The <CODE>lircd.conf</CODE> file will +then contain a line that looks something like this:</P> +<P> +<BLOCKQUOTE><CODE> +<PRE> + ChannelUp 0x0000000000001020 +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>The <CODE>lircd.conf</CODE> file can have multiple remote controls defined.</P> +<P>The second file is <CODE>lircrc</CODE>, which takes the name of the button which +was pressed ("ChannelUp") in the above example, and correlates that to an +action to be performed by a program using the remote control. So in MythTV, +ChannelUp means one thing, while in <B>mplayer</B> it means something +different. <CODE>lircrc</CODE> gives you the flexibility of taking the name of +the button and having it perform different actions depending on which +program you're using at the time.</P> +<P><B>NOTE</B>: The definitions in <CODE>lircd.conf</CODE> come from the user +community, and there is no standard for the common button names. One +<CODE>lircd.conf</CODE> file may contain a definition for a button called +"ChannelUp", while another may contain a definition for "Chan+". Your +<CODE>lircrc</CODE> file must therefore be configured appropriately, or it won't +work.</P> +<P>If this fails, complaining of a missing <CODE>lircd.conf</CODE> file, then you +must find or make one. First look for a pre-made configuration file at +<A HREF="http://lirc.sourceforge.net/remotes/">http://lirc.sourceforge.net/remotes/</A>. Mandriva 9.1 users, look in +<CODE>/usr/share/lirc-remotes</CODE>. If you find one your remotes either on the +website or in <CODE>/usr/share</CODE>, download or copy the file, name it +<CODE>lircd.conf</CODE> and put it in your <CODE>/etc</CODE> directory. If you +couldn't find your remote, you must make your own <CODE>lircd.conf</CODE> file.</P> +<P>To make your own <CODE>lircd.conf</CODE> file +<BLOCKQUOTE><CODE> +<PRE> +$ irrecord myremote +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>Follow the on-screen directions to train your remote and define keys. If +your remote ends up working well, you should consider submitting your +<CODE>lircd.conf</CODE> file back to the lirc developers. Once finished: +<BLOCKQUOTE><CODE> +<PRE> +$ su +# cp myremote /etc/lircd.conf +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>now try to start lircd again: +<BLOCKQUOTE><CODE> +<PRE> +# /usr/local/sbin/lircd +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>Now, we're going to add the commands necessary for lircd to run each time we +boot. Mandriva 9.1 users, you can execute: +<BLOCKQUOTE><CODE> +<PRE> +$ su +# chkconfig --level 35 lircd on +# exit +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>All other distributions: +<BLOCKQUOTE><CODE> +<PRE> +# cd /etc/rc.d +# cat >> rc.local +echo "Starting lircd" +/usr/local/sbin/lircd +^D +# exit +$ +</PRE> +</CODE></BLOCKQUOTE> + </P> +<P>This takes care of the lircd portion, which "listens" for the IR signals. If +everything went well, the install script for lircd put an appropriate +configuration file for your remote into <CODE>/etc/lircd.conf</CODE> This file +maps the buttons on the remote control to the IR pulses coming from the +receiver.</P> +<P>The next step is to convert those signals into something that can be used +to control MythTV. MythTV now includes native support for lirc and can +interact directly with </P> +<P> +<BLOCKQUOTE><CODE> +<PRE> +$ cd ~/mythtv-0.21/contrib/configfiles +$ cp lircrc.example ~/.lircrc +</PRE> +</CODE></BLOCKQUOTE> + +or +<BLOCKQUOTE><CODE> +<PRE> +$ cp lircrc.example.pinnaclestudiopctv ~/.lircrc +</PRE> +</CODE></BLOCKQUOTE> + +if you've got a Pinnacle Studio PCTV remote. +<BLOCKQUOTE><CODE> +<PRE> +$ irw +</PRE> +</CODE></BLOCKQUOTE> + +Start pressing the keys on your remote; <B>irw</B> will +print the name of the button as it is defined in your +<CODE>/etc/lircd.conf</CODE>. If you don't see anything at this point, you need +to troubleshoot further by going back to the lirc home page and investigating +from there.</P> +<P>If it is working, then press <B>CTRL-C</B> to abort the program. Once you +know that your remote is working, you can either recompile MythTV with +native lirc support by enabling it in <B>configure</B> or you +need to run the <B>irxevent</B> program, which takes the key presses and +sends them to MythTV. If you use native lirc support, you don't need to run +<B>irxevent</B>. If you are going to use irxevent, then you need to run +it like this: +<BLOCKQUOTE><CODE> +<PRE> +$ irxevent & +</PRE> +</CODE></BLOCKQUOTE> + +If <B>irxevent</B> isn't running, then MythTV will not respond to your remote +control unless you're using native lirc support.</P> + +<H2><A NAME="ss8.4">8.4</A> <A HREF="mythtv-HOWTO.html#toc8.4">Additional information for lirc</A> +</H2> + +<P>Take a look at the lircrc.example files in the <CODE>contrib/configfiles/</CODE> +directory. In my case, (Pinnacle Studio card) the channel up and down functions +weren't working, due to the fact that the button names were different than +the default <CODE>lircrc.example</CODE> file that came with MythTV.</P> +<P>The <CODE>lircrc.example</CODE> file has this: +<BLOCKQUOTE><CODE> +<PRE> +begin + prog = irxevent + button = ChannelUp + config = Key Up CurrentWindow +end + +begin + prog = irxevent + button = ChannelDown + config = Key Down CurrentWindow +end +</PRE> +</CODE></BLOCKQUOTE> + +but the <CODE>/etc/lircd.conf</CODE> that comes in the lircd package +defines the buttons for the Pinnacle Studio PCTV as: +<BLOCKQUOTE><CODE> +<PRE> + channel+ 0x0000000000000017 + channel- 0x000000000000001C +</PRE> +</CODE></BLOCKQUOTE> + +rather than "ChannelUp" and "ChannelDown". I added the +following to my /home/[yourusername]/.lircrc file: +<BLOCKQUOTE><CODE> +<PRE> +begin + prog = irxevent + button = channel+ + repeat = 3 + config = Key Up CurrentWindow +end + +begin + prog = irxevent + button = channel- + repeat = 3 + config = Key Down CurrentWindow +end +</PRE> +</CODE></BLOCKQUOTE> + +which took care of basic functionality. Because the PCTV Studio remote +has additional buttons, look at the +<CODE>contrib/configfiles/lircrc.example.pinnaclestudiopctv</CODE> for an example of how +to define additional buttons, and how to debug potential button name +conflicts between the <CODE>lircrc.example</CODE> file and how <B>your</B> +remote defines the button names.</P> +<P>By examining the button names defined in <CODE>/etc/lircd.conf</CODE> and using +the <B>irw</B> program to make sure that your remote is working, you can +create the appropriate mappings in <CODE>.lircrc</CODE> to get excellent remote +functionality with MythTV.</P> +<P>Note the <B>repeat =</B> parameter. This informs the <CODE>irxevent</CODE> +program to pass through every third keypress. By default, <CODE>lirc</CODE> +will only send one keypress to the application, even if you're holding down +the key. The actual <B>repeat =</B> number will vary from system to +system, so experiment and see which value works best for you.</P> + +<H2><A NAME="ss8.5">8.5</A> <A HREF="mythtv-HOWTO.html#toc8.5">Configuring lirc for use with an IR blaster</A> +</H2> + +<P>Lirc has support for various IR transmitters. A popular model is the Actisys +IR-200L +<A HREF="http://store.snapstreamstore.com/accessories.html">http://store.snapstreamstore.com/accessories.html</A>. It was +originally designed for IRDA communication, but can be used to transmit A/V remote +control codes. By using the lirc SIR driver, this device can easily be +integrated with MythTV. I have tested this device with an AT&T DCT2000 +digital cable box but the instructions can be used to configure other IRDA +devices and A/V remotes.</P> +<P>Follow the steps in the previous section. When you run setup.sh, select +option 1, driver configuration. From here select option 6, IrDA hardware. +Select your appropriate device and the corresponding serial port, then Save +configuration & run configure from the main menu. Once configure is done +type: +<BLOCKQUOTE><CODE> +<PRE> +$ make +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>Please note: unlike the Pinnacle receiver above you will be compiling lircd +in addition to a kernel module for the SIR transmitter. Depending on whether +you have your serial port driver configured as a kernel module you might see +the following message during make: +<BLOCKQUOTE><CODE> +<PRE> +lirc_sir.c:56:2: warning: #warning +"******************************************" + +lirc_sir.c:57:2: warning: #warning "Your serial port driver is compiled into " + +lirc_sir.c:58:2: warning: #warning "the kernel. You will have to release the " + +lirc_sir.c:59:2: warning: #warning "port you want to use for LIRC with:" + +lirc_sir.c:60:2: warning: #warning "setserial /dev/ttySx uart none" + +lirc_sir.c:61:2: warning: #warning +"******************************************" +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>If you do receive this statement make sure to run the <B>setserial</B> command +before you load the lirc_sir module. Follow this with the install: +<BLOCKQUOTE><CODE> +<PRE> +$ su +# make install +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>You will notice that lirc installs the kernel module in +<CODE>/lib/modules/uname -a/misc</CODE>. </P> +<P>The configuration for starting <B>lircd</B> differs if you're going to be +sending and receiving IR versus just receiving. +<BLOCKQUOTE><CODE> +<PRE> + +# cd /etc/rc.d +# cat >> rc.local +echo "Starting lircd" +setserial /dev/ttySx uart none # (if required) +modprobe lirc_sir +/usr/local/sbin/lircd +^D +# exit +$ +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>At this point you have to populate the <CODE>/etc/lircd.conf</CODE> file with the proper +codes for your A/V remote. You should be able to find your remote within the +lirc remote tar file located at +<A HREF="http://www.lirc.org/remotes.tar.bz2">http://www.lirc.org/remotes.tar.bz2</A>. In my case I +extracted the file from remotes/motorola/DCT2000 (gi-motorola-dct2000)</P> +<P>To test the lirc_sir module you can run <B>irw</B> to verify the codes are being +received. If everything is configured correctly +you should see something similar to the following: +<BLOCKQUOTE><CODE> +<PRE> +$ irw +0000000000007ff0 00 1 gi-motorola-dct2000 +000000000000bff8 00 2 gi-motorola-dct2000 +000000000000f7f0 00 ENTER gi-motorola-dct2000 +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>Once you've verified lirc is working you can press <B>CTRL-C</B> to exit +<B>irw</B> and configure the channel changing script.</P> +<P>The path to the channel changing script will need to be entered on the +mythtv-setup screen for Input Connections.</P> +<P>This csh script will be called each time MythTV needs to change the channel. +Below is a copy of the script followed by the corresponding perl script. +Make sure both are in your path. Also make sure you leave the #!/bin/csh +setting and not change it to Bourne or bash. This will create a frustrating +symptom to diagnose where MythTV cannot open /dev/device. Unlike Bourne or +bash, csh scripts automatically close parent file descriptors before they +start. +<BLOCKQUOTE><CODE> +<PRE> +$ cd /usr/local/bin +# su +# cat > change_channel.csh +#!/bin/csh +echo "changing to $1" +/usr/local/bin/channel.pl $1 & +^D +# chmod a+x change_channel.csh +# exit +$ exit +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>See <CODE>contrib/channel.pl</CODE> for the actual file. Copy it to +<CODE>/usr/local/bin/</CODE></P> +<P>The last statement within the perl script is the lirc rc command. This is +the command that transmits the code to your cable/DSS box. Make sure to have +the IRDA device within a few feet of the box.</P> + +<HR> +<A HREF="mythtv-HOWTO-9.html">Next</A> +<A HREF="mythtv-HOWTO-7.html">Previous</A> +<A HREF="mythtv-HOWTO.html#toc8">Contents</A> +</BODY> +</HTML> |