gpt4 book ai didi

编译 tpm 驱动程序给出 tpm_open() undefined

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:16 24 4
gpt4 key购买 nike

我正在尝试在 Linux 中注册 TPM 驱动程序。编译时,我能够获取 .ko 输出文件,但出现下面列出的错误。在我看来,这与我机器上的 linux 头文件有关,它可能缺少这些函数的定义。我将 linux 头文件和内核升级到最新版本,但仍然遇到问题。

由于这些函数未被识别,modprobe 失败并出现相同的错误(这些函数上的未知符号 err0)。

构建模块,第 2 阶段。使用 KERNELRELEASE = 4.4.0-45-generic 构建 MODPOST 2 个模块警告:“tpm_open”[/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2.ko] 未定义!警告:“tpm_read”[/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2.ko] 未定义!警告:“tpm_remove_hardware”[/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2.ko] 未定义!警告:“tpm_release”[/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2.ko] 未定义!警告:“tpm_show_pubek”[/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2.ko] 未定义!警告:“tpm_show_caps”[/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2.ko] 未定义!警告:“tpm_write”[/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2.ko] 未定义!警告:“tpm_register_hardware”[/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2.ko] 未定义!警告:“tpm_store_cancel”[/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2.ko] 未定义!警告:“tpm_show_pcrs”[/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2.ko] 未定义!

最佳答案

您正在构建内核 4.4.0-45-generic。在我看来,方法就像tpm_open() 和 tpm_read() 仅在早于 4.4 的内核中在头文件中声明,并且最后一个内核它们在 tpm.h 头文件中声明的位置是 3.9: http://lxr.free-electrons.com/source/drivers/char/tpm/tpm.h?v=3.9

您的代码是否基于针对版本为 <= 3.9 的内核构建的内核模块?

在内核 4.4 中,您不会在 tpm.h 头文件中找到这些方法。

tpm_open() 在内核 4.4 中被定义为静态方法。

我相信,当您尝试对模块进行 modprobe 时,您看到的其他“未定义”方法也被定义为静态的。

关于编译 tpm 驱动程序给出 tpm_open() undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40478387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com