<dl id='fkpt9'></dl>
    1. <span id='fkpt9'></span>

      1. <ins id='fkpt9'></ins>

          <code id='fkpt9'><strong id='fkpt9'></strong></code>
          <i id='fkpt9'><div id='fkpt9'><ins id='fkpt9'></ins></div></i>
          <acronym id='fkpt9'><em id='fkpt9'></em><td id='fkpt9'><div id='fkpt9'></div></td></acronym><address id='fkpt9'><big id='fkpt9'><big id='fkpt9'></big><legend id='fkpt9'></legend></big></address>
          <i id='fkpt9'></i>
          <fieldset id='fkpt9'></fieldset>
        1. <tr id='fkpt9'><strong id='fkpt9'></strong><small id='fkpt9'></small><button id='fkpt9'></button><li id='fkpt9'><noscript id='fkpt9'><big id='fkpt9'></big><dt id='fkpt9'></dt></noscript></li></tr><ol id='fkpt9'><table id='fkpt9'><blockquote id='fkpt9'><tbody id='fkpt9'></tbody></blockquote></table></ol><u id='fkpt9'></u><kbd id='fkpt9'><kbd id='fkpt9'></kbd></kbd>

            Linux驱动Invalid module format错误解决

            • 时间:
            • 浏览:11
            • 来源:124软件资讯网

              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法式正常执行