Tainted: G O 分析(Tainted kernels)

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

其中,对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或兼容许可证”和“加载外部构建的(“树外”)模块”导致的,并不是本身的问题

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值