insmod 模块1调用模块2 提示找不到模块2里面函数的问题总结

2024-05-14 20:58

本文主要是介绍insmod 模块1调用模块2 提示找不到模块2里面函数的问题总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

源码:

modules2.c

#include <linux/module.h>
#include <linux/init.h>
#include <linux/moduleparam.h>int print_console(int a)
{printk("The value of a is : %d\n",a);return 0;
}//EXPORT_SYMBOL(print_console);int __init test_init(void)
{printk("insmod ok\n");return 0;        
}void __exit test_exit(void)
{printk("bye\n");
}module_init(test_init);
module_exit(test_exit);MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("ATHEROS");
MODULE_DESCRIPTION("hello module test");
MODULE_SUPPORTED_DEVICE("AR7241"); 

modules1.c

#include <linux/module.h>
#include <linux/init.h>
#include <linux/moduleparam.h>extern int print_console(int);static int b;
module_param(b, int, S_IRUSR|S_IWUSR);
MODULE_PARM_DESC(b,  "A number");int __init test_init(void)
{printk("insmod OK \n");print_console(b);return 0;
}void __init test_exit(void)
{printk("bye\n");
}module_init(test_init);
module_exit(test_exit);MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("ATHEROS");
MODULE_DESCRIPTION("hello module test");
MODULE_SUPPORTED_DEVICE("AR7241"); 

先insmod  modules2.ko

然后insmod modules1.ko b=2

提示未定义的函数print_console 

所以在模块2里面定义了函数,就必须

EXPORT_SYMBOL(print_console);
使函数对所有内核公开,在2.6必须这么做,以前的老内核貌似不用。


第二,给模块传参数必须要 加b=2 例如insmod modules1.ko b=2

这点和c语言不一样,刚开始我直接insmod modules1.ko 2 结果报错Unknown parameter

所以总结到这里给自己长点记性。

 


这篇关于insmod 模块1调用模块2 提示找不到模块2里面函数的问题总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989838

相关文章

Python运行中频繁出现Restart提示的解决办法

《Python运行中频繁出现Restart提示的解决办法》在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的Python程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼... 目录问题描述代码示例无限循环递归调用内存泄漏解决方案1. 检查代码逻辑无限循环递归调用内存泄漏2.

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SQL server配置管理器找不到如何打开它

《SQLserver配置管理器找不到如何打开它》最近遇到了SQLserver配置管理器打不开的问题,尝试在开始菜单栏搜SQLServerManager无果,于是将自己找到的方法总结分享给大家,对SQ... 目录方法一:桌面图标进入方法二:运行窗口进入方法三:查找文件路径方法四:检查 SQL Server 安

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2