Hi,

> I've compiled everything I though was necessary as a module:
> hotplug2 - 0.9-1
> kmod-atm - 2.6.19.2-brcm47xx-1
> kmod-usb-core - 2.6.19.2-brcm47xx-1
> kmod-usb-speedtouch - 2.6.19.2-brcm47xx-1
> kmod-usb-uhci - 2.6.19.2-brcm47xx-1
> udevtrigger - 106-1

do you have
CONFIG_FW_LOADER=y
in your kernel .config?

> First, in /etc/init.d/boot there are some lines that starts hotplug2 as 
> a daemon at boot time;
> /sbin/hotplug2 --persistent --max-children 1 &

It could be initialized too late.  For example, the hotplug events
could occur before the root filesystem is mounted (in which case
you need to setup your initrd or whatever to handle this).

>                  echo 1 > "/sys$DEVPATH/loading"

shouldn't this be /sys/$DEVPATH/loading ?  Seems safer.

>                  cp "/lib/firmware/$FIRMWARE" "/sys$DEVPATH/data"

Likewise.

>                  echo 0 > "/sys$DEVPATH/loading"

Likewise.

> So everything looks fine, except the files in /sys are not created and 
> the firmware is not copied there.
> /sys/class/firmware/1-2:1.0/loading - does not exists

This sounds like a kernel misconfiguration.  However, here is another
possibility: the kernel spawns a thread to run hotplug.  If this thread
spawns a child process which runs your hotplug script, and exits before
the child has finished, then the firmware file could be removed before
the child gets around to manipulating it.  Seems unlikely to me, because
the parent should wait for the child to finish before exiting, unless
you did something funky.

> I guess these rules should be responsible for loading the firmware, but 
> I don't see how they are doing it. I'm inexperienced with both udev and 
> hotplug2, so I don't know how these rules should look like.

They're not doing it.  Nowadays firmware loading is mostly done by
udev calling firmware_helper.

Ciao,

Duncan.

Liste de diffusion modem ALCATEL SpeedTouch USB
Pour se désinscrire : mailto:[EMAIL PROTECTED]

        

Reply via email to