Question on busybox and loading firmware?

Michael Conrad mconrad at intellitree.com
Tue Sep 23 14:55:40 UTC 2014


On 9/23/2014 2:05 AM, Michael D. Setzer II wrote:
> device class 'firmware': registering
> pci 0000:02:08.0: Firmware left e100 interrupts enabled; disabling
> ipw2200 0000:02:02.0: Direct firmware load failed with error -2
> firmware ipw2200-bss.fw: firmware: requesting ipw2200-bss.fw
> ipw2200: ipw2200-bss.fw request_firmware failed: Reason -12
> ipw2200: Unable to load firmware: -12
> usbserial: USB Serial support registered for Keyspan - (without firmware)
> psmouse serio2: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3

Most google results show -2.  Maybe check the kernel source to see what 
-12 is?

> ...takes about 1:46 to get
> to the loading of the file system, so not sure where the 60 seconds timeout
> starts, or if that is what is making it take so long?? On desktop system, the
> kernel loads in about 15 seconds.

If you enable timestamps in the kernel logging it can help find things 
that are taking a long time to initialize.  1:46 seems a bit excessive.  
If this does end up being the problem that the kernel firmware loader 
times out before the root filesystem even gets loaded, you might be able 
to edit the timeout in the kernel source.


> Another message talked about a hot plugin script, but there are two variables
> that it says are defined in the envirnonment, and I can not find them?

> Also, not sure if it would apply, since I thought hotplug was for devices that
> are later plugged into the system instead of devices that are actually built into
> the sytem.


These environment variables exist only when when the kernel is asking 
for firmware.  The hotplug interface is used for pretty much all 
communication from the kernel to userspace about driver-things.

A quick way to debug is with a script like

#! /bin/sh
echo "-----------------------" >> /var/log/hotplug_requests.log
/usr/bin/env >> /var/log/hotplug_requests.log
exec /sbin/mdev


> HOTPLUG_FW_DIR=/usr/lib/hotplug/firmware/

firmware is typically located at /lib/firmware.  This is where mdev 
would look for it by default.

> Did a search in the /sys directory to look for any file called loading, but none
> exist on notebook or desktop systems I've seen.

They are created on demand by the kernel, matching the environment 
variables given to hotplug.


> Thanks again.

If I had more time available I could give better examples, but there are 
past examples in the archives of this list.

Good luck!

-Mike




More information about the busybox mailing list