Friday, April 4, 2008

Getting iMON 0038 LCD working with LIRC

As I mentioned before, getting the iMON display working was a bit troublesome. However, I managed to get it all working. Since it was so problematic, I'd like to share details of how I did it.

Before continuing on, I have to give huge thank you to Dean Harding for setting up the codeka.com forums and for all the work he did with the iMON. Also, thanks to many of the people in those forums who provided followup info and helped troubleshoot/patch things to work with newer versions of the hardware (especially madCoder for his patch for the 0038 model).

Also, I just want to say that, while the following instructions may seem a bit long, it really doesn't take that much work. A lot of this will just be verbose text. I'm trying to provide as thorough instructions as possible and describe whats going on, so that if you run into problems (ex: your configuration is a bit different), hopefully you will understand what needs to be done and figure out how to work around it.


Step 1 - Determine which version of the iMON you have

First, you need to get the ID of your iMON device. Run the lsusb command and look for a line that says Soundgraph. Before that will be the ID string. In my case, it's 15c2:0038, with the 15c2 being the vendor ID and the 0038 the product ID. If this is the version you have, then the rest of the instructions on this page should hopefully get you up and running.

If you have the 15c2:ffdc version, you have the original, and you can probably just follow Deans instructions from codeka.com. If you have another version number, then that means either Soundgraph has changed the device again, or you don't actually have the LCD (perhaps you have the VFD, which is a very different device). In either case, you can have a look around at the codeka.com forums and see someone has figured it out.


Step 2 - Determine if usbhid is controlling the iMON

Originally, the instruction I found for setting up the iMON display didn't work. I followed them to the letter, but had no luck. Well, as it turns out, it seems newer versions of the kernel (I'm running Debian 2.6.24) have support for the iMON in the usbhid driver. That means when the usbhid driver starts, it takes control of the iMON. Later, when the lirc_imon module loads, it's unable to take over the device.

So the first step necessary in setting up the iMON is to make sure the usbhid driver hasn't taken control of it. Run "cat /proc/bus/usb/devices". The output of this will be 1 block of info for each USB device in on the system. You want to find the block(s) that has Vendor=152c and ProdID=0038. Then look down a few lines further in the block and look for the line that contains "Driver=". That will tell you what driver is loaded for that device. If the driver is "usbhid", you need to continue on to disable it. If it's "(none)", you can just skip step 3. If you see lirc_imon, then you already have the proper driver loaded. Anything else and you are on your own.

---------------------------------------------------
Edit: It has come to my attention that /proc/bus/usb/devices doesn't exist on all systems. Apparently not every distribution has usbfs mounted. You can run the command

mount -t usbfs none /proc/bus/usb

to mount it, and then /proc/bus/usb/devices should exist.
---------------------------------------------------

Step 3 - Prevent usbhid from controlling the iMON

Assuming the usbhid driver has been loaded, you now need to disable that. You probably don't want to completely disable the usbhid driver, because that can prevent other devices from working properly (such as usb keyboards and mice). Instead, you want to tell the driver to ignore your particular device. The following instruction work for the 2.6.24 kernel under Debian.

1) Edit /etc/modprobe.d/usbhid (create it if it doesn't exist) and add the following line. The first hex code is the vendor ID, the second is the product ID, and the 0x0004 means ignore this device.

options usbhid quirks=0x15c2:0x0038:0x0004

2) Run the command: depmod -ae
3) You need to rebuild your initrd. If you are running a typical installation, you can do this by running:

update-initramfs -u


In my case, I'm doing a diskless boot over NFS, so I had to do it slightly different. Edit /etc/initramfs-tools/initramfs.conf and make sure BOOT is set to nfs. The run "mkinitramfs -o initrd.img.netboot". Finally, copy the new initrd.img.netboot over to the appropriate location on the tftp boot server (and rename it if you are using a different filename in your setup).

Once this is all done, a reboot should use the new settings and stop loading usbhid for your iMON. Run the "cat /proc/bus/usb/devices" once again. This time, the driver should be listed as (none). If it is still usbhid, do NOT continue on with these instruction until you've figured out how to deal with it for your particular distribution.


