内核模块的动态链接

use*_*691 6 linux-device-driver

也就是说,驱动程序是否可以尝试为另一个驱动程序导入符号,如果该符号不存在,驱动程序是否可以继续加载而不解析导入?即使可能,它甚至允许上游驱动程序?即lnux内核中已有驱动程序?

小智 4

任何内核模块中由 EXPORT_SYMBOL 或 EXPORT_SYMBOL_GPL(如果导入模块确实具有 GPL 兼容许可证)导出的符号可以被其他模块使用。

\n\n
\n

如果符号不存在\xe2\x80\x99t 驱动程序可以继续加载而不解析导入吗?

\n
\n\n

我对此不太确定。但您可以验证符号是否从 的输出中导出cat /proc/kallsyms。导出的符号将有两个条目。一个带有符号名称,另一个带有 _ ksymtab前缀。

\n\n

例如,对于 printk。

\n\n

ffffffff814fd1e2 T printk\nffffffff81812550 r __ksymtab_printk

\n