Re: Who mounts sysfs?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 25, 2009 at 05:57:51PM +0100, Will Newton wrote:
> On Thu, Jun 25, 2009 at 5:28 PM, Greg KH<greg@xxxxxxxxx> wrote:
> > On Thu, Jun 25, 2009 at 04:53:07PM +0100, Will Newton wrote:
> >> On Thu, Jun 25, 2009 at 4:18 PM, Greg KH<greg@xxxxxxxxx> wrote:
> >> > On Thu, Jun 25, 2009 at 11:36:29AM +0100, Will Newton wrote:
> >> >> Hi all,
> >> >>
> >> >> I'm trying to get the libertas driver working on an embedded
> >> >> development board and I've run into what looks like a sysfs problem.
> >> >> Although I'm actually using the BusyBox mdev hotplug helper rather
> >> >> than udev, I hope this is the right list to be asking this question.
> >> >
> >> > For busybox questions, not really, but we reserve the right to poke fun
> >> > at you for using mdev :)
> >> >
> >> >> What appears to be happening is I get my initramfs extracted, so I
> >> >> have access to the various necessary files including the hotplug
> >> >> helper and my firmware files. This step is taken care of by the rootfs
> >> >> initcall level. Then the driver initcalls are run, including the
> >> >> libertas setup routines, which call request_firmware. request_firmware
> >> >> fires off a uevent and calls the hotplug helper. The hotplug helper
> >> >> looks for the /sys/class/firmware entry for the libertas device, but
> >> >> it doesn't find one because I don't appear to have a mounted sysfs on
> >> >> the /sys mountpoint.
> >> >>
> >> >> So my question is: who should be mounting sysfs here? init will mount
> >> >> sysfs, but is run much later than the device initcalls.
> >> >
> >> > You need to mount sysfs as one of the first things to have happen.  Look
> >> > at your distro's startup scripts as an example of this.
> >>
> >> Yes, I want my sysfs mounted as early as possible, but userspace (via
> >> /sbin/init) does not get a chance to do this until after the device
> >> initcalls have been run. I'm interested to know if there's a standard
> >> way to get sysfs mounted before /sbin/init is run.
> >
> > There isn't.
> 
> Ok, so we cannot expect sysfs to be mounted on /sys before /sbin/init
> has been run?

How would that possibly happen?

> What do we do with callers of request_firmware prior to /sbin/init
> running?

They would fail, as no userspace filesystems would be mounted yet to
provide the firmware in the firstplace.

> Should drivers that require firmware always be modules?

Depends on your system setup :)

You could use an initramfs to solve this problem :)

> I would rather build in my drivers monolithically if possible for ease
> of deployment and boot speed.
> 
> Is there some non-standard other way of mounting sysfs people are
> using in this situation?

Possibly an initramfs?

Or just replay the uevents when init starts up, after you have mounted
sysfs, and other filesystems, so that the firmware can be properly
loaded.  That is what almost all distros do.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux