USB key troubles

Kay Sievers kay.sievers at vrfy.org
Sun Oct 9 07:57:46 PDT 2005


On Sun, Oct 09, 2005 at 04:12:09PM +0200, Vlaaad wrote:
> Le samedi 08 octobre 2005 à 21:39 +0200, Vlaaad a écrit :
> > Le vendredi 07 octobre 2005 à 17:42 +0200, Kay Sievers a écrit :
> > > On Fri, Oct 07, 2005 at 03:47:55PM +0200, Vlaaad wrote:
> > > > Le jeudi 06 octobre 2005 à 16:35 -0700, Carlo J. Calica a écrit : 
> > > > > Vlaaad wrote:
> > > > > > 
> > > > > > I'm trying to get gnome-volume-manager 1.5.1 working fully for the
> > > > > > distro I contribute to (Source Mage). All seems to work except some
> > > > > > troubles with USB keys and I think hald is guilty, or at least it is not
> > > > > > well configured on my box. I spent hours and hours and I didn't manage
> > > > > > to solve it, I so request some help if someone has some extra free
> > > > > > time...
> > > > > > 
> > > > > I'm doing the same for a distro I contribute to (GoboLinux).  Udev doesn't
> > > > > automatically call /etc/dev.d or /etc/hotplug.d.  You need to add some
> > > > > rules similar to this:
> > > > > 
> > > > > calica at office ~]cat /etc/udev/rules.d/70-hotplugd.rules
> > > > > # do not call hotplug.d and dev.d for "drivers" and "module" events
> > > > > SUBSYSTEM=="drivers",  OPTIONS="last_rule"
> > > > > SUBSYSTEM=="module",   OPTIONS="last_rule"
> > > > > 
> > > > > # compatibility support for the obsolete hotplug.d and dev.d directories
> > > > > ENV{UDEVD_EVENT}=="1",  RUN+="/sbin/udev_run_hotplugd"
> > > > > RUN+="/sbin/udev_run_devd"
> > > > > 
> > > > > calica at office ~]
> > > > > 
> > > > Ok, I had the last two rules but not the first two ones. I added them.
> > > > 
> > > > > 
> > > > > Also, keep in mind udev is now using a netlink socket rather
> > > > > than /sbin/hotplug to listen to events.  That means you should remove udev
> > > > > from /etc/hotplug.d/default
> > > > > 
> > > > Good to know, I was not aware of that.
> > > > 
> > > > Well thanks a lot for your help, but despite of adding the rules +
> > > > cleaning 10-udev.hotplug from /etc/hotplug.d, I see no difference... :-/
> > > > 
> > > > Here are some more informations that can be useful :
> > > > 
> > > > $ ll /etc/hotplug.d/default/
> > > > total 4
> > > > lrwxrwxrwx  1 root root   24 2005-10-07 13:42 20-hal.hotplug
> > > > -> /usr/libexec/hal.hotplug
> > > > -rwxr-xr-x  1 root root 2931 2005-10-07 13:33 default.hotplug
> > > > 
> > > > So if I well understood, hal communicate with udev via the execution
> > > > of /etc/hotplug.d/default, who is launched
> > > > with /sbin/udev_run_hotplugd ?
> > > > 
> > > > I have nothing in /etc/dev.d/ except that :
> > > > 
> > > > $ ll /etc/dev.d/snd/controlC0/alsa.dev
> > > > -rwxr-xr-x  1 root root 46 2005-09-15
> > > > 01:19 /etc/dev.d/snd/controlC0/alsa.dev
> > > > 
> > > > Am I supposed to have something in there ?
> > > > 
> > > > Thanks again for your help.
> > > 
> > > Kernel events are received by udev which handles the event and sends it
> > > to HAL by calling hal.hotplug. The use of the multiplexing directories
> > > in udev or the use of run_directory is not recommended and should be
> > > avoided.
> > > Every hotplug user should plug into the event process with a
> > > matching rule. So at best remove _all_ the old dev.d/ and hotplug.d/ crap
> > > and just add: RUN+="/usr/sbin/hal.hotplug" or something like this.
> > > 
> > WONDERFUL !!!! That works !!! USB key, digital camera, cdroms, all is
> > ok !!
> > Thank you ! Thank you !! 
> > I spent weeks and weeks on that, you're my hero !! ;-)
> > I bless you for ten generations !!
> > 
> 
> After trying to get my modules autoloaded, I realized thanks to [0] that
> finally, my main problem was that udev 0.70 Makefile was bugged ! It
> doesn't install well /sbin/udev_run_hotplugd. After correcting that,
> using this works as well as what Kay suggested. 
> However, Kay seems to say that it not recommended to use it ? If I want
> to have both modules autoloading and HAL working well, I have thus two
> solutions :
> 
> RUN+="/usr/sbin/hal.hotplug"
> RUN+="/etc/hotplug.d/default/default.hotplug"
> 
> or the old one :
> 
> ENV{UDEVD_EVENT}=="1",  RUN+="/sbin/udev_run_hotplugd"
> 
> I am curious to know which one do you recommend and especially why ?

I recommend plugging in HAL without any indirection:
  RUN+="/usr/sbin/hal.hotplug"

And further I recommend not installing udev_run_{hotplug,dev}d at all
and deleting /etc/{hotplug,dev}.d completely. :)
If there are still users, they should be converted to explicit rules.

Kay


More information about the hal mailing list