Step 4 - Installing LIRC

The basic installation instruction come from this post in the codeka.com forums. The patches to deal with the 0038 model come courtesy of this post by madCoder. In addition, I've made a few small changes to the patch to deal with the iMON pad remote and the front panel buttons on the Thermaltake DH-101 case. Other cases with front panel buttons likely require this same patch. If you don't have this case, I don't really see any harm in using my patch anyway.

You can get detailed info from the above 2 posts, but I'll summarize it below to help you keep things in order between both posts. Also, I'll provide links to actual patch files you can download, because copying and pasting the patch files from the forum are likely to get you "malformed patch" errors because of formatting issues.

Also, before beginning, you'll want to make sure you don't already have an installation of LIRC by running "apt-get remove lirc"

1) Make sure you have the prerequisites for LIRC installed as listed on this page. In my case, I was able to do that through apt-get:

apt-get install libtool automake1.9 autoconf

2) Download the current version of LIRC from CVS.
3)


UPDATE:

With the latest version of lirc (as of sometime in early 2009) all the necessary patches have been included into the CVS version of lirc. It is now possible to get full iMon support without applying any patches to the CVS branch (at least until SoundGraph decides to create a new iMon device with different control codes :)

Anyway, I'm crossing out the info that is no longer needed (but I'm leaving it here in case anyone has any use for it)


The 0038 version of the iMON hardware requires you to patch the LIRC code first. Download this patch and then install it by running the following command from within your LIRC directory:

patch -p1 < lirc-imon_0038-v2.patch



UPDATE:

The code in CVS has changed slightly, and a critical part of the patch no longer applies automatically. Until I get a chance to update the patch, you will need to do the following AFTER applying the patch:


  1. Edit drivers/lirc_imon/lirc_imon.c

  2. Find this line:

    { USB_DEVICE(0x15c2, 0xffdc) },

  3. Add this line after it:

    { USB_DEVICE(0x15c2, 0x0038) }, /* IR & LCD */



Then you can continue with the next step

UPDATE 2:

It looks like cvs has been updated to handle the new version of the imon. However, from what I've heard, it appears that the patch applied to cvs wasn't as comprehensive as the patch I applied, and some of the buttons on the pad remote as well as some of the case front panel buttons might not work.

I haven't yet had a chance to look at the new version to see what it takes to get it going. In the mean time, if you would like to try with the old version from CVS, you can download the version I used from:
http://ronfrazier.net/mythtv/downloads/lirc-cvs.tar.gzip



4) Run autogen.sh and setup.sh. This will give you the configuration dialog. Choose the following sequence:

Driver Configuration -> USB Devices -> Soundgraph iMON IR/LCD

Save configuration & run configure

5) Run make, make install, and then modprobe lirc_imon.

With the 0038 version, you should have devices setup for /dev/lcd0, /dev/lcd1, /dev/lirc0, and /dev/lirc1. In addition, you are also going to have a device for /dev/lirc, but thats not really important. The actual devices we need are lirc0 and lirc1.

Notice to Ubuntu users: I received an email from Sascha Zucca who said that after following these instructions, he did not get all of the appropriate devices showing up under /dev. After working through the problem with him, he discovered that Ubuntu was loading its modules from a different directory than the lirc installer was putting the compiled files in. As a result, even after installing the new modules, lirc was loading the old version without the iMON fixes. Here is how he told me he fixed it:

i had to
mv /lib/modules/2.6.24-16-generic/ubuntu/media/lirc/lirc_imon/lirc_imon.ko{,.OLD}
and
ln -s /lib/modules/2.6.24-16-generic/misc/lirc_imon.ko /lib/modules/2.6.24-16-generic/ubuntu/media/lirc/lirc_imon/


I've since received a half dozen emails from other users who encountered the same problem. Performing the same fix worked for each of them (taking into account that the path will be slightly different for different versions of Ubuntu). Also, take note of the line wrapping. Those are actually only 2 commands.


FYI - Why are there 2 LIRC devices?

