Хотя у меня нет полного объяснения, отключение TIMER_STATS
в конфигурации ядра (это Kernel hacking
➔, Collect kernel timers statistics
если вы используете menuconfig), похоже, исправило это.
Я предполагаю, что по какой-то причине некоторые из моих модулей не могут быть загружены TIMER_STATS
, каким-то странным способом, который вызывает insmod
зависание. Двое udev
рабочих, упомянутых в журнале ядра, пытаются загрузить их, повесить, а затем их убивают. Отсутствие модулей ядра и все, udev
что нужно сделать для установки, звуковые и USB-соединения… не работают.
ОБНОВИТЬ:
Я понял, что многие модули загружались до того, как /
были смонтированы. Был очень смущен, пока я не покопался в своем initrd и не обнаружил, что у него есть свой собственный /lib/modules
, с копиями некоторых модулей (включая xhci_pci
и sunrpc
). Несмотря на то, что я позаботился об установке всех модулей в корневую файловую систему после их восстановления, я никогда не перестраивал initrd, что означало, что работающее ядро имело конфигурацию, отличную от (некоторых) модулей, которые оно пыталось загрузить. Очевидно, это привело к странным вещам. Нравится insmod
висеть.
Так что, если вы используете initrd и у него есть копии модулей ядра, обязательно перестройте его при перестройке ядра.