特定のワイヤレスネットワークに接続すると、カーネルは引き続きパニック状態になります。バグレポートを送信したいのですが、私のカーネルが汚染されているようです。から/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]aint
in /var/log/messages
またはdmesg
モジュールをロードするときに対応するエントリを見つけることができませんでした。私のカーネルはFedora 17の最新のカーネルである3.8.4-102.fc17.x86_64です。
修正するrts5139
:モジュールが原因である可能性があります。古いカーネル3.8.3-103.fc17.x86_64を起動すると表示されますが、生成され、lsmod
モジュールはリストされず、カーネルは汚染されません(0)。modinfo rts5139
ERROR: 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
とにかくモジュールが消えます。
答え2
➜ ~ dmesg | grep -i 'taint'
[ 10.029333] vboxdrv: module verification failed: signature and/or required key missing - tainting kernel
[ 10.029364] Disabling lock debugging due to kernel taint
答え3
taint
別の方法は、各モジュールについて次のファイルを確認することです/sys/module
。
#!/bin/bash
cat /proc/modules |
while read module rest
do
if [[ $(od -A n /sys/module/$module/taint) != " 000012" ]] ; then
echo $module
fi
done
モジュールに汚染がない場合、ファイルには「」で示されるtaint
改行文字が1つだけ含まれます。実際の内容に関係なく、ファイルサイズは4,096バイトで記載されており、ファイルサイズを確認できません。od
000012
答え4
起動ログを確認するか、初期段階(RWがディスクにインストールされる前)の起動プロセスを確認してください。これはinitrdの無効なモジュールかもしれません。
DKMSなどがありますか?