Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/tools/debugging/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  kernel-chktaint   Sprache: HTML

 
#! /bin/sh
# SPDX-License-Identifier: GPL-2.0
#
# Randy Dunlap <rdunlap@infradead.org>, 2018
# Thorsten Leemhuis <linux@leemhuis.info>, 2018

usage()
{
 cat <<EOF
usage: ${0##*/}
       ${0##*/} <int>

Call without parameters to decode /proc/sys/kernel/tainted.

Call with a positive integer as parameter to decode a value you
retrieved from /proc/sys/kernel/tainted on another system.

EOF
}

if [ "$1"x != "x" ]; then
 if  [ "$1"x == "--helpx" ] || [ "$1"x == "-hx" ] ; then
  usage
  exit 1
 elif  [ $1 -ge 0 ] 2>/dev/null ; then
  taint=$1
 else
  echo "Error: Parameter '$1' not a positive integer. Aborting." >&2
  exit 1
 fi
else
 TAINTFILE="/proc/sys/kernel/tainted"
 if [ ! -r $TAINTFILE ]; then
  echo "No file: $TAINTFILE"
  exit
 fi

 taint=`cat $TAINTFILE`
fi

if [ $taint -eq 0 ]; then
 echo "Kernel not Tainted"
 exit
else
 echo "Kernel is \"tainted\" for the following reasons:"
fi

T=$taint
out=

addout() {
 out=$out$1
}

if [ `expr $T % 2` -eq 0 ]; then
 addout "G"
else
 addout "P"
 echo " * proprietary module was loaded (#0)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "F"
 echo " * module was force loaded (#1)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "S"
 echo " * kernel running on an out of specification system (#2)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "R"
 echo " * module was force unloaded (#3)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "M"
 echo " * processor reported a Machine Check Exception (MCE) (#4)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "B"
 echo " * bad page referenced or some unexpected page flags (#5)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "U"
 echo " * taint requested by userspace application (#6)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "D"
 echo " * kernel died recently, i.e. there was an OOPS or BUG (#7)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "A"
 echo " * an ACPI table was overridden by user (#8)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "W"
 echo " * kernel issued warning (#9)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "C"
 echo " * staging driver was loaded (#10)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "I"
 echo " * workaround for bug in platform firmware applied (#11)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "O"
 echo " * externally-built ('out-of-tree') module was loaded  (#12)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "E"
 echo " * unsigned module was loaded (#13)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "L"
 echo " * soft lockup occurred (#14)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "K"
 echo " * kernel has been live patched (#15)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "X"
 echo " * auxiliary taint, defined for and used by distros (#16)"

fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "T"
 echo " * kernel was built with the struct randomization plugin (#17)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "N"
 echo " * an in-kernel test (such as a KUnit test) has been run (#18)"
fi

T=`expr $T / 2`
if [ `expr $T % 2` -eq 0 ]; then
 addout " "
else
 addout "J"
 echo " * fwctl's mutating debug interface was used (#19)"
fi

echo "For a more detailed explanation of the various taint flags see"
echo " Documentation/admin-guide/tainted-kernels.rst in the Linux kernel sources"
echo " or https://kernel.org/doc/html/latest/admin-guide/tainted-kernels.html"
echo "Raw taint value as int/string: $taint/'$out'"
#EOF#

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.