Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- toBinary(){
- local n="$1"
- local bit=""
- for (( ; n>0 ; n >>= 1 )); do bit="$bit$(( n&1 ))"; done
- printf "%s" "$bit"
- }
- BIT_LIST="$(toBinary "$(< /proc/sys/kernel/tainted)")"
- [[ "$BIT_LIST" -eq 0 ]] && exit
- echo ' Kernel tainted !'
- [[ "$BIT_LIST" == 1* ]] && echo " proprietary module was loaded" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " module was force loaded" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " kernel running on an out of specification system" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " module was force unloaded" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " processor reported a Machine Check Exception (MCE)" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " bad page referenced or some unexpected page flags" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " taint requested by userspace application" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " kernel died recently, i.e. there was an OOPS or BUG" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " ACPI table overridden by user" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " kernel issued warning" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " staging driver was loaded" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " workaround for bug in platform firmware applied" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo ' externally-built ("out-of-tree") module was loaded' ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " unsigned module was loaded" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " soft lockup occurred" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " kernel has been live patched" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " auxiliary taint, defined for and used by distros" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " kernel was built with the struct randomization plugin"; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " an in-kernel test has been run" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == 1* ]] && echo " userspace used a mutating debug operation in fwctl" ; BIT_LIST="${BIT_LIST:1}"
- [[ "$BIT_LIST" == *1* ]] && echo " UNKNOWN! check https://www.kernel.org/doc/html/latest/admin-guide/tainted-kernels.html"
Advertisement
Add Comment
Please, Sign In to add comment