Почему некоторые работники udev не работают?

2318
Blacklight Shining

Несколько недель назад на моем ноутбуке перестали работать ALSA и USB. Такие вещи, как видео на YouTube, просто не имеют звука в Firefox; mpvотпечатки [ao/alsa] Playback open error: No such file or directory. Could not open/initialize audio device -> no sound.. alsamixerжалуется, что нет такого файла как mixer. Флешки не отображаются в /devили /dev/disk, а их светодиоды не горят. Как ни странно, я все еще могу использовать порты для зарядки телефона ...

udevПохоже, что он тоже играет в ботинки на целую минуту (сам по себе!) waiting for uevents to be processed ...и останавливается на полминуты (я рассчитал это) stopping udev .... Он также жалуется на журнал ядра:

<28>[ 130.669180] udevd[1745]: worker [1763] /devices/pci0000:00/0000:00:14.0 is taking a long time <28>[ 130.669196] udevd[1745]: worker [1762] /devices/pci0000:00/0000:00:1b.0 is taking a long time 

И пару минут спустя:

[ 251.500125] udevd[1745]: worker [1763] /devices/pci0000:00/0000:00:14.0 timeout; kill it [ 251.500156] udevd[1745]: seq 1333 '/devices/pci0000:00/0000:00:14.0' killed [ 251.500166] udevd[1745]: worker [1762] /devices/pci0000:00/0000:00:1b.0 timeout; kill it [ 251.500174] udevd[1745]: seq 1336 '/devices/pci0000:00/0000:00:1b.0' killed [ 251.500535] udevd[1745]: worker [1763] terminated by signal 9 (Killed) [ 251.500540] udevd[1745]: worker [1763] failed while handling '/devices/pci0000:00/0000:00:14.0' 

Эти PCI-адреса оказались для контроллера USB и аудиоустройства соответственно. Кроме того, я заметил, что в то время, lsmodкажется, не показывает ничего необычного, /proc/modulesсписки xhci_pci, snd_hda_intelи, sunrpcкак вечно Loading. modprobeна этих трех (и других, которые зависят от них) будет висеть ( -vпоказывает, что зависает при попытке insmodих).

Система работает под управлением Gentoo в Linux 4.4.6. udev предоставляется eudev 3.1.5. Корневая файловая система находится в контейнере LUKS; Я использую initrd для загрузки.

Поиск в Web и Stack Exchange не помог. Я проверил конфигурацию своего ядра по отрывку из вики и попытался снова eudev(без изменений). Так что здесь происходит?

1

1 ответ на вопрос

1
Blacklight Shining

Хотя у меня нет полного объяснения, отключение TIMER_STATSв конфигурации ядра (это Kernel hacking➔, Collect kernel timers statisticsесли вы используете menuconfig), похоже, исправило это.

Я предполагаю, что по какой-то причине некоторые из моих модулей не могут быть загружены TIMER_STATS, каким-то странным способом, который вызывает insmodзависание. Двое udevрабочих, упомянутых в журнале ядра, пытаются загрузить их, повесить, а затем их убивают. Отсутствие модулей ядра и все, udevчто нужно сделать для установки, звуковые и USB-соединения… не работают.


ОБНОВИТЬ:

Я понял, что многие модули загружались до того, как / были смонтированы. Был очень смущен, пока я не покопался в своем initrd и не обнаружил, что у него есть свой собственный /lib/modules, с копиями некоторых модулей (включая xhci_pciи sunrpc). Несмотря на то, что я позаботился об установке всех модулей в корневую файловую систему после их восстановления, я никогда не перестраивал initrd, что означало, что работающее ядро ​​имело конфигурацию, отличную от (некоторых) модулей, которые оно пыталось загрузить. Очевидно, это привело к странным вещам. Нравится insmodвисеть.

Так что, если вы используете initrd и у него есть копии модулей ядра, обязательно перестройте его при перестройке ядра.

Похожие вопросы