gpt4 book ai didi

c - 从 linux 内核模块读取或写入时获取未知符号 ***_******(err 0)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:16:13 26 4
gpt4 key购买 nike

我知道从内核读取或写入 (i/o) 是一件坏事,但在某些情况下我必须这样做,并且在阅读许多网站时我从 things you should never do in kernel 获得了代码所以想尝试一下。在制作模块时。在编译时它给了我

WARNING: "sys_write" [/path/to/file/file.ko] undefined! WARNING:"sys_open" [/path/to/file/file.ko] undefined!

但是我在插入模块的时候想到了插入模块

insmod: ERROR: could not insert module file.ko: Unknown symbol in module

为了得到答案,我浏览了一些网站(c-unkown symbol class create),但我有

MODULE_LICENSE("GPL");

在我的模块代码中意味着在搜索时我得到了在制作模块时提供未知符号。这是从Documenats/kbuild/modules.txt.

然后我做了

make KBUILD_EXTRA_SYMBOLS='/home/lunako/Documents/ker_write/Module.symvers'

还是没有结果。我现在该怎么办?谢谢

最佳答案

我不鼓励你继续你正在做的事情,但如果你坚持,你需要导出 sys_open 函数,以便它可以被模块使用。搜索 EXPORT_SYMBOL

顺便说一句,您需要重新编译内核以使该符号可用于内核模块。

关于c - 从 linux 内核模块读取或写入时获取未知符号 ***_******(err 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29722475/

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