簡単な hello world カーネル モジュールを作成しました。メイクファイルは私が以下のように書きました:
obj -m += hello.o
KDIR: /usr/src/linux-headers-3.2.0-21-generic-pae
all:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
rm -rf *.o *.ko *.mod.* *.symvers *.order
次に、make を使用してモジュールをコンパイルしました。それはうまくいきました。
そして、最近、カーネルが 3.2.0-24 にアップデートされたときに、再度「make」を実行しました (もちろん、KDIR でバージョンを 24 に変更しました)。しかし、次のエラーが発生しました。
make[1]: Entering directory `/usr/src/linux-headers-3.2.0-24-generic-pae'
make[2]: *** No rule to make target `arch/x86/tools/relocs.c', needed
by `arch/x86/tools/relocs'. Stop.
確認したところ、relocs の実行ファイルが /arch/x86/tools/ にあることがわかりましたが、relocs.c はありませんでした。
モジュールを正常にコンパイルするには、どのように修正すればよいですか?