1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      Linux驅(qū)動(dòng)Invalid module format錯(cuò)誤解決

      更新時(shí)間: 2008-05-09 16:30:20來源: 粵嵌教育瀏覽量:990

        1.編譯錯(cuò)誤(其實(shí)這個(gè)問題和 Makefile有很大關(guān)系)

        2.Invalid module format 錯(cuò)誤

        3.insmod: error inserting './hello.ko': -1 File exists
        
        開發(fā)環(huán)境

        內(nèi)核版本: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 版本的內(nèi)核,在2.6下用這種寫法很可能導(dǎo)致許多編譯錯(cuò)誤,即使編譯通過也會(huì)產(chǎn)生 Invalid module format 錯(cuò)誤。

        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 同時(shí)也解決了 Invalid module format 錯(cuò)誤

        insmod: error inserting './hello.ko': -1 File exists 錯(cuò)誤解決

        次insmod ./hello.ko 沒有輸出表示你的模塊被正常載入了,后來的錯(cuò)誤是你重復(fù)載入這個(gè)模塊導(dǎo)致的

        用命令 lsmod | grep hello 看看是不是有這個(gè)模塊?

        用命令 tail /var/log/messages

        有 hello,world

        module程序正常執(zhí)行。


      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 日韩一区二区中文字幕 | 五月婷婷之综合缴情 | 天堂v亚洲国产ⅴ第一次 | 色婷婷AⅤ一区二区三区 | 久久亚洲性爱视频 | 亚洲免费视频免在线观看 |