ターゲット
私のFriendlyARM mini210にNetis WF2190 Wi-FiドングルLinuxドライバをインストールしたいです。
環境
- フレンドリーなARM mini210s S5PV210 ARM Cortex-A8ボード
- ...Linux 3.0.8-FriendlyARMの実行
クロスコンパイル
arm/4.3.2/bin/arm-none-linux-gnueabi-
クロスコンパイルが必要であることを知っていますNetis WF2190 Linuxドライバ
クロスコンパイルには仮想マシンを使用しています。
$ uname -a
Linux vagrant 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
ドライバをダウンロードして仮想マシンにコピーしました。
vagrant@vagrant:~/rtl8812AU_linux_v4.3.8_12175.20140902$
ドライバでMakefile
私はこれを追加しました
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_FRIENDLYARM_MINI210S = y <====
それから
ifeq ($(CONFIG_PLATFORM_FRIENDLYARM_MINI210S), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := /home/vagrant/friendlyarm/tools/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-
KVER := 3.0.8
KSRC := /home/vagrant/friendlyarm/linux-3.0.8/kernel
endif
その後、コンパイルしようとしましたが、このエラーが発生しました。
vagrant@vagrant:~/rtl8812AU_linux_v4.3.8_12175.20140902$ make
make ARCH=arm CROSS_COMPILE=/home/vagrant/robot-os/friendlyarm/tools/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi- -C /home/vagrant/robot-os/friendlyarm/linux-3.0.8/kernel M=/home/vagrant/rtl8812AU_linux_v4.3.8_12175.20140902 modules
make[1]: Entering directory `/home/vagrant/robot-os/friendlyarm/linux-3.0.8/kernel'
make[1]: *** No rule to make target `modules'. Stop.
make[1]: Leaving directory `/home/vagrant/robot-os/friendlyarm/linux-3.0.8/kernel'
make: *** [modules] Error 2
私は専門家ではなく、目標を達成する方法を学びようとしていることに注目する価値があります。
この段階では、メッセージが私に何を言っているのか、そして解決策を理解していません。
どんな助けでも大変感謝します。
答え1
カーネルのソースコードパスが正しくありません。次のように修正しました。
KSRC := /home/vagrant/friendlyarm/linux-3.0.8/
それはコンパイル
答え2
ドライバのMakefileに以下を追加しました。
これはこの問題を解決する方法ではありません。バラよりここ- おそらく3段階にスキップできます。
その後、コンパイルしようとしていますが、このエラーが発生します。
カットして貼り付けたと判断したら、make
以前これを実行しましたが、make modules
何も起こりませんでした。その良くない。 make
モジュールを作成するために必要な場合と必要ない場合があるカーネルを実際にビルドする必要があります。しなければならない、しかし時にはそう見えます)。これは少なくとも数分かかり、多くの出力を生成する必要があります。そのようなことが起こらない場合は、何かが非常に間違っています。
私はcrosstool-ngを介してgccでカーネルをクロスビルドし、それを設定する必要がありますTARGET
。これを実行していないようです(ただし、デプロイメントクロスコンパイラは異なる場合があります)。しかし、カーネルの makefile を修正してこれらを設定するのは間違いかもしれません。次の環境で実行してみてください。
export TARGET=arm-none-linux-gnueabi
export ARCH=arm
export CROSS_COMPILE=/foo/bar/etc
テキストファイルに入れてsource my_environment.sh
make()を実行する前にインポートします。