Warum laufen einige Udev-Arbeiter aus?

2381
Blacklight Shining

Vor einigen Wochen funktionierten ALSA und USB nicht mehr auf meinem Laptop. Dinge wie YouTube-Videos haben in Firefox einfach keinen Ton. mpvdruckt [ao/alsa] Playback open error: No such file or directory. Could not open/initialize audio device -> no sound.. alsamixerbeklagt, dass es keine solche Datei gibt als mixer. Flash-Laufwerke werden nicht in /devoder /dev/diskangezeigt, und ihre LEDs leuchten nicht. Seltsamerweise kann ich die Ports trotzdem verwenden, um mein Handy aufzuladen.

udevscheint sich auch zu verhalten, eine volle Minute lang die Stiefel zu blockieren (für sich alleine!) waiting for uevents to be processed ...und für eine halbe Minute die Stillstände zu stoppen (ich habe es zeitlich festgelegt) stopping udev .... Es beschwert sich auch im Kernel-Log:

<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 

Und ein paar Minuten später:

[ 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' 

Diese PCI-Adressen waren jeweils für den USB-Controller und das Audiogerät bestimmt. Auch bemerkte ich, dass während lsmodscheint nichts zu zeigen, ungewöhnlich, /proc/modulesListen xhci_pci, snd_hda_intelund sunrpcals ewig Loading. modprobean diesen drei (und anderen, die von ihnen abhängen) wird hängen bleiben ( -vzeigt, dass sie beim Versuch hängen bleiben insmod).

Das System führt Gentoo unter Linux 4.4.6 aus. udev wird von eudev 3.1.5 bereitgestellt. Das Root-Dateisystem befindet sich in einem LUKS-Container. Ich benutze eine initrd zum booten.

Web- und Stack-Exchange-Suchen haben keine hilfreichen Ergebnisse gezeigt. Ich habe meine Kernel-Konfiguration mit dem Auszug des Wikis verglichen und versucht, sie wieder zusammenzuführen eudev(keine Änderung). Also, was ist hier los?

1

1 Antwort auf die Frage

1
Blacklight Shining

Während ich keine vollständige Erklärung haben, deaktivieren TIMER_STATSin der Kernel - Konfiguration (das ist Kernel hackingCollect kernel timers statisticswenn Sie die menuconfig verwenden) scheint dies behoben zu haben.

Ich würde vermuten, dass aus irgendeinem Grund einige meiner Module nicht mit TIMER_STATSon geladen werden, auf eine seltsame Weise, die dazu führt, dass sie insmodhängen bleibt. Die beiden udevim Kernel-Log genannten Arbeiter versuchen, sie zu laden, zu hängen und dann getötet zu werden. Ohne Kernel-Module und was auch immer das Setup udevgetan hätte, Sound- und USB-Sachen ... funktionieren nicht.


AKTUALISIEREN:

Mir wurde klar, dass viele Module geladen wurden, bevor sie / montiert wurden. War sehr verwirrt, bis ich mich in mein initrd eingelassen hatte und herausfand, dass es seine eigene hatte /lib/modules, mit Kopien einiger Module (einschließlich xhci_pciund sunrpc). Obwohl ich sicher war, alle Module nach dem Wiederherstellen im Root-Dateisystem zu installieren, habe ich die initrd nie neu erstellt, was bedeutet, dass der ausgeführte Kernel eine andere Konfiguration hatte als die Module, die er laden wollte. Offensichtlich führte dies zu komischen Dingen. Wie insmodhängen

Wenn Sie also eine initrd verwenden, die über Kopien von Kernelmodulen verfügt, stellen Sie sicher, dass Sie diese neu erstellen, wenn Sie Ihren Kernel neu erstellen.