どのモジュールがカーネルを汚染しているかを確認するには?

どのモジュールがカーネルを汚染しているかを確認するには?

特定のワイヤレスネットワークに接続すると、カーネルは引き続きパニック状態になります。バグレポートを送信したいのですが、私のカーネルが汚染されているようです。から/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

そして

[root@Eiger ~]# cat /proc/sys/kernel/tainted 
4096

4096ビットマスクの意味に関する文書が見つかりません。ただし、このGフラグは、外部GPLモジュールがカーネルにロードされたことを示します。。カーネルを汚染するモジュールを見つける方法は?

私は[Tt]aintin /var/log/messagesまたはdmesgモジュールをロードするときに対応するエントリを見つけることができませんでした。私のカーネルはFedora 17の最新のカーネルである3.8.4-102.fc17.x86_64です。

修正するrts5139:モジュールが原因である可能性があります。古いカーネル3.8.3-103.fc17.x86_64を起動すると表示されますが、生成され、lsmodモジュールはリストされず、カーネルは汚染されません(0)。modinfo rts5139ERROR: Module rts5139 not found.lsmod/proc/sys/kernel/taint

私はこのモジュールをブラックリストに載せようとしました。

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

ただし、再起動してもカーネルが汚染されていると表示されます。

ベストアンサー1

まあ、標準のFedoraカーネルパッケージには、この汚染を引き起こすモジュールが含まれているとは思いません。したがって、質問はどのような他のカーネルモジュールをインストールしましたか?

一般的な候補は、グラフィックドライバ(たとえこれがほとんど「排他的」ビットを設定すると思いますが)とワイヤレスドライバです。

lsmod出力に候補と思われる項目が見つかった場合は、実行して、出力に現在表示されているmodinfo <module-name>汚染intree: Yを引き起こすモジュールが含まれていることを確認してください。

修正するrts5139表示されているlsmodがシステムにはないように見えるモジュールはinitrdにあり、デフォルトのファイルシステムがマウントされる前に起動プロセスの最初にそこからロードされる可能性があります。

また、更新されたブラックリストでinitrdを再構築する必要があるため、ブラックリストが機能しない理由も説明します。 initrdを再構築すると、dracutとにかくモジュールが消えます。

おすすめ記事