[mythtv-users] lirc on MythTV

R. G. Newbury newbury at mandamus.org
Sun Dec 16 11:03:18 UTC 2007


Mike Dent wrote:
> Take a look at Gary Parkers website,
> http://parker1.co.uk/mythtv_tips.php , about half way down the page.
> this should help.
> 
> Mike
> --
> http://www.g6phf.co.uk
> http://www.wowdad.co.uk
> 
> On 15/12/2007, Nick Morrott <knowledgejunkie at gmail.com> wrote:
>> On 15/12/2007, Lan Barnes <lan at falleagle.net> wrote:
>>> See above on identifying it. When I find the config location, it'll be
>>> [0|1] and I'll make it the other.
>>>
>>> /etc/rc.d/initd/lircd is unrewarding. Other than pointing to
>>> /etc/lirc.conf, which defines the buttons and nothing else, it has no
>>> config I can find.
>>>
>>> Nothing seems to be in any of the 3 .mythtv dirs, /home/mythtv, /root, or /
>>> There is a lircrc in the /home/mythtv/.mythtv, but it seems to be a
>>> mapping from the button map to the myth functions.
>>>
>>> So I ask again, can anyone confirm|deny that there is a config somewhere
>>> that chooses lirc[0|1], and if so, where is it?
>> On Fedora (and likely other distros), the lircd init script config
>> lives in /etc/sysconfig. Here you can specify the '--device
>> /dev/lirc1' option, which is read by the init script when run, and
>> allows you to specify a non-default (/dev/lirc0, /dev/lirc) device.


There are 5 (or 4) parts which need to be set up to get lirc working for 
a mythtv setup. The first 2 are usually done by the lirc installer, but 
not necessarily, or not necessarily correctly.

1)	You will probably need a driver, and a version of lirc compiled with 
your driver. Try 'lircd -H -h' from the command line to see what it 
supported in your version of lircd. The driver may be a module and may 
need to be loaded in modprobe.conf. I have to use 'lirc_imon'.

2)	You need an entry (either a file or a line in an existing file) in 
/etc/udev/rules.d. This defines which /dev/lirc entry will be used. 
Using a USB connected iMon Pad, the 'correct' setup is:

KERNEL=="lirc[0-9]*", NAME="lirc/%n"

This tells the system to create a folder (/dev/lirc/0 etc.) for each 
hardware item found. Since I only have one unit, I use:

KERNEL=="lirc[0-9]*". MAME="lirc"  (which is a little easier to find in 
/dev)

You can add SYMLINK="lirc" MODE="666" to the 'correct' line if needed. 
The MODE setting takes care of 'permission refused' errors.

Check by parsing dmesg...use 'dmesg | grep LIRC'

So now the hardware should be s directed to the correct place.

3)	You need a lircd.conf file. This is usually in /etc.It has lines 
which look like this:

       begin codes
           AppExit                  0x288195B7
           Record                   0x298115B7
           Play                     0x2A8115B7
           SlowMotion               0x29B195B7
           Rewind                   0x2A8195B7
You can create this file if necessary with irrecord.

4)	You need an lircrc file. It has lines which look like this:

	begin
     		prog = mythtv
     		button = Play
     		config = P
	end

It sounds like you have this file. It usually lives in /home/mythtv or 
as /home/mythtv/.lircrc or elsewhere. MAKE SURE YOU ONLY HAVE ONE 
VERSION. Symlink any other copies. There are various versions of this 
file floating around and you can revise any of them.

Note that these files act as case switches. The raw code is read, and a 
command code is output from lircd.conf. That command code is received by 
lirc and passed to the program 'upstairs' as if it were a keypress. The 
command codes must match...NOT Vol+ in one and VOLUME-UP in the other, 
not SlowMotion in lircd.conf and SloMo in lircrc.

5)	Finally, in order to make this useful for something like mythtv, you 
need a daemon launch file, lirc in /etc/rc.d/init.d. There are versions 
in the lirc packages, for Fedora and you just copy and rename from the 
contrib folder to your system. Use chkconfig to set it to start on boot 
in at least level 5. You can use 'service lirc start' etc. to test the 
startup.

You should not need to have options in /etc/sysconfig/lirc but some 
hardware setups require it. These are situations where you must specify 
a particular driver, and a particular hardware point. Note that this can 
also be done in the /etc/init.d/lirc script itself.


There is more that the lirc website.

HTH
Geoff

-- 
       Tux says: "Be regular. Eat cron flakes."


More information about the mythtv-users mailing list