linux – 如何从外部模块导出符号?
我在内核源代码树之外编码.有两个模块,第一个printt有一个函数printtty()来打印字符串到当前tty,第二个模块hello在初始化期间调用printtty(). 我在模块printt中添加了EXPORT_SYMBOL(printtty),在insmod ./printt.ko之后,可以在/ proc / kallsyms中看到printtty()的信息. 模块hello的make过程可以正常进行.但insmod ./hello.ko会导致如下错误: insmod: ERROR: could not insert module hello.ko: Invalid parameters 和dmesg显示 hello: no symbol version for printtty hello: Unknown symbol printtty (err -22)`. 我已经修好了 (1)将.ko文件复制到/ lib / modules / version / kernel下面的位置 (2)将导出的符号添加到/lib/modules/version/build/Module.symvers 但我想知道有没有办法从外部模块导出符号(不修改内核源代码树)? 解决方法在你的hello模块的Makefile的最顶部添加这一行:KBUILD_EXTRA_SYMBOLS := /home/your-user/path/to/printt/Module.symvers (务必将正确的路径放入printt模块). 现在重建你的hello模块,它将被加载得很好. 有关详细信息,请参见Documentation/kbuild/modules.txt,“6.3来自另一个外部模块的符号”. (编辑:鲜蔬坊站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 如何在同一时间运行不同版本的node.js?
- c – 如何以编程方式获取linux中设备/分区的uuid?
- linux – Unix vs BSD vs TCP vs Internet套接字?
- linux – 版本控制软件,将保留POSIX FS(ext3 / ext4)中的所
- linux – Systemtap PPC32支持
- linux – 有没有一个工具来检查两个callgrind / valgrind配
- 如何在Linux上捕获键盘事件并将监视器用作文本显示?
- 使用MATLAB Engine连接已运行的MATLAB
- linux – 为for循环设置IFS然后在for循环中取消设置是否安全
- 正确的Linux串口初始化序列