2

インターネットで入手可能なカーネルモジュールコードをクロスコンパイルしようとしていました。私の開発用 PC は Linux 2.6.31 で、ターゲット アーキテクチャは Linux 2.6.32 カーネルの ARM です。私のツールチェーンは Code Sourcery arm-none-linux-gnueabi です。私の Makefile は次のようになります:-

obj-m := mymodule.o
KDIR := /path/to/target/2.6.32/kernel

all:
$(MAKE) ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi -C $(KDIR) M=$(PWD) modules
clean:
$(MAKE) ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi -C $(KDIR) M=$(PWD) clean

私の Linux 2.6.32 カーネルは単なるソース ツリーです。構成または構築されていません。ベンダーから入手したカーネルソースを解凍しただけです。モジュールは正常に構築されました。

しかし、モジュールを insmod しようとすると、「無効なモジュール形式」と表示されます。私の質問は次のとおりです:-これは、実行中のカーネルに対してビルドしておらず、まだ構成/ビルドされていないカーネル ソース ツリーに対してビルドしていないためですか? 誰でもこの問題を解決するのを手伝ってくれませんか?

ありがとう、子守唄

4

0 に答える 0