这个问题是关于Linux内核4.10的。在内核中标记可加载的内核模块
加载一个彻头彻尾的树LKM导致内核打印警告:
module: loading out-of-tree module taints kernel.
这就提出了从该检查中module.c: if (!get_modinfo(info, "intree")) {
阅读get_modinfo
它煤层认为“intree “只是.ko
文件中的魔术字livnig。
上随机LKM我在我的系统中找到运行readelf
表明这一点:
readelf -a imon.ko | grep intree 161: 00000000000006c0 9 OBJECT LOCAL DEFAULT 13 __UNIQUE_ID_intree1
而在一个简单的自定义程序hello_world LKM寻找intree
不返回任何结果。
这是真的吗?
如何将某些模块标记为在树中?它是通过向模块添加一个宏来完成的(如MODULE_LICENCE),还是通过特定方式或其他方式构建模块?
为什么要标记一个out-of-tree模块作为in-tree?所有这一切都将是恼人的内核开发者。 – duskwuff