当前位置:  技术问答>linux和unix

hello.ko:invalid module format

    来源: 互联网  发布时间:2016-09-07

    本文导语:  本帖最后由 piedgogo 于 2010-06-22 14:28:07 编辑 [root@global Character]# gcc -v 使用内建 specs。 目标:i386-redhat-linux 配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=relea...

本帖最后由 piedgogo 于 2010-06-22 14:28:07 编辑
[root@global Character]# gcc -v
使用内建 specs。
目标:i386-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
线程模型:posix
gcc 版本 4.1.1 20061011 (Red Hat 4.1.1-30)
[root@global Character]# cat /proc/version 
Linux version 2.6.18-1.2798.fc6xen (brewbuilder@hs20-bc2-4.build.redhat.com) (gcc version 4.1.1 20061011 (Red Hat 4.1.1-30)) #1 SMP Mon Oct 16 15:11:19 EDT 2006


[root@global 2.6.18-1.2798.fc6xen]# pwd
/lib/modules/2.6.18-1.2798.fc6xen
[root@global 2.6.18-1.2798.fc6xen]# ls -l build
lrwxrwxrwx 1 root root 40 06-22 10:34 build -> /usr/src/kernels/2.6.18-1.2798.fc6-i686/


下面是Makefile
# 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


编译没问题,ismod是出现:
[root@global Character]# insmod ./hello.ko
insmod: error inserting './hello.ko': -1 Invalid module format


我实在不知道该怎么搞了,代码里面有包含GPL条款。

|
把代码贴出来看看 。 

另外

modinfo hello.ko

看看,版本号跟  uname -a 命令读出来的是否一致?

|
用这个makefile

# Makefile 2.6

obj-m += hello.o

KDIR:=/lib/modules/$(shell uname -r)/build

#PWD=$(shell pwd)

all:
make -C $(KDIR) M=$(PWD) modules
clean:
make -C $(KDIR) M=$(PWD) clean

|
驱动的版本和内核版本必须完全一致。。

另外,内核源代码树必须make 过

|


file hello.ko看看。

|
编译驱动用的是运行的内核模块,所以不存在版本不一致问题.
我认为要确认两点:
1.该gcc编译器,是否是编译内核的那个版本,当然如果是安装时字带的,那多办就是了.
2.如果是这样话,你把hello代码贴出来看看,是否代码里面有内核版本过期的函数出现.

|
insmod: error inserting './hello.ko': -1 Invalid module format
出现这一句,说明你已经安装了模块了,你可以看看
 lsmod | greip hello


另外,linux必须转到控制台模式下才能输出 helloworkld

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • insmod hello.o:couldn't find the kernel version the module was compiled for
  • 简单的hello world module,不知道怎么一直编译出错,谢谢
  • 在docker容器中运行hello world!
  • HTML标签参考手册 iis7站长之家
  • 据说这是史上最变态的6个C语言Hello, World程序
  • 我已经编译了一个hello.class的文件,为什么,使用java hello还是提示没有hello.class这个类呢?
  • 编译一个hello.cpp文件后 ,再list ,怎么会多了个hello.cpp~文件?
  • 如何设置服务器, 使http://localhost/hello.php变成http://www.example.com/hello.php生效?
  • 一个可执行文件在它所在的目录执行它,必须这样 ./hello , 直接 hello 就不行???
  • 我写了一个servlet--hello.hello,放在tomcat的web-inf/classes下,但不知该如何访问?在线等待
  • 如果没有操作系统,Hello World可以运行吗?如果要在一台没有操作系统的机器上运行Hello World需要什么?应该怎么实现?
  • 使用hello-objs该项编译hello驱动模块,竟然会提示失败..
  • Hello world失败.........
  • 我的小hello程序运行不起来?
  • 我用cc为何不能编译Hello,World。
  • hello world在终端里显示
  • 菜鸟求助linux最最基本的HELLO函数错误
  • hello.ko模块的加载与卸载
  • 请教如何用java虚拟机运行hello.class文件,谢谢。
  • gcc编译hello.c出现问题.我是新手
  • 用g++编译了个hello world ,但是运行的时候提示权限不够
  • sco下用gcc编译hello.cpp出来的可执行文件居然有2800280字节,而且运行出错???
  • 关于Linux Device Ddriver 3的hello world的例子?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3