编译tpm驱动程序会导致tpm_open()未定义



我正在尝试在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. conf]ko)定义!警告:"tpm_read" [/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2. txt]ko)定义!警告:"tpm_remove_hardware" [/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2. info]ko)定义!警告:"tpm_release" [/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2. txt]ko)定义!警告:"tpm_show_pubek" [/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2. txt]ko)定义!警告:"tpm_show_caps" [/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2. txt]ko)定义!警告:"tpm_write" [/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2. txt]ko)定义!警告:"tpm_register_hardware" [/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2. info]ko)定义!警告:"tpm_store_cancel" [/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2. txt]ko)定义!警告:"tpm_show_pcrs" [/home/burwani/Desktop/tpm_act2_driver_poc/tpm_act2_driver/tpm_act2. txt]ko)定义!

您正在构建内核4.4.0-45-generic。在我看来,方法就像Tpm_open()和tpm_read()仅在4.4以前的内核中在头文件中声明,最后一个内核其中,它们在pm.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你的模块时,你看到的其他方法也被定义为"未定义"。

相关内容

  • 没有找到相关文章

最新更新