LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   udev not creating usb/hiddev* nodes (http://www.linuxquestions.org/questions/slackware-14/udev-not-creating-usb-hiddev%2A-nodes-848132/)

dguy 12-03-2010 07:29 AM

udev not creating usb/hiddev* nodes
 
Are there any prerequisites which much be met in order for udev to create /dev/usb/hiddev* nodes?

I have two Slack 13.0 systems, each connected to a APC UPS via USB, one of which creates a hiddev0 node and the other doesn't. apcupsd can't find the UPS unless this node is present.

The "working" system has been stable in its current configuration for so long that I honestly can't remember if I had to tweak anything in this regard. I've verified that it doesn't use any local udev rules to create this node, and to the best of my knowledge there are no external scripts or processes which would create it either.

The non-working system has a similar configuration - no local rules and/or scripts which touch usb devices or nodes.

I'm stumped, to put it plainly. :scratch:

Any suggestions?

catkin 12-03-2010 07:47 AM

Are both kernels identical? udev will only create the files when the kernel reports finding the devices (the information may come via HAL) so any link in that chain could be causing the problem. One possibility is that the system that does not create the /dev/usb/hiddev* files does not have the necessary drivers or modules so the kernel does not identify the device. Have you compared the /var/log/messages and dmesg files on both systems? The hiddev device should be reported during USB bus probing.

colucix 12-03-2010 07:55 AM

More information here: http://www.apcupsd.com/manual/manual...ion-and-driver.

allend 12-03-2010 08:12 AM

Is the hardware platform the same for the two systems?
It may be that the non-working system needs the ohci-hcd kernel module rather than the default uhci-hcd.
Try 'modprobe -r uhci-hcd' then 'modprobe ohci-hcd'. If it works then change /etc/modprobe.d/usb-controller.conf to make it permanent.

dguy 12-03-2010 05:36 PM

[much troubleshooting & exploring later]

I had previous read through the Verify Device Detection and Driver section of the apcupsd manual posted above, but I missed a key item. The non-working system does not have the hiddev driver.

I run a custom build of 2.6.29.6 on the working system, where USB_HIDDEV is enabled. The canned "huge" kernel on the non-working system has USB_HIDDEV disabled. Apparently "huge" could stand to be a little ... huge-er ... in my case.

dguy 12-03-2010 06:46 PM

Solved - adding CONFIG_USB_HIDDEV=Y to the kernel's config was all that was needed. Thanks for the input everyone!

camorri 03-15-2011 12:05 PM

Hmmm, I remember seeing this thread a while ago. This means re-compiling and installing the kernel. The reason I have not done that, yet, is I have the module loaded. An I to believe the module probed fails, and compiled into the kernel it works???

I did find another issue. In the online doc, it states

Quote:

--enable-usb Turns on generation of the USB driver code. By default this is disabled.
It looks to me as if usb is not the default when you compile the daemon. I have since re-compiled the kernel with this option turned on; ./configure --enable-usb then make, and make install.

I'm testing that now, so far, no difference.


All times are GMT -5. The time now is 02:40 AM.