-   Slackware (
-   -   udev not creating usb/hiddev* nodes (

dguy 12-03-2010 06: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 06: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 06:55 AM

More information here:

allend 12-03-2010 07: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 04: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 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 05: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 11:05 AM

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


--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 08:42 PM.