繁体   English   中英

为什么从Linux内核导出的符号不能被模块使用?

[英]why symbol exported from linux kernel cannot be used by module?

我在内核.c文件(例如socket.c)中定义了可变性,并如下导出:

int abcdefg;
EXPORT_SYMBOL(abcdefg);

然后使用“ sudo make bzImage”进行编译并重新启动。但是当我在自己的模块中使用它时,在对模块进行insmod时,它会显示“模块中的未知符号”。

所以我去看符号列表。 使用时

cat /proc/kallsyms | grep "abcdefg"

什么也没有。

使用时

nm vmlinux | grep "abcdefg"

c1d2b700 B abcdefg

如何在自己的模块中使用符号?

https://i.stack.imgur.com/Zv5SM.png

听起来您实际上并没有在运行新内核。 –乔纳森·莱因哈特(Jonathon Reinhart)

是的,你是对的! 我忘了用“ make install”更新内核。 –珍妮

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM