0

Linux の下でサンプルのカーネル モジュールを構築しています。モジュールソースは「カーネルツリーの外」にあります。git からカーネル ソース ツリーを取得しました。ただし、カーネルの構成には時間がかかります。そのため、現時点では、ディストリビューションによって提供されるカーネル ヘッダーに対してモジュールをビルドしようとしています。

私のメイクファイル:

KVERSION=$(shell uname -r)
   PWD := $(shell pwd)
   all:
           make -C /lib/modules/$(KVERSION)/build/  M=$(PWD) modules
   clean:
           make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean


   $(info Building with KERNELRELEASE = ${KERNELRELEASE})
  obj-m := hello.o

しかし、私が見つけられなかったなどの報告をやめてください。つまり、ヘッダーが見つからなかったということです。

しかし、ファイルはそこにあります:

 $ls /lib/modules/$(uname -r)/build
 $arch  block  crypto  drivers  firmware  fs  include  init  ipc  kernel  lib  Makefile             Makefile.common  mm  Module.symvers  net  samples  scripts  security  sound  System.map  tools  usr  virt

些細な問題だと思います。しかし、それでも解決策を見つけることができませんでした。

前もって感謝します。

編集: エラー:

Building with KERNELRELEASE =
make -C /lib/modules/2.6.32-220.el6.x86_64/build/  M=/usr/local/src/kernel_mods
make[1]: Entering directory `/usr/src/kernels/2.6.32-220.el6.x86_64'
Building with KERNELRELEASE = 2.6.32-220.el6.x86_64
  LD      /usr/local/src/kernel_mods/built-in.o
  CC [M]  /usr/local/src/kernel_mods/hello.o
/usr/local/src/kernel_mods/hello.c:2:27: error: linux/modules.h: No such file or directory
/usr/local/src/kernel_mods/hello.c:21: error: expected declaration specifiers or â...â before string constant
/usr/local/src/kernel_mods/hello.c:21: warning: data definition has no type or storage class
/usr/local/src/kernel_mods/hello.c:21: warning: type defaults to âintâ in declaration of âMODULE_LICENSEâ
/usr/local/src/kernel_mods/hello.c:21: warning: function declaration isnât a prototype
/usr/local/src/kernel_mods/hello.c:22: error: expected declaration specifiers or â...â before string constant
/usr/local/src/kernel_mods/hello.c:22: warning: data definition has no type or storage class
/usr/local/src/kernel_mods/hello.c:22: warning: type defaults to âintâ in declaration of âMODULE_AUTHORâ
/usr/local/src/kernel_mods/hello.c:22: warning: function declaration isnât a prototype
/usr/local/src/kernel_mods/hello.c:23: error: expected declaration specifiers or â...â before string constant
/usr/local/src/kernel_mods/hello.c:23: warning: data definition has no type or storage class
/usr/local/src/kernel_mods/hello.c:23: warning: type defaults to âintâ in declaration of âMODULE_DESCRIPTIONâ
/usr/local/src/kernel_mods/hello.c:23: warning: function declaration isnât a prototype
make[2]: *** [/usr/local/src/kernel_mods/hello.o] Error 1
make[1]: *** [_module_/usr/local/src/kernel_mods] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.32-220.el6.x86_64'
make: *** [all] Error 2
4

1 に答える 1

3

私はあなたがするつもりだったと思います

#include <linux/module.h>

それよりも

#include <linux/modules.h>
于 2012-05-31T12:46:07.900 に答える