Bug 145283
Summary: | ipw2100 firmware load fails | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Jukka Ketelaars <jukka> |
Component: | udev | Assignee: | Harald Hoyer <harald> |
Status: | CLOSED RAWHIDE | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | ziga.mahkovec |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i686 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2005-04-21 09:45:57 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Jukka Ketelaars
2005-01-16 22:34:10 UTC
The situation has improved somewhat. At the time I filed this bug, the modprobe would always produce the firmware load error (i.e. ipw2100 did not work at all). Now the problem only occurs during boot, after which I can load the module without problems. A lot of packages from development have gone in since, but I can't figure out which one did the trick. Maybe initscripts-8.04-1? I get the following from modprobe ipw2100: FATAL: Error inserting ipw2100 (/lib/modules/2.6.10-1.741_FC3/updates/drivers/net/wireless/ipw2100/ipw2100.ko): Unknown symbol in module, or unknown parameter (see dmesg) And dmesg: ipw2100: Unknown parameter `irq' joe: please remove the ipw2100 irq parameter from /etc/modprobe.conf Great - between Harald Hoyer here and Jim Lawrence at Fedora I finally have wireless running on my 2 year old laptop - Thank you very much! Harald - why did wireless still work when I upgraded my *741_FC3 kernel to *760_FC3 - just lucky? - I thought I would need to install new modules for each new kernel. joe: the module is provided in the kernel package... /lib/modules/$(uname -r)/kernel/drivers/net/wireless/ipw2100/ipw2100.ko the problem is most likely the firmware in /lib/firmware: ipw2100-1.3.fw I am very sorry Harald if I sounded sarcastic above. Wireless works great. And I was really able to upgrade my kernel from a working ipw2100.ko set up with 741_FC3 without doing a thing - and my wireless continued to work with 760_FC3 even though I did nothing new. So there is no problem at all, just wanted to know why wireless did not break with the kernel upgrade. Thanks. I'm having the same problem with the FC4 kernels (e.g. kernel-2.6.11-1.1233_FC4, which contains ipw-1.0.3). The ipw2100 module fails to load the firmware during boot, with the same error message as in comment #1. When loading the module manually (once the system is up), it works fine. The firmware is correctly installed in /lib/firmware. The project website[1] suggests increasing the firmware timeout value in /sys/class/firmware/timeout, however that didn't help. Neither did upgrading the driver to 1.1.0. There's a similar upstream bug[2] which puts the blame on hotplug. The only workaround I found for loading the firmware during early boot was to add a pause before loading the module (I patched rc.sysinit to insert a 'sleep 1' when calling load_module() with ipw2100). But even so, it takes much longer for the module to load than usual -- about 10 seconds. Interestingly, 10 seconds is also the default firmware timeout (and this value directly affects the time it takes to load the module). The best solution was to actually blacklist the module, disable kudzu and then load the module in rc.local. This way it works correctly and also loads fast. [1] http://ipw2100.sourceforge.net/#issues [2] http://www.bughost.org/bugzilla/show_bug.cgi?id=24 What doesn't exactly get explained is why it _doesn't_ take 10s to load the firmware once you've booted and had to do a 'rmmod ipw2100; modprobe ipw2100'. Sometimes it loads for me, sometimes it doesn't, now its about 75% of the time it does load on boot. About two weeks ago, it was almost never, but something (kernel?) changed to help the problem. After further investigation, this turned out to be a udevd problem: The problem only occurs if udevsend is used for hotplug events. Upon startup, udevd expects to service a hotplug event with a SEQNUM of 0. Since the actual SEQNUM of the first event is something like 477, the message queue will only get serviced after a timeout (EVENT_TIMEOUT_SEC, which is set to 10 seconds). The default firmware timeout is also 10 seconds, so by the time udevd relays the firmware hotplug event, the kernel will already give up on the device. It's actually a race, which explains why this does work on occasion, and why sticking a sleep before 'modprobe ipw2100' helps. The reason this only occurs during boot is that eventually udevd gets on track with the sequence numbers. The good news is that upstream udev-056 introduces a separate init timeout (2s), which should take care of this issue (and I see that udev was updated to 056 in CVS). Verified that firmware loading works fine with udev-057-1. |