insmod Invalid module format

Fedora 9系统,内核版本是2.6.25.14。

1.从www.kernel.org下载Linux 2.6.25.14源代码并解压,存放路径是/usr/src/linux-2.6.25.14。

2.驱动程序是hello.c。在当前目录下执行命令make编译得到hello.ko。Makefile如下:

obj-m := hello.o

KDIR := /usr/src/linux-2.6.25.14/

PWD := $(shell pwd)

all:

[注意这里是Tab]$(MAKE) -C $(KDIR) M=$(PWD)

clean:

[注意这里是Tab]rm -f *.o *.ko *.mod.* Module.* *.order

3.执行命令insmod ./hello.ko插入模块,失败,错误信息是insmod: error inserting './hello.ko': -1 Invalid module format。

4.执行命令cat /var/log/message | tail,打印信息version magic '2.6.25.14 mod_unload 686' should be '2.6.25-14.fc9.i686 SMP mod_unload 686 4KSTACKS'。

5.执行命令uname -r,可以看到Fedora 9的版本信息是2.6.25-14.fc9.i686。进入/usr/src/linux-2.6.25.14,编辑Makefile,将EXTRAVERSION = .14修改为EXTRAVERSION = -14.fc9.i686。

6. 执行命令cp /boot/config-2.6.25-14.fc9.i686 ./.config,覆盖原有配置文件。

7. 进入/usr/src/linux-2.6.25.14,执行make menuconfig配置内核,执行make编译内核。

8. 最后,再次编译驱动程序hello.c得到hello.ko。执行insmod ./hello.ko,即可正确insert模块。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值