I've been tearing my hair out for days, and Googled for hours on this one! Apparently that's par for the course with LIRC.(This is very long and the LIRC stuff probably of no interest/comprehension unless you have used it.) My MAIN question here is about the udev part, which I've never touched before, and why the /dev files aren't getting created.

Anyway, I just got an ATI Remote Wonder RF/USB remote. I plugged it in, and right off it's detected as:input: ATI/X10 RF USB Remote Control(0bc7,0004) as /class/input/input4

and the module "ati_remote" is automatically loaded. It works as a mouse replacement (up to 60' away!) immediately, no configuration required whatsoever, and the a-c letters and 0-9 characters type in a terminal!

My goal however, is to run XMMS from another room. I've read I can use xmodmap and map some of the keys to run xmms, but the way I understand it, I would have to make sure that xmms was the selected window before I left the computer for this to work, and I don't want to worry about that. What I'm trying now is to setup LIRC and the lirc-xmms plugin. I've compiled them both from source, lirc-0.8.2 and lirc-xmms-plugin-1.4. Next I 1. Installed a proper /etc/lircd.conf for my ATI remote (part#5000015900A)2. Copied ### lirc dev entriesKERNEL=="lirc[0-9]*", NAME="lirc/%n", MODE="0666", SYMLINK+="%k"to the end of /etc/udev/rules.d/udev.rules3. Edited an /etc/rc.d/rc.lircd file which starts the daemon lircd:#!/bin/sh# Start/stop/restart the LIRC daemon:

## To use this daemon, you need to create a file called /etc/lircd.conf# which shows the mapping of IR signals to buttons on your remote. Many# remote controls have already been mapped and can be found in # /usr/share/lirc/remotes. Just copy the file for your remote to # /etc/lircd.conf. Install the lirc-remotes packages to get config files# for remotes not covered by the base lirc package. If your remote isn't# in lirc-remotes, you can create a new config using the 'irrecord' tool.# See the man page for more info.## You will also need a file mapping IR signals from your remote control to# applications. This file can be located at /etc/lircrc or $HOME/.lircrc.# A simple one has been included at /etc/lircrc for xine and xmms to get# you started. You'll need a xine package that's been compiled with the# --enable-lirc option (not the default Slackware package) and for xmms# you'll need the lirc-xmms-plugin which works with the default Slackware# xmms.## I've only worked with xmms and xine on a laptop IrDA port, so there# are probably many areas for improvement in this package. I had # problems compiling under 2.4 so this package is 2.6 only (from /extra).# If you have suggestions for improving this package, send me a note,# thanks!## cjm <cj@meidlinger.org> 28 Nov 2006 initial version# #

# since this service conflicts with IrDA services, we'll load and # unload modules here in the rc script. If you have a dedicated IR # receiver, you can load modules in /etc/rc.d/rc.modules and not # worry about loading/unloading here.

Now I tried both# /etc/rc.d/rc.udev restartand rebooting. I am starting lircd with # /etc/rc.d/rc.lircd nodaemon (I guess it should start on it's own during bootup if the remote is plugged in). I get the message:

lircd: lircd(atiusb) ready

However, the device files /dev/lirc0 and /dev/lirc/0 aren't getting made. So, when I start irw, a test app. which calls lircd, I get the following message from lircd, which then dies:

lircd: accepted new client on /dev/lircdlircd: could not get file information for /dev/lirc/0lircd: default_init(): Not a directorylircd: caught signal/etc/rc.d/rc.lircd: line 120: 4386 Terminated /usr/local/sbin/lircd --nodaemon --device=/dev/lirc/0

If I start mode2, another test app. mode2 gives me this message before dieing:

mode2: error opening /dev/lirc/0mode2: Not a directory

Sooooo, after all that, any ideas why /dev/lirc/0 doesn't get created??? Thanks!

I guess that's what I get for hacking pieces from different rc.lircd's together. That whole make_devices section I had found somewhere else & hoped it would help. I also didn't quite understand the syntax, as I thought it was running that code already in my posted version!

That gives Exactly the same results! One thing I should mention, the original rc.lircd (I got it from a Slackware 11 package on LinuxPackages.net) did not have the make_devices section at all.

I just looked in that package's udev rules and it has:KERNEL="lirc[0-9]*", NAME="lirc%n"KERNEL="lirc0", SYMLINK="lirc"

I did not have the second line. I put that in my udev.rules and restarted udev. Now a /dev/lirc0 gets created!OK, I checked the rc.lircd from that package, and it points lircd to open with:

/usr/sbin/lircd --device=/dev/lirc0

I adjusted my rc.lircd back to this as well (and removed the make_devices section). Tested, and......Success!!!!!

It looks like the Slackware package probably would have worked, that's what I tried before compiling from source. It had the correct udev rules, but the documentation is so poor I didn't know I needed to restart udev to make it work!!!

It WAS fixed and working blissfully great..... for all of 10 minutes! Then I decided I wanted more than 30' range so I unplugged the USB receiver to solder on a longer antenna. I plugged it back in, and nothing I can do will make it work again! I've tried restarting udev, rebooted, plugged in the receiver before & after rebootI continually get the following results when I try to access lircd:

# /etc/rc.d/rc.lircd nodaemonlircd: lircd(atiusb) readylircd: accepted new client on /dev/lircdlircd: could not get file information for /dev/lirc0lircd: default_init(): No such file or directorylircd: caught signal/etc/rc.d/rc.lircd: line 124: 3638 Terminated /usr/local/sbin/lircd --nodaemon --device=/dev/lirc0

The node /dev/lircd (socket) is getting created, but the nodes /dev/lirc and /dev/lirc0 are not. I tried putting the make_dev section back in the /etc/rc.d/rd.lircd, and now the nodes DO indeed get created, but I still get the above error.I'll post a question when I can figure out what to ask even!

No, I just added a few more inches to it's external tail. I plugged it in and dmesg shows it is still detected properly and the kernel modules lirc_dev and lirc_atiusb still load and give the same messages. I think it's still something with udev.

Well, your visions are not unfounded! I did pop it open first, and if the original wire had not been hot-melted for strain relief, I would have soldered right to the board.

But more importantly, WOOOOT! It's working again! Even better, I think I know why! After more googling, I found the kernel module which automatically loads and makes it work right off the bat as a remote mouse & keypad needs to be removed as it interferes with lirc's lirc_dev and lirc_atiusb. I have since plugged & unplugged it several times and it's still working great. I plan to do a nicer writeup and maybe put it in Vector's howto, but definitely LIRC's.

Thanks for the help here, and Yes, the range is better w/ a longer antenna (not by much though).