Running gibt cat /proc/sys/kernel/tainted
den aktuellen Kernel Taint-Wert aus (in Basis 10). Mein Verständnis ist, dass dieser Wert ein Bitfeld ist, in dem jedes Bit das Fehlen oder Vorhandensein einer bestimmten Art von Verschmutzung anzeigt. Sie können die Bits mit extrahieren
python3 -c 'from pprint import pprint; pprint(list(zip(range(50), reversed(bin(int(open("/proc/sys/kernel/tainted").read()))[2:]))))'
Ich habe nach Dokumentation gesucht, aber was ich gesehen habe, gibt nur die Bedeutung der Bits 0 bis 10 an. Beispiel: http://www.kernel.org/doc/Documentation/sysctl/kernel.txt sagt:
tainted:
Non-zero if the kernel has been tainted. Numeric values, which can be
ORed together. The letters are seen in "Tainted" line of Oops reports.
1 (P): A module with a non-GPL license has been loaded, this
includes modules with no license.
Set by modutils >= 2.4.9 and module-init-tools.
2 (F): A module was force loaded by insmod -f.
Set by modutils >= 2.4.9 and module-init-tools.
4 (S): Unsafe SMP processors: SMP with CPUs not designed for SMP.
8 (R): A module was forcibly unloaded from the system by rmmod -f.
16 (M): A hardware machine check error occurred on the system.
32 (B): A bad page was discovered on the system.
64 (U): The user has asked that the system be marked "tainted". This
could be because they are running software that directly modifies
the hardware, or for other reasons.
128 (D): The system has died.
256 (A): The ACPI DSDT has been overridden with one supplied by the user
instead of using the one provided by the hardware.
512 (W): A kernel warning has occurred.
1024 (C): A module from drivers/staging was loaded.
2048 (I): The system is working around a severe firmware bug.
4096 (O): An out-of-tree module has been loaded.
8192 (E): An unsigned module has been loaded in a kernel supporting module
signature.
16384 (L): A soft lockup has previously occurred on the system.
32768 (K): The kernel has been live patched.
65536 (X): Auxiliary taint, defined and used by for distros.
131072 (T): The kernel was built with the struct randomization plugin.
Ich habe auch versucht, die Dokumentation für den Ubuntu-Kernel durch Installieren des linux-doc
Pakets und Öffnen anzuzeigen zless /usr/share/doc/linux-doc/sysctl/kernel.txt.gz
, aber das listet immer noch nur bis zu 1024 auf.
In meinem Fall verwende ich den Standard-PAE-Kernel (3.2.0-36-generic-pae) auf Precise. Ich sehe auch Bit 12 gesetzt.
Wo ist die vollständige Dokumentation für die Bedeutung der befleckten Bits auf Ubuntu-Kerneln?
quelle
kernel.txt
dokumentiert nun diese beiden letzten Flags.