특정 무선 네트워크에 연결되면 커널이 계속 패닉 상태에 빠지게 됩니다. 버그 보고서를 보내고 싶지만 내 커널이 오염된 것 같습니다. 에서 /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
개행 문자가 하나만 포함됩니다 . 실제 내용과 상관없이 파일 크기가 4,096바이트로 기재되어 있어 파일 크기를 확인할 수 없습니다.od
000012
답변4
부팅 로그를 확인하거나 초기 단계(RW가 디스크에 설치되기 전)의 부팅 프로세스를 관찰하세요. 이는 initrd의 잘못된 모듈일 수 있습니다.
DKMS 또는 이와 유사한 것이 있습니까?