Hi all,
I currently have a problem with a driver that loads firmware from
userland. The boot process happens in this order:
1. Extract initramfs
2. Load drivers
3. Run init
Unfortunately it appears that step 2 is calling the hotplug helper
which tries to load firmware via sysfs, but sysfs is not mounted until
I have run init so the driver fails to initialise. What is the
recommended way to avoid this situation? Do I have to somehow build
the firmware into the kernel or can I get sysfs mounted before drivers
begin loading?
Thanks,
Will Newton wrote:
> Hi all,
>
> I currently have a problem with a driver that loads firmware from
> userland. The boot process happens in this order:
>
> 1. Extract initramfs
> 2. Load drivers
> 3. Run init
>
> Unfortunately it appears that step 2 is calling the hotplug helper
> which tries to load firmware via sysfs, but sysfs is not mounted until
> I have run init so the driver fails to initialise. What is the
> recommended way to avoid this situation? Do I have to somehow build
> the firmware into the kernel or can I get sysfs mounted before drivers
> begin loading?
you did not say what distro and kernel, but I would expect
sysfs is mounted before step 2 by the intrd. this is what I
see in a rhel 4.3 I am testing.
what you might be really seeing is
http://bugzilla.kernel.org/show_bug.cgi?id=13178
which I am currently debugging.
jim
On Fri, Jun 19, 2009 at 2:26 PM, jim owens<[email protected]> wrote:
> Will Newton wrote:
>>
>> Hi all,
>>
>> I currently have a problem with a driver that loads firmware from
>> userland. The boot process happens in this order:
>>
>> 1. Extract initramfs
>> 2. Load drivers
>> 3. Run init
>>
>> Unfortunately it appears that step 2 is calling the hotplug helper
>> which tries to load firmware via sysfs, but sysfs is not mounted until
>> I have run init so the driver fails to initialise. What is the
>> recommended way to avoid this situation? Do I have to somehow build
>> the firmware into the kernel or can I get sysfs mounted before drivers
>> begin loading?
>
> you did not say what distro and kernel, but I would expect
> sysfs is mounted before step 2 by the intrd. ?this is what I
> see in a rhel 4.3 I am testing.
I'm on an embedded board with kernel 2.6.30 booting with only an
initramfs. I should have been clearer by load drivers I mean run the
device initcalls, for example the rootfs is unpacked at initcall level
"rootfs", which is followed by device initcalls at level 6, which is
followed later by init being run. It's at this last stage that I get
sysfs mounted, which is too late, I'd like it mounted in time for
running initcall level 6. Is this possible?
> what you might be really seeing is
>
> http://bugzilla.kernel.org/show_bug.cgi?id=13178
>
> which I am currently debugging.
I don't think it's the same issue. I actually have no sysfs mounted on
/sys, it's empty.