My kernel has been "corrupted"/tainted

In addition, you can decode the output of

cat /proc/sys/kernel/tainted

and find out why your kernel is tainted.

There is two ways to decode the numbers, A and B:

A

  1. run for i in $(seq 18); do echo $(($i-1)) $(($(cat /proc/sys/kernel/tainted)>>($i-1)&1));done
Sample output of above command
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 1
12 1
13 1
14 0
15 0
16 0
17 0
  1. look up the reasons for each bit that set to 1 in the table given in Tainted kernels — The Linux Kernel documentation

B

  1. use sh to run the script provided in https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/tools/debugging/kernel-chktaint

Output of sh ~/bin/kernel-chktaint on my system looks like this:

Kernel is "tainted" for the following reasons:
 * workaround for bug in platform firmware applied (#11)
 * externally-built ('out-of-tree') module was loaded  (#12)
 * unsigned module was loaded (#13)
For a more detailed explanation of the various taint flags see
 Documentation/admin-guide/tainted-kernels.rst in the Linux kernel sources
 or https://kernel.org/doc/html/latest/admin-guide/tainted-kernels.html
Raw taint value as int/string: 14336/'G          IOE     '

In your case:

G means: G if all modules loaded have a GPL or compatible license
W means: W if a warning has previously been issued by the kernel. (Though some warnings may set more specific taint flags.)

You can use dmesg or journalctl -k to find out more about the warnings, but it’s also common to ignore warnings (they are not errors).