
특정 무선 네트워크에 연결되면 커널이 계속 패닉 상태에 빠지게 됩니다. 버그 보고서를 보내고 싶지만 내 커널이 오염된 것 같습니다. 에서 /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
또는 모듈을 로드할 때 해당하는 항목을 찾지 못했습니다 /var/log/messages
. dmesg
내 커널은 Fedora 17: 3.8.4-102.fc17.x86_64의 최신 커널입니다.
업데이트: 모듈 때문일 수도 있습니다 rts5139
. 이전 커널인 3.8.3-103.fc17.x86_64를 부팅할 때 이 모듈은 표시되지만 lsmod
생성 modinfo rts5139
됩니다 . 이 모듈은 목록에 표시되지 않으며 커널이 오염되지 않습니다( 0).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 또는 이와 유사한 것이 있습니까?