The iMON pad remote acts like a mouse/keyboard in addition to a remote. In the old version, it was my understanding that this was all handled through one LIRC device. However, the 0038 version splits it into 2 devices. All of the mouse/keyboard related keys come through the lirc0 device (the directional pad, left click, enter, the number button, ect....however NOT including the Mouse/Keyboard toggle button). Everything else comes through the lirc1 device (play, eject, colored buttons, zoom, etc...plus the Mouse/Keyboard toggle button). Finally, if you have front panel button, they will also come through the lirc1 device (at least they do on the DH-101).

If you have no plans to use the included remote, and plan to use a separate LIRC receiver with a different remote, you might think you can just skip the lirc0 part and use lirc1 for the front panel buttons. However, that may not work. Even if you don't use the iMON's IR receiver, it will still pick up some of the IR signals from certain remotes. When it does you will run into a problem. The iMON buffers up the inputs from each device separately, but maintains the sequence of events between the 2 buffers. If you only run the lirc1 device, everything will work fine until the iMON picks up an IR signal that it decides to put in the lirc0 buffer. When that happens, the lirc1 buffer will appear to have locked up and will not generate any more events. In reality, it's just maintaining the event sequence, and the next event is waiting to be removed from the lirc0 device. Until you do that, you will see no more events coming from the lirc1 device.

Now, on to the testing.


Step 5 - Testing and using LIRC

First you are going to need a lircd.conf file. For the pad remote, you can download this file. For the Thermaltake DH-101, you can download this file. If you want to use them both, you can just combine them into the same file. Whichever file you use (or both files combined), you will need to put that file in /etc/lircd.conf.

Once lircd.conf is in place, you can do the actual testing of LIRC. You need to get both devices up and running. The way to do this it to run 2 copies of lircd. The first one needs to listen to a socket and output its events there. The second one connects to the remote socket, gets events from there, and combines those with its own events. Each of the 2 processes will be listening to a different iMON device. Run the following 2 commands:

/usr/local/sbin/lircd --driver=default --device=/dev/lirc0 --pidfile=/var/run/lirc0.pid --listen=8765
/usr/local/sbin/lircd --driver=default --device=/dev/lirc1 --pidfile=/var/run/lirc1.pid --output=/dev/lircd --connect=localhost:8765

Now you can run the irw program and start pressing buttons on the remote and/or front panel, and you should see the event output on the screen. If you have a different case and don't get output from the front panel buttons, you will need to record a custom configuration file for it using irrecord.

First, you need to kill off the lircd processes (kill `pidof lircd`). Then you need to run irrecrd, but you need to point it at the right LIRC device:

irrecord --device=/dev/lirc1 frontpanel-lircd.conf

Follow the instructions to create your config file. When it's done, you will want to add the contents of frontpanel-lircd.conf to your /etc/lircd.conf file. Then restart both lircd processes and try irw again. Everything should be fine (hopefully)



Congratulations

If you made it this far, then you must have got everything working. Now you probably want to do something useful with the LCD. The most common program to control it is LCDproc. I've covered getting LCDproc setup with the iMON in this post.

If you have any questions or problems, be sure to leave a post in the comments below, or email me (you can find my email address through the "My MythTV Patches & Add-ons" link at the top of the right hand column). Or you can post about it in the iMON forum over at codeka.com



32 comments:

Danny said...

Thanks alot! Everything seem working by looking at irw output but now i'm wondering how to make this work with mythtv.

Do I need a new config or simply point myth ir config to lird.conf?!

---
Danny

board_tester said...

Hi,

first thank's for the great (and working) description.
But I have a little question:
My pad on the remote control is to sensitive. When I just pick up the rc
lirc will invoke an event (sometimes LEFT or RIGHT). Is there a way to define a delay or a minimum time to press a button?
Thank's for spending your time for my problem

ce ya, Andre

eric said...

Thanks again for this write up. It really helps with getting this set up.

I just recently got an imon Ultrabay, which combines the LCD and IR receiver and a small keyboard with two click wheels.

This devices comes up as product ID 0039. I've replaced all references to the 0038 product ID in your patch with 0039 instead and everything appears to be working.

The following lircd.conf settings are needed for the panel buttons to work:

begin remote

name ultrabay-panel
bits 40
eps 30
aeps 100

