FS#27938 - [udev] udev-177 breaks loading of some firmware
Attached to Project:
Arch Linux
Opened by Olivier (litemotiv) - Saturday, 14 January 2012, 12:04 GMT
Last edited by Tom Gundersen (tomegun) - Thursday, 15 March 2012, 12:38 GMT
Opened by Olivier (litemotiv) - Saturday, 14 January 2012, 12:04 GMT
Last edited by Tom Gundersen (tomegun) - Thursday, 15 March 2012, 12:38 GMT
|
Details
After upgrading to udev-177, modules that require firmware
fail during boot-time. After boot has finished these modules
can be loaded normally. System tested is stock Arch (no
systemd) with [testing] enabled.
dmesg: ieee80211 phy0: brcmsmac: fail to load firmware brcm/bcm43xx-0.fw ieee80211 phy0: brcmsmac: Failed to find firmware usually in /lib/firmware/brcm Similar report on mailing list: http://mailman.archlinux.org/pipermail/arch-dev-public/2012-January/022393.html |
This task depends upon
Closed by Tom Gundersen (tomegun)
Thursday, 15 March 2012, 12:38 GMT
Reason for closing: Fixed
Additional comments about closing: in testing
Thursday, 15 March 2012, 12:38 GMT
Reason for closing: Fixed
Additional comments about closing: in testing
It would be useful with more output from udev of a failure case, as well as confirmation that modprob'ing fixes the problem. Please set udev_log="debug" in /etc/udev/udev.conf, reboot, modprobe the relevant module and attach your dmesg.
@Pierres: I lost your dmesg, could you attach it here?
daemon.log (96.7 KiB)
For more info see: http://marc.info/?l=linux-netdev&m=132655490826765&w=2 .
Here is the relevant lines from everything.log after running: modprobe -r rtl8192se ; udevadm control --log-priority=debug ; udevadm trigger --action=add --property-match=PCI_ID=10EC:8172
"udevd: remove TIMEOUT= handling": 43d5c5f03645c4b842659f9b5bd0ae465e885e92
is the first bad commit. It would be very helpful if anyone could verify this by checking that the previous one is ok, and that this one is broken.
As results:
Works until this commit d1c13ddcb3497e0c6a37cd9bd117b74ef010bc15 + cherry-pick this other 86a0d004c397d985505c5204fe1fbecb340f6076.
Weird behaviour when build at 85eaf38c3b2fd70a8b01b72bbdb936c0a5944b3c + cherry-pick this other 86a0d004c397d985505c5204fe1fbecb340f6076 : rtl8192se+firmware is loaded but i915 modules is not loaded by udev.
(until this point I used build time options from udev-175)
I have package issues when I reached d1aacc0fa997a9757adc923792a6c17753d05084 (At this point I need build time options for 177 due previous commit).
I will experiment a bit more tomorrow...
Today I build udev at this commit 86a0d004c397d985505c5204fe1fbecb340f6076, without success, this is: few modules are loaded, for example no rtl8192se is loaded, no i915...
udevd[170]: worker [196] timeout, kill it
udevd[170]: seq 954 '/devices/pci0000:00/0000:00:1c.1/0000:07:00.0' killed
udevd[170]: worker [196] terminated by signal 9 (Killed)
http://git.kernel.org/?p=linux/hotplug/udev.git;a=commit;h=e64fae5573e566ce4fd9b23c68ac8f3096603314
@Gerardo: do you see any warnings/error messages in your log if you go back to udev_log=error? I.e., will people who experience the timeout be able to tell what it's all about without turning on more logging?
Unloading + reloading it manually works around the problem.
@Fabien: Do you have your wifi module in your initramfs? 'lsinitcpio /boot/<your initramfs>.img' will tell you. If so, you need to also have udev there (and make sure you have done 'mkinitcpio -p linux' after upgrading to udev-177-3). Could you set udev_log="debug" in /etc/udev/udev.conf and attach your dmesg + logs?
I'm not sure where to find the udev-specific logs, here is the dmesg and the boot log:
http://pastebin.com/v3TLNWVz
http://pastebin.com/3VThfsKa
Just point me the udev log file, since it's missing (my screen was flooded with it on boot so I can't tell if something went wrong or not)...
dmesg.txt (45.1 KiB)
Edit: corrected 180 to 120, either would work, but it is 120 that is the upstream default.
Could you please verify/deny if a new initscripts package fixes your issues: http://dev.archlinux.org/~tomegun/initscripts-2012.01.3-1-any.pkg.tar.xz.
If so I'll push that to testing asap.
Now how can I do to boot as fast as before ? :P
Using dichotomy on the timeout value ? :/
When the timeout is hit this means udev is encountering a broken kernel module, this will have to be fixed in the kernel (and afaik it is being fixed).
If you want to have a temporary workaround I guess it would be possible to blacklist your wireless module in /etc/modprobe.d and modprobe it manually in rc.local, or something like that. But really, that is just broken, we should rather fix the problem in the kernel.
Edit: fixed my broken suggestion for a workaround.
Thu Feb 16 19:13:17 2012: udevd[203]: worker [214] terminated by signal 9 (Killed)
it looks like my problem was closer to https://bugs.archlinux.org/task/28154
i fixed it with this workaround: http://igordcard.blogspot.com/2012/01/waiting-for-udev-events-to-be-processed.html
running udev version 181-2
http://pastebin.com/gA9pNcA0
uname -a:
Linux alpha.archlinux 3.2.9-1-ARCH #1 SMP PREEMPT Thu Mar 1 09:31:13 CET 2012 x86_64 Intel(R) Core(TM) i5 CPU M 480 @ 2.67GHz GenuineIntel GNU/Linux
lspci and lsusb
http://pastebin.com/KH0KGeVt
It looks like this is not going to get fixed unless someone with the right hardware is able to produce and test a fix, as the obvious fix that I have proposed does not seem to work, and I'm out of ideas.
Also, no offence meant by closing your bug. We currently have 6 reports of the same issue (even though it manifests slightly differently), and I'm struggling to keep track of all the comments. The old reports can be found in "Related Tasks" above.
This issue is not being ignored. I have personally spent several full days on it (none of my six computers are affected by the problem, so it is hard for me to test). As you can see above Gerardo spent a lot of time bisecting the problem. The udev maintainer has also spent a lot of time dealing with this, including raising awareness among the kernel developers. Some kernel developers have already made fixes for some modules, and the netdev maintainer has requested someone to step up and take over the ipw2200 module for the purpose of solving this problem. And that's just the ones I happen to know about.
You should keep in mind that different people with different skills work on different parts of the kernel, so even if we could force the USB dongle developers to change project (which we can't), they probably could not fix whatever we want fixing. I might as well say to you: provide a working and tested udev or kernel patch and I'll see to it that it will be applied.
(did the best I could to find the right timeframe in the attached logs)
udevadm.log (4.6 KiB)
dmesg.log (1.8 KiB)
messages.log (28.3 KiB)
Hm, as you get "link becomes ready", it looks like this is not the same issue. In fact, I don't see any error messages from NetworkManager or similar, so where does it go wrong?
Could you revert to the latest working version of udev and post the same logs?
The network daemon will need to be restarted after the module has loaded successfully, if that does not work it is a bug in the network daemon. NetworkManager should be able to deal with this even if it is started from DAEMONS and not restarted later, if it does not it is a NM bug. If you want you can open separate reports against initscripts/NetworkManager regarding this.
1) update to udev-181-5
2) regenerate your initramfs: "minitcpio -p linux"
3) disable any workarounds you might have enabled
4) reboot
Please report back if this works or not for you, and what kernel module you are using. Ideally I'd like to hear one report for each affected module, so I know if this works "not at all", "only for some" or "for everyone".