GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Wie kann man feststellen, welches Modul den Kernel verschmutzt?

Mein Kernel gerät ständig in Panik, wenn er mit einem bestimmten drahtlosen Netzwerk verbunden ist. Ich würde gerne einen Fehlerbericht senden, aber mein Kernel ist anscheinend verdorben. Aus /var/log/messages :

Apr 17 21:28:22 Eiger kernel: [13330.442453] Pid: 4095, comm: kworker/u:1 Tainted: G           O 3.8.4-102.fc17.x86_64 #1

und

[[email protected] ~]# cat /proc/sys/kernel/tainted 
4096

Ich konnte keine Dokumentation darüber finden, was die 4096-Bitmaske bedeutet, aber der G Flag bedeutet, dass ein externes GPL-Modul in den Kernel geladen wird . Wie finde ich heraus, welches Modul den Kernel verschmutzt?

Ich habe nach [Tt]aint gesucht in /var/log/messages oder dmesg und nichts finden, was dem Laden eines Moduls entspricht. Mein Kernel ist der neuste Kernel von Fedora 17:3.8.4-102.fc17.x86_64.

AKTUALISIEREN :Es kann am rts5139 liegen Modul. Es erscheint in lsmod aber modinfo rts5139 erzeugt ERROR: Module rts5139 not found. Beim Booten des vorherigen Kernels, 3.8.3-103.fc17.x86_64, wird dieses Modul nicht von lsmod aufgelistet und der Kernel ist nicht befleckt (/proc/sys/kernel/taint ist 0).

Ich habe versucht, dieses Modul auf die schwarze Liste zu setzen

echo 'blacklist rts5139' >> /etc/modprobe.d/blacklist.conf

aber ein Neustart zeigt den Kernel immer noch als verdorben an.

Akzeptierte Antwort:

Nun, ich glaube nicht, dass ein Standard-Fedora-Kernel-Paket irgendwelche Module enthalten wird, die diesen Makel auslösen würden, also ist die Frage, welche anderen Kernel-Module Sie installiert haben?

Übliche Kandidaten wären Grafiktreiber (obwohl ich denke, dass diese meistens das „proprietäre“ Bit setzen) und Wireless-Treiber.

Wenn Sie etwas in lsmod finden können Ausgabe, die Ihrer Meinung nach ein Kandidat sein könnte, dann führen Sie modinfo <module-name> aus und prüfen Sie, ob die Ausgabe intree: Y enthält da jedes Modul ohne das den Makel auslöst, den Sie sehen.

AKTUALISIEREN :Der rts5139 Modul, das Sie in lsmod sehen die sich aber nicht auf Ihrem System zu befinden scheint, befindet sich wahrscheinlich in der initrd und wird von dort früh im Boot-Prozess geladen, bevor das Hauptdateisystem gemountet wird.

Das erklärt auch, warum das Blacklisting nicht funktioniert, da Sie die initrd mit der aktualisierten Blacklist neu erstellen müssten. Neuaufbau der initrd mit dracut wird das Modul trotzdem verschwinden lassen.


Linux
  1. Linux – Wie finde ich die Implementierungen von Linux-Kernel-Systemaufrufen?

  2. Linux – Ein verdorbener Kernel in Linux?

  3. Linux – Wie lädt man ein Kernel-Modul richtig neu?

  4. So bestimmen Sie, welcher Prozess in Linux auf die Festplatte schreibt

  5. So bereinigen Sie Caches, die vom Linux-Kernel verwendet werden

So verwenden Sie den Modprobe-Befehl unter Linux

So laden und entladen Sie Kernel-Module in Linux

So überprüfen Sie die Kernel-Version in Linux

So aktualisieren Sie den Linux-Kernel auf CentOS 7

So installieren Sie den neuesten Linux-Kernel auf CentOS 7

So verwenden Sie den which-Befehl in Linux