one 0 0
zero 0 0
post_data_bits 24
post_data 0x1EE
gap 123994
min_repeat 82
toggle_bit_mask 0x880000003C000066

begin codes
music 0x000000001F
videos 0x0000000020
pictures 0x0000000021
dvd 0x0000000027
tv 0x0000000023
prev 0x0000000005
rewind 0x0000000007
stop 0x0000000004
playpause 0x000000003C
ffwd 0x0000000008
next 0x0000000006
navup 0x0000000100
navdown 0x0000010000
navclick 0x000000003D
volup 0x0001000000
voldown 0x0100000000
volclick 0x0000000001
HD 0x000000000F
end codes

end remote

Thanks again,

Eric

Charles said...

I have been fighting this issue for what seems like the longest time and cannot get it to install correctly. Mythbuntu 8,04 2.6.24-19-generic. Everything seems alright until I get to the "make" command. The first error appears 7 lines into the script, giving me the following error: "cp: cannot stat `./../lirc_dev/Modules.symvers': No such file or directory
" I don't know if it's a problem of where I'm beginning the install from or what. I've tried doing the CVS install to ~/lirc and /lirc but get the same result. If I ignore the errors and continue through modprobe, I never get the 0s and 1s, similar to this post: http://codeka.com/forums/viewtopic.php?f=3&t=57 I tried doing the mv and ln -s, but no go. DH-101 with the VFD. What am I doing wrong?

google said...

I have a new Thermaltake DH101 case and remote control. I have followed your excellent instructions and have some of the remote functionality working. My problem is that when using irrecord I see nothing when I press the buttons on the case, 'mouse' buttons on the infra red remote nor the numbers on the infra red remote.
Please note that the other Infra Red buttons work ok.
I have loaded usbsnoop on a windows build and can see three usb devices associated with the panel and remote:
USB\Vid_15c2&Pid_0038&Rev0001
USB\Vid_15c2&Pid_0038&Rev0001&MI_00
USB\Vid_15c2&Pid_0038&Rev0001&MI_01
I recorded some of the key presses as follows:
Panel Vol+ = 00010000000001ee
IR Vol+ = 28a3d5b700000101
Panel AppExit = 000000000f0001ee
IR AppExit = 2881d5b700000101

Do you think the case has changed again and if so can you suggest something I can do to get the additional functionality on the remote and panel?

Thanks in advance,

Tom

google said...

One additional bit of information..
I managed to have irrecord record the pad up/down/left/right as well as numeric keys by listening into /dev/lirc0 rather than /dev/lirc1. However, when I pressed the Mouse/Keyboard button on the IR Remote I could no longer record anything. The only way to get it recording again was to reboot. This sounds very similar to the original problem you discussed in your post.

Thanks

Tom

jason said...

I have the same issue as Charles.

Can anyone help please.

Thanks,

Jay

Matte99 said...

Anybody gotten this to work with a Zalman HD 160 plus case. Zalman changed to an imon module in the plus version. I get to the point that i have the right modules loaded in the kernel but irw doesn't react at all, just waits for input. I would appreciate any hint on how to proceed. Ps I am a ubuntu 8.04 user.

Regards
//Mattias

orsolf said...

Great work Ron!

I got the imon on my zalman hd160 plus up and running now. Your lircd-dh101.conf file worked fine on the display buttons. Created my own mini-wiki on my blog: http://orsolf.blogspot.com/

/regards

orjan

Canyoneering said...

With Ubuntu, the easiest way to work on this would be to install the lirc-modules-sources package, and then move the modified lirc_imon.c driver into /usr/src/lirc-0.8.3/drivers/lirc_imon directory (overwrite the existing one)

To then build the driver - it's as simple as executing "dpkg-reconfigure lirc-modules-sources" and it will rebuild and replace any existing kernel modules.

I think that the lirc-modules-sources is new to Intrepid.

