· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [专题] IBM Rational高峰论坛 Windows 7十大功能
· [专题] 史上就危险7月 微软 BizSpark 计划介绍
· [IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 我也能做CTO_赛迪连载 赛迪七夕特别行动
· [热点] Chrome 4.0采用V8引擎 Java开发编程规范

Linux驱动Invalid module format错误解决

发布时间:2008.05.09 04:09     来源:赛迪网    作者:metallica

1.编译错误(其实这个问题和 Makefile有很大关系)

2.Invalid module format 错误

3.insmod: error inserting './hello.ko': -1 File exists

开发环境

内核版本:2.6.22(我下载的最新版本)

gcc:gcc (GCC) 4.1.2

Makefile

gcc -D__KERNEL__ -DMODULE -DLINUX -I /usr/local/src/linux2.4/include -c -o hello.o hello.c

上面这种写法适合 2.4 版本的内核,在2.6下用这种写法很可能导致许多编译错误,即使编译通过也会产生 Invalid module format 错误。

2.6下正确的 Makefie 如下:

# Makefile2.6
ifneq ($(KERNELRELEASE),)
#kbuild syntax. dependency relationshsip of files and target modules are listed here.
mymodule-objs := hello.o
obj-m := hello.o 
else
PWD := $(shell pwd)
KVER ?= $(shell uname -r)
KDIR := /lib/modules/$(KVER)/build
all:
$(MAKE) -C $(KDIR) M=$(PWD)
clean:
rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions
endif

使用上面的 Makefie 同时也解决了 Invalid module format 错误

insmod: error inserting './hello.ko': -1 File exists 错误解决

第一次insmod ./hello.ko 没有输出表示你的模块被正常载入了,后来的错误是你重复载入这个模块导致的

用命令 lsmod | grep hello 看看是不是有这个模块?

用命令 tail /var/log/messages

有 hello,world

module程序正常执行。

(责任编辑:云子)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Linux操作系统上去掉文件属性的命令介绍 (05-08) · Linux下非Root用户不能绑定1024端口问题 (05-08)
· WindowsXP Secure CRT登录Linux乱码问题 (05-08) · Linux操作系统SSH远程登录慢的解决方法 (05-08)
· Linux管理应用技巧 amulecmd的使用方法 (05-08) · Ubuntu Linux下Virtualbox桥接网络配置 (05-07)
· CentOS Linux系统建立管理员组内一般用户 (05-07) · Linux系统中atime ctime mtime之间区别 (05-07)
· Ubuntu Linux 7.10 系统下改变域名映射 (05-07) · 实用技巧:让Linux系统有效防御ARP攻击 (05-07)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
资讯 通信 IT产品 IT技术 信息化
专题:扭亏为盈 联想09年Q2翻番
·专题:Tech·Ed 2009微..
·直播:2009互联网大会..
·迅雷搜狐"互搏" 谁动了..
专题:诺基亚危局已现 或重蹈摩托覆辙
·六股势力角逐4G标准 中..
·专题:联通iPhone并不贵..
·专题:排排坐开商店 三..
商务演示需求分析 多媒体会议室必备投影
·VMware在京隆重举行2009..
·专题:笔记本频道10月热..
·专题:学生机市场 惠普 ..
专题:Tech.Ed 2009微软技术大会
·专题:2009 SYBASE 亚太..
·专题:微软新一代桌面操..
·专题:2009年第3届CSDN..