Devkit 8000用のLinuxデバイスドライバをビルドしようとしています。次のエラーメッセージが表示されます。
その指示に従おうとしたとき、私はよく理解していないYes / Noの質問をたくさん受けました。最後に、25個のプロセッサ(?)から選択できます。
これは私のビルドファイルです。
ifeq ($(KERNELRELEASE),)
KERNELDIR = ~/sources/linux-3.2.6
PWD := $(shell pwd)
modules:
$(MAKE) ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- -C $(KERNELDIR) M=$(PWD) modules
.PHONY: modules clean
else
# called from kernel build system: just declare what our modules are
obj-m := LED_timer.o
endif
私のコード自体はまだ関連性がないと思います。知る私のソースコードはエラーでいっぱいなので、見たくないでしょう。ハハ。
答え1
使用しているソースコードをどこで入手したかは明らかではありませんが、明らかに.config
無効です。プロセッサの種類など、さまざまなオプションを設定するために使用されます。これらのオプションは文字通り何百ものあり、互いに複雑な依存関係を持っています(たとえば、選択したプロセッサは他の選択に影響を与えます)。
バニラソースには、.config
提供または生成する必要があるものはありません。以前のバージョンから出るときに使用され、make oldconfig
更新する必要があります。.config
時々、このプロセスは完全に自動化することはできず、デフォルトではCLIインターフェイスを使用して実行されます。構成せずにmake config
試している場合make oldconfig
にも発生する可能性があります。
make menuconfig
すべてをよりよく理解するには、よりグラフィックスの内容を確認する必要があります。
しかし、最初から始めて自分に合った構成を得ることを試みることは、自分が何をしているのか分からないと不可能です。理想的には、実行中のカーネルの作成に使用したカーネルから始めることをお勧めします。これは、単にモジュールを構築する場合に特に当てはまります。実際のカーネルを構築する必要はありませんが、モジュールをコンパイルするには、使用したいカーネルがどのようにコンパイルされたかを知る必要があります。
/proc/config.gz
ターゲットシステムで見つけることができることを願っています。これはディスクファイルではなく、それを検索するにはシステムが実行されている必要があります。 gzipで圧縮されています
gunzip config.gz
mv config .config
すべきこと。これをソースツリーにコピーし、make menuconfig
指示を実行してビルドするモジュールを追加します。
そうでない場合は、使用された構成を追跡する必要があります。 また、モジュールをビルドする場合は、まったく同じカーネルバージョンを使用する必要があることに注意してください。
これは一般概要(助けることができる)コンパイルプロセスに関する情報を見るには、まず2と3を読んでください。
答え2
まず、以前の設定(例:)を消去する必要がありますmake mrproper
。
その後、もう一度実行してくださいmake menuconfig
。不要な項目を明示的に選択すると、その.config
項目は生成されません。