![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
module
文章平均质量分 60
午时龙且
这个作者很懒,什么都没留下…
展开
-
关于无法生成模块的原因MODPOST 0 modules
这几天,一直都被这个问题纠结着,挺莫名其妙。通过昨天的思索,发现,生成一个正确的模块,需要根据模块的运行平台,指定合适的内核源代码,合适的编译器。还有就是由于内核版本的不断升级,有些接口,有些变量已经不再使用,这个时候,指定的内核源代码无法继续为程序提供所需的函数,模块无法生成。最明显的一个错误如下之前百思不得其解,有朋友说是因为之前没有编译过,OK,哥编译一下,问题在这里,obj原创 2012-12-23 10:10:16 · 13154 阅读 · 3 评论 -
关于内核模块安装了,但是没有打印信息的解决
提升为最高级别#include #include MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk("" "hello world enter\n"); return 0;}static void hello_exit(void){ printk("原创 2012-12-22 15:03:47 · 1150 阅读 · 0 评论 -
点亮led过程分析
在mini2440中,led,按键等驱动默认已经被编译入内核,所以一直不知道同一个硬件设备资源能不能作为多个模块,编译入内核。故重写了一个myled.ko,系统默认是led.ko,并用应用程序检测。myled.c #include #include #include #include #include #include #include #include #includ原创 2012-12-23 16:45:34 · 606 阅读 · 0 评论 -
insmod: error inserting 'hello.ko': -1 Invalid module format
insmod: error inserting 'hello.ko': -1 Invalid module format生成的ko,不能正常加载,提示以上错误是因为内核模块生成的环境与运行的环境不一致,用linux-2.6.27内核源代码生成的模块,可能就不能在linux-2.6.32.2内核的linux环境下加载,需要在linux-2.6.27内核的linux环境下加载。最多见的就是原创 2012-12-22 14:13:27 · 3315 阅读 · 0 评论 -
最简单的hello内核模块
1.最简单的内核模块hello.c#include #include MODULE_LICENSE("Dual BSD/GPL");//模块许可证说明,不加此句,会提示内核污染的警告,static int hello_init(void){ printk("" "Hello World enter\n");//中间有空格,不能有逗号 return原创 2012-11-17 21:26:27 · 597 阅读 · 0 评论 -
模块加载
在加载驱动程序过程中,驱动程序通过Makefile文件编译成模块文件xxx.ko后,通过网络端口下载到开发板上面,接下来调试驱动程序采用如下步骤:a) 打开终端,找到驱动程序所在位置后,执行insmod xxxx.ko加载编译成功的驱动程序。b) 驱动模块加载成功后,在开发板下位机proc/devices目录下面会有设备节点的具体信息,可以在终端下输入cat /proc/dev转载 2012-12-09 22:57:40 · 560 阅读 · 0 评论