On another note... I'm going crazy getting mine to work again - I had it working earlier, but now it's not :( - I've posted a thread over at codeka and if you want to take a peak at it sometime and see if you can suggest anything I'd appreciate it greatly.

http://codeka.com/forums/viewtopic.php?f=3&t=69

Canyoneering said...

The latest cvs head of the lirc now (as of this morning) should work out of the box without need of any patching. It has your pad2keys patch,and such.

It also uses device ID detection instead of that archaic "is_lcd" parameter.

I tested it this morning and all seems to work now. I think the quirks is upstream now for the 0x0038 also - so that step might not be necessary anymore either.

gt_schorsch said...

How do I combine both lircd.conf files? When I just combine them one after the other, only the first remote is detected. I use the lirc version you used.

Jean-Yves Avenard said...

Hi

For those running Ubuntu (tested on Ubuntu 8.10 beta)

I've made a patch to the existing lirc modules, the advantage being that they will be installed in the proper location, and it will be easier to maintain in the future.
Patch is available there:
http://www.avenard.org/mythtv/lirc-0.8.3.imon.patch

How to use it:

# apt-get install lirc-modules-source
# cd /usr/src/lirc-0.8.3
# patch -p1 /path/th/lirc-0.8.3.imon.patch
# dpkg-reconfigure lirc-modules-source

either reboot or type:
rmmod lirc_imon
rmmod lirc_dev
modprobe lirc_imon

That's it

Jean-Yves Avenard said...

For people with an Antec Fusion Remote and the MX200 remote control.

I've created a lircd configuration file for the buttons of that remote , including the volume knob. As well as the script to start everything automatically.

The lirc script is it be copied into /etc/init.d
and the other configuration files to be located in their right location.

What it does is start two lircd daemon as described in this great blog.

Creating it was a pain as if you make any mistakes during the irrecord you have to restart the configuration after starting/stopping lircd

To start the lirc daemon, either reboot or type /etc/init.d/lirc start

So this take the pain away from you ; enjoy

http://www.avenard.org/mythtv/lirc-conf.tar.gz

Alister said...

Hi Ron

Can you please explain how these two commands to start lircd can be executed automatically at start-up?


/usr/local/sbin/lircd --driver=default --device=/dev/lirc0 --pidfile=/var/run/lirc0.pid --listen=8765
/usr/local/sbin/lircd --driver=default --device=/dev/lirc1 --pidfile=/var/run/lirc1.pid --output=/dev/lircd --connect=localhost:8765


Thanks
Alister

Ador said...

Hi,
I manage to get readings from my RM200 remote (antec fusion remote) using:

sudo mode2 --device=/dev/lirc0 --raw

The problem is that I cannot get irw working. Upon boot trying to start irw returns "connection refused".
Using the two sbin/lirc commands first will allow me to execute irw but without any reading from the remote at all by default using the script/config suggested by jean-yves. I might be positioning the file in an inproper position or multiple locations.

So I tried creating an own custom config-file using irrecord but cannot set names for the buttons (namespaces) - what am i supposed to call the buttons? When irrecord quits my config-file gets the following contents:

begin remote
name rm200
bits 64
eps 30
aeps 100

one 0 0
zero 0 0
gap 195992
toggle_bit_mask 0x1E00000000

begin codes
end codes
end remote

As can be seen I get no codes for the buttons. This file differs at the "bits" and "toggle_bit_mask" line as compared to jean-yves files.

How do I know that the lirc-script proposed by jean-yves is properly executed on startup? (I am not a fully new beginner but I am learning linux as every day passes by).

Do all the files in the /etc/lirc/ folder propsed by jean-yves have to be copied or should they be combined into one lird.conf?

A bit confused here but well on my way.

Ador

Nemrod said...

Thanks for that great guide.
I am the happy owner of a Zalman HD160Plus case. At a first glance, the recipe didn't work for the front panel buttons... I just tried the CVS head (as of today) and it works like a charm for both the remote and the case buttons.

Ador... I suggest that you try the CVS head too (without any patch)... it even contains a lircd.conf.imon-antec-veris that might suit for you.

Catalectic said...

Great tutorial! Verrrry informative in how well worded and descriptive you were! You know they say that if one knows how to describe what they want really well, then liffe is just as good as how you describe it :)
Its great for people who feel like time is running against them and then land on your blog & feel like a whole burden was just lifted off of their shoulder......!! I admire and respect people who take time to make it easier for others.. Thanks a bunch! :)
HP laptop lcd screens

