summaryrefslogtreecommitdiffstats
path: root/abs/core/local-website/htdocs/mythtv-doc/mythtv-HOWTO-8.html
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/local-website/htdocs/mythtv-doc/mythtv-HOWTO-8.html')
-rw-r--r--abs/core/local-website/htdocs/mythtv-doc/mythtv-HOWTO-8.html530
1 files changed, 530 insertions, 0 deletions
diff --git a/abs/core/local-website/htdocs/mythtv-doc/mythtv-HOWTO-8.html b/abs/core/local-website/htdocs/mythtv-doc/mythtv-HOWTO-8.html
new file mode 100644
index 0000000..98d4b66
--- /dev/null
+++ b/abs/core/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 &amp;
+</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&amp;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 &amp; 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 &amp;
+^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>