From: Benton R. <be...@pa...> - 2007-04-09 17:39:06
|
Hello, all. I am trying to get the CommandIR mini (http://commandir.com) device to work with LIRC. It is built specifically for LIRC. I am trying to get the CommandIR mini to work with LIRC on a fully-updated Fedora Core 6 system. Here is a short summary of my problem: Firstly, I can get the "commandir" kernel module to build, but not to install, because my system has no /dev/usb directory -- and the Makefile tries to create a device file called /dev/usb/commandir. If I manually make /dev/usb myself, the install process works OK, and I can even load the kernel module, and successfully start lircd. However, when I try to run "irw" or "mode2" to receive signals, lircd crashes and exits with the following message: "could not get file information for /dev/lirc". This device file does not exist! It seems there's no /dev/lirc created when I load the commandir module. By contrast, when I connect a Micro$0ft MCE USB receiver, "lirc_mceusb2" is loaded, and /dev/lirc0 and /dev/lic are created just fine. Why doesn't the commandir module do the same? I am using lirc-0.8.2-66_cvs20070301.fc6.at.rpm from ATrpms repository. Do I need to build LIRC from scratch to support the CommandIR mini, even though the CommandIR kernel module seems to load OK? Thanks in advance, -benton ------------- Benton Roberts be...@pa... PGP Key ID 0x133E098F TECHNICAL DETAIL: Here are three command-line output listings that provide details for the above assertions: #1: I can get the kernel module to build, but not to install, because my system has no /dev/usb directory. ==================================== [root@media commandir-1.4.2]# pwd /usr/local/src/commandir-1.4.2 [root@media commandir-1.4.2]# make make -C /lib/modules/2.6.20-1.2933.fc6/build SUBDIRS=/usr/local/src/commandir-1.4.2 modules make[1]: Entering directory `/usr/src/kernels/2.6.20-1.2933.fc6-i686' CC [M] /usr/local/src/commandir-1.4.2/commandir.o /usr/local/src/commandir-1.4.2/commandir.c: In function \u2018write_core\u2019: /usr/local/src/commandir-1.4.2/commandir.c:1421: warning: passing argument 6 of \u2018usb_fill_bulk_urb\u2019 from incompatible pointer type Building modules, stage 2. MODPOST 1 modules CC /usr/local/src/commandir-1.4.2/commandir.mod.o LD [M] /usr/local/src/commandir-1.4.2/commandir.ko make[1]: Leaving directory `/usr/src/kernels/2.6.20-1.2933.fc6-i686' [root@media commandir-1.4.2]# make install make -C /lib/modules/2.6.20-1.2933.fc6/build SUBDIRS=/usr/local/src/commandir-1.4.2 modules_install make[1]: Entering directory `/usr/src/kernels/2.6.20-1.2933.fc6-i686' INSTALL /usr/local/src/commandir-1.4.2/commandir.ko DEPMOD 2.6.20-1.2933.fc6 make[1]: Leaving directory `/usr/src/kernels/2.6.20-1.2933.fc6-i686' if [[ -e /dev/usb/commandir ]]; then exit; else mknod /dev/usb/commandir c 180 192; fi mknod: `/dev/usb/commandir': No such file or directory make: *** [install] Error 1 [root@media dev]# ll /dev/usb* crw------- 1 root root 253, 0 Apr 5 22:01 /dev/usbdev1.1_ep00 crw------- 1 root root 253, 1 Apr 5 22:01 /dev/usbdev1.1_ep81 crw------- 1 root root 253, 10 Apr 5 22:01 /dev/usbdev1.3_ep00 crw------- 1 root root 253, 11 Apr 5 22:01 /dev/usbdev1.3_ep81 crw------- 1 root root 253, 12 Apr 5 22:01 /dev/usbdev1.3_ep82 crw------- 1 root root 253, 7 Apr 5 23:08 /dev/usbdev1.4_ep00 crw------- 1 root root 253, 9 Apr 5 23:57 /dev/usbdev1.4_ep02 crw------- 1 root root 253, 8 Apr 5 23:57 /dev/usbdev1.4_ep81 crw------- 1 root root 253, 2 Apr 5 22:01 /dev/usbdev2.1_ep00 crw------- 1 root root 253, 3 Apr 5 22:01 /dev/usbdev2.1_ep81 crw------- 1 root root 253, 4 Apr 5 22:01 /dev/usbdev2.4_ep00 crw------- 1 root root 253, 5 Apr 5 22:01 /dev/usbdev2.4_ep01 crw------- 1 root root 253, 6 Apr 5 22:01 /dev/usbdev2.4_ep82 ==================================== #2: If I manually make /dev/usb myself, the install process works OK, and I can even load the kernel module. ==================================== [root@media commandir-1.4.2]# mkdir /dev/usb [root@media commandir-1.4.2]# make install make -C /lib/modules/2.6.20-1.2933.fc6/build SUBDIRS=/usr/local/src/commandir-1.4.2 modules_install make[1]: Entering directory `/usr/src/kernels/2.6.20-1.2933.fc6-i686' INSTALL /usr/local/src/commandir-1.4.2/commandir.ko DEPMOD 2.6.20-1.2933.fc6 make[1]: Leaving directory `/usr/src/kernels/2.6.20-1.2933.fc6-i686' if [[ -e /dev/usb/commandir ]]; then exit; else mknod /dev/usb/commandir c 180 192; fi [root@media commandir-1.4.2]# ll /dev/usb/commandir crw-r--r-- 1 root root 180, 192 Apr 5 23:49 /dev/usb/commandir [root@media commandir-1.4.2]# modprobe commandir [root@media commandir-1.4.2]# tail -7 /var/log/messages kernel: /usr/local/src/commandir-1.4.2/commandir.c: CommandIR USB device now attached to commandir0 kernel: /usr/local/src/commandir-1.4.2/commandir.c: commandir0 reset kernel: /usr/local/src/commandir-1.4.2/commandir.c: COMMANDIR0: kernel: TX Enabled: 1, 2, 3, 4 kernel: RX: commandir0 kernel: LCD: commandir0 kernel: usbcore: registered new interface driver commandir ==================================== #3: Then I can start lircd, but when I try to run irw or mode2 to receive signals, lircd crashes and exits with the following message: ==================================== [root@media commandir-1.4.2]# tail -4 /var/log/messages lircd-0.8.2-CVS[5382]: accepted new client on /dev/lircd lircd-0.8.2-CVS[5382]: could not get file information for /dev/lirc lircd-0.8.2-CVS[5382]: default_init(): No such file or directory lircd-0.8.2-CVS[5382]: caught signal [root@media dev]# service lirc restart ... [root@media dev]# mode2 mode2: error opening /dev/lirc mode2: No such file or directory [root@media dev]# lsmod | grep command commandir 34488 0 ==================================== |
From: Benton R. <be...@pa...> - 2007-04-18 19:57:57
|
Hello again, everyone. Just thought I'd follow up on my own (now resolved) problem, in case anyone else encounters something similar. The CommandIR mini device works quite well so far, though here's what I had to do to get it working: Benton Roberts wrote: > I can get the "commandir" kernel module to build, but not to > install, because my system has no /dev/usb directory -- and the Makefile > tries to create a device file called /dev/usb/commandir. This is indeed a problem with their web site's installation instructions, which need to be updated to cover systems with this /dev subsystem. That said, the workaround is trivial, as mentioned above: > If I manually > make /dev/usb myself, the install process works OK, and I can even load > the kernel module, and successfully start lircd. But don't start lircd yet! See the following... > However, when I try to > run "irw" or "mode2" to receive signals, lircd crashes and exits with > the following message: "could not get file information for /dev/lirc". > This device file does not exist! It seems there's no /dev/lirc created > when I load the commandir module. The /dev/lirc device should have been created by lircd when it started. The reason that didn't happen was that in addition to the 'commandir' module, the lirc_cmdir module must also be loaded before lircd starts. The lirc_cmdir module was included with the lircd RPM I got from ATrpms, and since the device is built specifically for LIRC, I expect it's in the source distribution as well. So the problem was really with the product's documentation, and beyond that, I'm happy with it so far. The receiver is sensitive enough, and it's reliably controlling three different devices with three of its four emitters. It's not cheap, but it supports one IR input and four IR outputs, in one tiny USB device, driven by one instance of lircd. The service from the company was also quite helpful and responsive -- that's how I overcame the difficulties that started this thread. They also have made a commitment to keeping their driver open-source, and current with LIRC. So overall, I would recommend the device to any competent linux user who requires more than one or two transmitters. -benton ------------- Benton Roberts be...@pa... PGP Key ID 0x133E098F |