Scan said...

Hi thanks for the nice blog. I have a Zalman 160 HD but the ir will not work. I found the blog from orsolf but ther a no comment function on it. I hope he can tell me some thinks what he have configed on installing mythbuntu ver. 8.04. for the lirc version ?. second question
on his blog he have write:

20. patch -p1 <> .

Get down to option number 3 (save configuration & run configure)

25. make && make install

wo ist the rest ??

maybe orsolf can help me.

thx Scan

board_tester said...

Hi,

Thanks alot, again!
But I have a question:

Is it possible to display special characters, like äöüß (german special types) on the display. In the moment it displays a space for them.
Can I change the code to use utf-8 or isoxxxx?

Thanks, Andre

Fredrik said...

Thanks a lot for this informative post!

I don't have the same device number (I got 15c2:0036 in my Silverstone LC16MR instead of 15c2:0038) but I still got it to work halfway following the instructions here (lirc1 buttons worked but not lirc0 buttons).

Therefore I reinstalled Mythbuntu to start from scratch. I also found http://www.mythtv.org/wiki/index.php/SilverstoneTek_LC16M which has been updated lately with info about my device number.

I can compile the modules (though I get some warnings/errors which I'm not sure are critical or not) but they won't load while booting. I get:

dmesg |grep lirc
[ 14.092364] lirc_dev: IR Remote Control driver registered, major 61
[ 14.107773] lirc_imon: Unknown symbol lirc_unregister_driver
[ 14.108221] lirc_imon: Unknown symbol lirc_register_driver

I've posted about my problems at http://ubuntuforums.org/showthread.php?p=6601689#post6601689 so if any of you guys have time to take a look and help out I would appreciate it very, very much!

/Fred

Fredrik said...

I just wanted to let you know that I've solved my issue. The solution is in the thread mentioned above.

James said...

This was a great help. Only one problem left. Someone else had the same problem but I didn't see a reply.

I have a Antec Fusion Remote with a RM200 remote. I can access everything individually (remote/mouse, remote/pad, volume control) but when I cat all three conf files into /etc/lircd.conf only the first one works. I've tried putting each of them first and it's the same every time.

Someone else must have encoutered and solved this problem.

Thanks.

James said...

I found the solution to the problem I posted yesterday regarding only the first remote listed in /etc/lircd.conf being recognized. There is a good post at http://codeka.com/forums/viewtopic.php?f=3&t=60&start=0&st=0&sk=t&sd=a&view=print which explains and solves the problem.

The short story is to add a toggle_bit_mask for every device (even if it is 0x0).

BTW, the lircd.conf file given there works for a RM200 remote as long as you s/101$/201/ in lines 63 to 107.

Also, if you have an Antec Fusion case, the last section works for the case knob if you s/1EE/2EE/ .

Hope this helps someone out there.

barrras said...

I have the same problem of matte99. My case is thermaltake dh101 and my distro is mythbuntu-9.0.4.
Thearrow keys and the numeric keys don't work.

bye

SteveB said...

Heya,
I have the Antec Fusion Remote running on Fedora Core 10 (kernel 2.6.27.24-170.2.68.fc10.i686) and have compiled LIRC ver 0.8.6
The compile runs without errors and loads the drivers as I'd expect however when it comes time to test, I get the following error - any help would be awesome!

[root@ace ~]# /usr/local/sbin/lircd --driver=default --device=/dev/lirc0 --pidfile=/var/run/lirc0.pid --listen=8765
lircd: could not assign address to socket
lircd: No such file or directory

hsmade said...

SteveB: I had that as well on ubuntu 904.. After a strace I found it was trying to setup a socket in /var/run/lirc/, which doesn't exist.. Just do a mkdir /var/run/lirc and try again ;)

brad said...

Hi all,

I hope someone reads this. I'm going mad, mad I tell you, getting this to work. I had this all working beautifully on Ubuntu 8.10 (actually Mythbuntu) and then couldn't leave it alone and upgraded to 9.04 (for the promise of faster boot times - which turns out to be about 2 seconds). After the upgrade, my remote no longer worked.

Anyway, I had followed all of the instructions here and at codeka before and got it working (with a lot of work) but now I cannot.

Basically once I get to step 4 things start to go wrong. Firstly, if I apt-get remove lirc, it also takes all of my Mythbuntu stuff which is (stupidly) dependent on lirc. If I remove it, it gets installed back when I reinstall the Mythbuntu stuff. I've tried it with and without the Mythbuntu packages so that doesn't seem to be the problem. I download the latest lirc from CVS, run autogen.sh and setup.sh, make and make install. Everything seems OK so far. Next I try modprobe lirc_imon and nothing seems to happen. I do get a warning WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release.
WARNING: All config files need .conf: /etc/modprobe.d/oss-compat, it will be ignored in a future release.
but this seems to be unimportant from my reading. When I look in /dev, there is no lcd0, lcd1, lirc0, or lirc1.

The stuff about moving files and creating links for Ubuntu seems out of date for 9.04 as the directory /lib/modules/2.6.28-13-generic/ubuntu is not there. There is a directory that had a bunch of lirc_*.ko files at /lib/modules/2.6.28-13-generic/updates/dkms. I successfully created a link to this directory for lirc_imon.ko but the modprobe command still does nothing.

This really has been frustrating and is causing a severe reduction in the WAF of my MythTV. If anyone can help I will be extremely grateful.

Some days I regret my linux habit. :(

adsense said...

@Brad, I had the same issue when I tried to upgrade to Mythbuntu 9.04, so I reverted back to 8.10... and still had the same problem! Very frustrating.

Then I realised that the lirc driver in CVS had been updated to 0.8.6. I reverted back to 0.8.5, and everything started working again. Yay!

The 0.8.6 lirc driver shows the following behaviours on my Antec Fusion Remote box with Soundgraph iMON (usb=15c2:0038) display:
1) Creates only /dev/lirc0; does not create /dev/lirc1
2) Hence can start only one instance of /usr/local/sbin/lircd
3) The Left/Right/Up/Down pad moves the mouse and does not send keystroke events to MythTV.

