免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3510 | 回复: 13
打印 上一主题 下一主题

内核编程卡壳啦 !!!(已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-31 18:39 |只看该作者 |倒序浏览
大家好 :

我在内核模块编程时遇到了这样的问题: 我编译完hello.c后 正常的生成可.ko文件  但是我用insmod 挂载模块时 却报错

insmod: error inserting 'hello.ko': -1 Invalid module format
请问时怎么回事? 我使用的系统是suse 内核版本时2.6.25的

[ 本帖最后由 fangxiao802 于 2009-1-3 09:33 编辑 ]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2008-12-31 18:54 |只看该作者
确认一下编译模块的内核版本和你insmod的内核版本一致。

论坛徽章:
0
3 [报告]
发表于 2008-12-31 19:03 |只看该作者

回复 #2 Godbach 的帖子

内核版本是一致的  :em11:

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
4 [报告]
发表于 2008-12-31 19:17 |只看该作者
你这个hello.c中insmod的时候是否需要带参数

论坛徽章:
0
5 [报告]
发表于 2008-12-31 20:41 |只看该作者

回复 #4 Godbach 的帖子

不需要任何参数 就是一个最简单的内核模块程序
下面是我 make 打印出来的信息
make -C /usr/src/linux/ M=/home/zch/test/test modules
make[1]: Entering directory `/usr/src/linux-2.6.25.5-1.1'
  CC [M]  /home/zch/test/test/hello.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/zch/test/test/hello.mod.o
  LD [M]  /home/zch/test/test/hello.ko
make[1]: Leaving directory `/usr/src/linux-2.6.25.5-1.1'
下面是我 insmod  的结果
linux-z919:/home/zch/test/test # insmod hello.ko
insmod: error inserting 'hello.ko': -1 Invalid module format

我的Makefile文件:


PWD=$(shell pwd)

KERNEL_SRC=/usr/src/linux

obj-m := hello.o

all:
   $(MAEK) -C $(KERNEL_SRC) M=$(PWD) modules
clean:
   rm *.o

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
6 [报告]
发表于 2008-12-31 20:51 |只看该作者
uname -r的结果也是2.6.25.5-1.1吗

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
7 [报告]
发表于 2008-12-31 20:53 |只看该作者
make[1]: Entering directory `/usr/src/linux-2.6.25.5-1.1'
KERNEL_SRC=/usr/src/linux


这两个是同一个目录吗?

论坛徽章:
0
8 [报告]
发表于 2008-12-31 21:05 |只看该作者

回复 #7 Godbach 的帖子

是同一个目录 前者是我建的的一个链接
使用uname -r 也是2.6.25.5-1.1

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
9 [报告]
发表于 2008-12-31 23:15 |只看该作者
贴一个网上搜出的类似问题以及回答:
On Tue, 2006-03-28 at 20:30 -0800, munees waran wrote:
>
> Hi All,
>  
> I have developed hello world program in Red hat linux (kernel version
> 2.4). Then I tried to port it in suse linux (kernel version 2.6).
>  
> I got the following error:
> insmod: error inserting 'hello.o'  :-l Invalid module format
>  
> Pls help me to resolve this issue.
>  
you mis-built the module for 2.6, you need a very different makefile for
a 2.6 kernel. See Documentation/kbuild for details and examples


因此,我还是有点怀疑是内核版本不匹配的问题。

论坛徽章:
0
10 [报告]
发表于 2009-01-01 22:48 |只看该作者

回复 #5 fangxiao802 的帖子

主要就是要有正确的Makefile
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP