Kernel tainted

V Linuxovém jádře existuje speciální příznak, indikující v jakém „zdravotním“ stavu se jádro nachází.

/proc/sys/kernel/tainted

Je souborem, který sdružuje tyto informace. Jeho obsahem je obvykle číslo, v ideálním stavu 0 = bez závad. Nenulové číslo je lépe reprezentovat binárně. Může totiž docházet k součtu různých stavů !! Osobně jsem se v praxi setkal například s hodnotou 67, tedy součtem 64 + 2 + 1 viz význam dále.

Základní tainted stavy

Jak již bylo řečeno, nulová hodnota odpovídá optimálnímu stavu, kdy všechno funguje. Poměrně často je ale ve výše uvedeném souboru přítomná jiná hodnota. Mezi ty základní patří:

   1 - 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 - A module was force loaded by insmod -f. 
       Set by modutils >= 2.4.9 and module-init-tools.
   4 - Unsafe SMP processors: SMP with CPUs not designed for SMP.
   8 - A module was forcibly unloaded from the system by rmmod -f. 
  16 - A hardware machine check error occurred on the system.
  32 - A bad page was discovered on the system.
  64 - 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 - The system has died.
 256 - The ACPI DSDT has been overridden with one supplied by the user
        instead of using the one provided by the hardware.
 512 - A kernel warning has occurred.
1024 - A module from drivers/staging was loaded.

Pokud se něco špatného děje právě nyní

.. a pokud systém stále žije, zjistíme to snadno s pomocí příkazu:

dmesg | grep taint

Identifikujeme tak například problémový jaderný modul.

Použité zdroje:

/usr/src/linux/Documentation/sysctl/kernel.txt

 
kernel_tainted.txt · Poslední úprava: 2013/07/04 13:10 autor: root