Tainted: G O 分析(Tainted kernels)

最近编译内核驱动出现错误,使用dump_stack()函数查看问题,出现以下日志:

Tainted: G O 分析(Tainted kernels)_第1张图片

其中,对CPU: 0 PID: 7852 Comm: v4l_id Tainted: G           O    4.9.140-tegra #1这句话的意义感到不明确,经过各方面查找,最终在 The Linux Kernel 的doc里面找到了相关解释:

某些oops报告在程序计数器之后包含字符串“ Tainted:”。这表明内核已被某种机制污染。字符串后跟一系列位置敏感的字符,每个字符代表一个特定的污染值。

如果加载的所有模块均具有GPL或兼容许可证,则为“ G”;如果已加载任何专有模块,则为“ P”。那些不具有insmod不能识别为GPL兼容的MODULE_LICENSE或MODULE_LICENSE的模块被认为是专有的。

F如果任何模块是由强制加载的,insmod -f,如果所有模块都已正常加载。

S如果oop发生在未通过安全运行多处理器认证的硬件上运行的SMP内核上。当前,这仅发生在不具有SMP功能的各种Athlon上。

R如果某个模块是由强制卸载的,如果所有模块都已正常卸载。

M如果任何处理器报告了计算机检查异常, 则没有发生计算机检查异常。

B 如果页面释放功能发现错误的页面引用或某些意外的页面标志。

U如果用户或用户应用程序特别要求设置Tainted标志,则返回否则。

D 如果内核最近死亡,即出现OOPS或BUG。

A 如果ACPI表已被覆盖。

W如果内核先前已发出警告。(尽管某些警告可能会设置更具体的异味标记。)

C 如果已加载登台驱动程序。

I 如果内核正在解决平台固件(BIOS或类似版本)中的严重错误。

O 如果已加载外部构建的(“树外”)模块。

E 如果未签名的模块已加载到支持模块签名的内核中。

L 如果以前在系统上发生过软锁定。

K 如果内核已经过实时修补。

附上链接:https://www.kernel.org/doc/html/v4.15/admin-guide/tainted-kernels.html#

通过日志显示可以看出来,这个内核污染的原因是“加载的所有模块均具有GPL或兼容许可证”和“加载外部构建的(“树外”)模块”导致的,并不是本身的问题

你可能感兴趣的:(Tainted: G O 分析(Tainted kernels))