FS#30954 - [udev] udev in early init hangs on module insertion w/o firmware
Attached to Project:
Arch Linux
Opened by Artem A Klevtsov (unikum) - Wednesday, 01 August 2012, 06:57 GMT
Last edited by Dave Reisner (falconindy) - Saturday, 04 August 2012, 13:28 GMT
Opened by Artem A Klevtsov (unikum) - Wednesday, 01 August 2012, 06:57 GMT
Last edited by Dave Reisner (falconindy) - Saturday, 04 August 2012, 13:28 GMT
|
Details
Description:
After recent update system began hangs during boot with the message: :: running early hook [udev] Additional info: * package version(s) core/mkinitcpio 0.10-1 * config and/or log files etc. Steps to reproduce: Update mkinitcpio to 0.10-1 Rebuild kernel image (mkinitcpio -p linux) Reboot |
This task depends upon
Closed by Dave Reisner (falconindy)
Saturday, 04 August 2012, 13:28 GMT
Reason for closing: Upstream
Additional comments about closing: This is specific to the microcode module in this case. Don't include it in the initramfs without firmware. If you want that behavior changed, take it upstream.
Saturday, 04 August 2012, 13:28 GMT
Reason for closing: Upstream
Additional comments about closing: This is specific to the microcode module in this case. Don't include it in the initramfs without firmware. If you want that behavior changed, take it upstream.
Can you boot properly with modprobe.blacklist=microcode on your kernel cmdline? Does udev eventually timeout waiting for a firmware request?
http://projects.archlinux.org/mkinitcpio.git/commit/?id=b8459a2ac067b05
Though, based on the udev code, I'm not quite sure why this would break other than due to a firmware request.
This is what you want in most cases.
However, the microcode module is a bit special as its only purpose is to load the relevant firmware. It is synchronous, and does not finish until the firmware is loaded, or fails to load (which no longer happens in the initramfs), or a two minute timeout is reached.
In your case the relevant firmware is not part of the initramfs, so the request waits for two minutes. Note that earlier the request would simply fail, so in practice you are not losing out on anything (except for two minutes of wasted time).
Just remove 'microcode' from the initramfs and everything should be fine.
@Dave: does mkinitcpio include all the relevant firmware that is installed? If so maybe we don't want to be doing this?