1. 編譯內核模塊遇到的問題


問題:使用內核包編譯驅動時常常提示如下:

WARNING: Symbol version dump /usr/src/linux-2.6.26/Module.symvers
           is missing; modules will have no dependencies and modversions.

原因:通常頭核心包中是沒有Module.symvers這個文件的,要想獲取這個文件只能到下載相同版本核心(2.6.26-1-686)的頭文件,是下載不是apt-get install !!!,只有下載的頭文件中才有這個Module.symvers。把Module.symvers 復制到核心包中,然后執行如下步驟:make oldconfig && make prepare && make scripts。
然后重新編譯驅動,將解決這個warning,同時也解決了版本不正確的問題

我不知道有多少人會碰上這樣的問題,反正google中我發現沒有人能說明白這個問題

ps:我遇到的問題是則是

運行:make -C /usr/src/linux-2.6.34-12 SUBDIRS=$PWD modules
出錯如下:

make: Entering directory `/usr/src/linux-2.6.34-12'


  ERROR: Kernel configuration is invalid.
         include/generated/autoconf.h or include/config/auto.conf are missing.
         Run 'make oldconfig && make prepare' on kernel src to fix it.




  WARNING: Symbol version dump /usr/src/linux-2.6.34-12/Module.symvers
           is missing; modules will have no dependencies and modversions.


scripts/Makefile.build:44: /usr/src/linux-2.6.34-12/PWD/Makefile: No such file or directory
make[1]: *** No rule to make target `/usr/src/linux-2.6.34-12/PWD/Makefile'.  Stop.
make: *** [_module_PWD] Error 2
make: Leaving directory `/usr/src/linux-2.6.34-12'

運行:make oldconfig && make prepare

再次出錯如下:

make: Entering directory `/usr/src/linux-2.6.34-12'


  WARNING: Symbol version dump /usr/src/linux-2.6.34-12/Module.symvers
           is missing; modules will have no dependencies and modversions.


  CC [M]  /home/xxx/test/dr/drhello.o
  Building modules, stage 2.
  MODPOST 1 modules
/bin/sh: scripts/mod/modpost: No such file or directory
make[1]: *** [__modpost] Error 127
make: *** [modules] Error 2
make: Leaving directory `/usr/src/linux-2.6.34-12'


加上:make scripts 可以了

make: Entering directory `/usr/src/linux-2.6.34-12'


  WARNING: Symbol version dump /usr/src/linux-2.6.34-12/Module.symvers
           is missing; modules will have no dependencies and modversions.


  CC [M]  /home/xxx/test/dr/drhello.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/test/dr/drhello.mod.o
  LD [M]  /home/test/dr/drhello.ko
make: Leaving directory `/usr/src/linux-2.6.34-12'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM