Red Hat Bugzilla – Bug 55332
Hotplug fails to load drivers for usb devices at boot time
Last modified: 2007-04-18 12:37:51 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.75 [en] (Win98; U)
Description of problem:
On a fresh installation of RH 72., upon booting, hotplug fails to load driver for Epson Photo Stylist 780 printer. Turning the printer off and
back on or unplugging and replugging the usb cable allows the driver to be seen. Kernels 2.4.7-10, 2.4.9-7 and rawhide kernel 2.4.12-0.1
do not help. Installing the latest hotplug module from rawhide also does not work.
This worked with RH 7.1
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install rh 7.2
2. boot with usb device on
3. check with usb device driver not loaded.
Actual Results: usb device driver not loaded
Expected Results: driver loaded
Anything in /var/log/messages indicating the device has been run through hotplug?
I believe this is happening because the hotplug package is missing the
/etc/init.d/hotplug initialisation script.
As a temporary work-around (that solved a very similar problem for me), you can
add the following line:
to your /etc/rc.local
teg, I've just been debugging my own example where hotplug was failing to load
modules at boot time. I'm not sure if it's the same problem the user here was
having, but I traced my own problems down to the code
elif find $MODULE_DIR -name $MODULE.o >/dev/null 2>&1 &&
! $MODPROBE $MODULE >/dev/null 2>&1 ; then
This fails for me because "find" is in /usr/bin/find, and I've got /usr mounted
on a different filesystem. That's a valid config, but usb is initialised very
early (to cope with usb keyboards and mice), and /usr is not yet mounted when
usb first starts up so the find always fails.
I've just removed the "find ... &&" clause entirely and usb startup now works
perfectly. I also added a "-q" to the modprobe command to avoid too much noise
if we do end up trying to load a non-existant module.
btw, on a slight tangent, the hotplug.functions script has another bug which
made debugging a bit harder: the conditional mesg() declaration at the top uses
illegal bash syntax.
# for diagnostics
if [ -t -o ! -x /usr/bin/logger ];
is an invalid test --- "-t" takes a file descriptor argument, so I assume "-t 1"
is correct here. The test fails unconditionally so debugging is forced to use
syslog debugging in all cases, which is not what we want when trying to debug
hotplug during boot when syslog has not started yet.
Is this still an issue with Skipjack2 or newer?
OK, find is no longer used and I coldplug successfully from a separate /usr
myself with hotplug-2002_04_1-3.
Works fine on a laptop here with separate /usr running 0409.1.