From: Greg KH <greg@kroah.com>
To: linux-hotplug@vger.kernel.org
Subject: Re: Who mounts sysfs?
Date: Thu, 25 Jun 2009 18:29:00 +0000 [thread overview]
Message-ID: <20090625182900.GB5760@kroah.com> (raw)
In-Reply-To: <87a5b0800906250336k2e922b05pc9555f78a39d7386@mail.gmail.com>
On Thu, Jun 25, 2009 at 07:06:15PM +0100, Will Newton wrote:
> On Thu, Jun 25, 2009 at 6:13 PM, Greg KH<greg@kroah.com> wrote:
> > 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@kroah.com> 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@kroah.com> 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.
>
> My initramfs has the firmware in it. I thought this was one of the
> reasons one might use an initramfs, to load drivers and firmware for
> your root device e.g. network devices for nfs root.
Great, then mount /sys in your initramfs, and it should be all fine.
Have you tried that?
> > 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.
>
> Can udev help with this? Have the distros got a standard way of doing
> this? It sounds slightly complex...
Yes, udev provides a standard way to do this, using 'udevadm trigger'.
Again, look at your desktop's distro's startup scripts for an example of
this.
thanks,
greg k-h
next prev parent reply other threads:[~2009-06-25 18:29 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-25 10:36 Who mounts sysfs? Will Newton
2009-06-25 15:18 ` Greg KH
2009-06-25 15:53 ` Will Newton
2009-06-25 16:28 ` Greg KH
2009-06-25 16:57 ` Will Newton
2009-06-25 17:13 ` Greg KH
2009-06-25 18:06 ` Will Newton
2009-06-25 18:29 ` Greg KH [this message]
2009-06-26 0:12 ` Kay Sievers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090625182900.GB5760@kroah.com \
--to=greg@kroah.com \
--cc=linux-hotplug@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).