This behaviour feels as though it is by design, and is probably configurable. However, I could not find a way to change its behaviour. I am currently hoping that the next version is more MythTV-friendly.

I did not try to get the LCD working under 9.04, because of the problems I encountered with the remote control.

Also, the "All config files need .conf" messages are a damnably obscure way of telling you that future versions of modprobe will require that configuration files must have a ".conf" extension, or they will be ignored. Simply rename these files in /etc/modprobe.d/ to have a ".conf" extension, and these messages will go away.

I agree about the Linux habit; generally, though, it gives me a great deal of satisfaction, and a lot of confidence that I actually understand and can trust my computer's behaviour :-)

brad said...

Thanks adsense, your advice was helpful and helped me understand a bit more about what was going on. Thanks also to Ron who emailed me with some very useful info.

My problem was basically that I had updated my system so many times that I had so many different versions of lirc installed that it was getting very hard to sort it out. I was experiencing a few other instabilities so ended up doing a fresh install of Mythbuntu 9.04. I then followed the advice at www.avenard.org/media (under patches) and irw was happily displaying all of my keypresses. From there it was just a matter of setting up a .lirc/mythtv file and everything was working again.

Don't be afraid to try getting the LCD working. If you can get the remote working, the LCD is always the easy part after that. The instructions that Ron gives are still valid, although the ronfrazier.net in the middle of the URLs for the patches needs to be removed.

Anton said...

Hi all!
Thanks for your work, research and comments.
But it all seems to be so had to get to work with the latest kernel (2.6.28-13) and the latest lirc from cvs. The same story as for brad - no /dev/lircxx neither /dev/lcdxx
Avenard' patches for 0.8.4a didn't compile for me (but they worked on 28-11 kernel like a charm).
I'm so tired to reinstall Ubuntu. If somebody could help me to get this work!

Michael said...

The link to the config file lircd-pad.conf didn't work. I think this should be the new link:
http://www.ronfrazier.net/mythtv/0.21/downloads/lircd-pad.conf