使用xen库开发内核模块时要针对哪个内核?

时间:2019-06-17 08:21:14

标签: c module linux-kernel xen

我目前正在开发一个内核模块,该模块将在Xen的非特权域内运行。该模块应调用

xen/grant_table.h: gnttab_grant_foreign_access()

但是当我要插入它时,出现错误消息:

Unknown symbol gnttab_grant_foreign_access (err 0)

我检查了内核版本,我所针对的版本和在非特权域中运行的版本都匹配。更准确地说,uname -rmodinfo MODULE报告的版本字符串是相等的。 /proc/kallsyms列出了内核要导出的函数/符号:

ffff00000853d088 T gnttab_grant_foreign_access

我发现奇怪的是,在运行时

nm MODULE

我得到gnttab_grant_foreign_access是未定义的符号,但是printk也未定义。

U gnttab_grant_foreign_access
U printk

在此post中,我读到,必须专门针对DOM0内核而不是非特权域之一构建内核模块。由于这是我唯一能找到的资源,并且该文档在该主题上有点稀疏,因此我想在这里问是否确实如此?这让我有些奇怪,因为我想将模块加载到版本A的内核中,但必须将其编译为版本B的内核。

0 个答案:

没有答案