OpenMediaVault サーバーに MADWIFI をインストールしようとしました。さらに情報が必要ですか?
入力するたびにこのエラーが発生しますmake
:
root@NAS2024:/media/5703066A59887FF7/Dsys/madwifi-0.9.4# make
Checking requirements... ok.
Checking kernel configuration... ok.
make -C /lib/modules/2.6.32-5-amd64/build SUBDIRS=/media/5703066A59887FF7/Dsys/madwifi-0.9.4 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
CC [M] /media/5703066A59887FF7/Dsys/madwifi-0.9.4/ath/if_ath.o
/media/5703066A59887FF7/Dsys/madwifi-0.9.4/ath/if_ath.c:1: error: bad value (armv4) for -march= switch
make[5]: *** [/media/5703066A59887FF7/Dsys/madwifi-0.9.4/ath/if_ath.o] Error 1
make[4]: *** [/media/5703066A59887FF7/Dsys/madwifi-0.9.4/ath] Error 2
make[3]: *** [_module_/media/5703066A59887FF7/Dsys/madwifi-0.9.4] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-5-amd64'
make: *** [modules] Fehler 2
このエラーはなぜ発生したのでしょうか?
答え1
MadWifi ドライバーを他のアーキテクチャ用にクロスコンパイルする方法の詳細を確認してください。たとえば、あなたの場合は、おそらく意図的ではないものの、ARM4 用にコンパイルしようとしています。
抜粋
クロスコンパイル
ビルド システムは、配布ファイルを変更せずにクロスコンパイルをサポートするように設計されています。make コマンド ラインで任意のパラメータを指定するだけで十分です。
ほとんどの場合、定義する必要があるのは KERNELPATH と CROSS_COMPILE だけです。CROSS_COMPILE はクロスコンパイル ツールのプレフィックスです。たとえば、クロス コンパイラが arm-linux-gcc という名前である場合、CROSS_COMPILE を "arm-linux-" に設定します。
$ make KERNELPATH=/usr/src/linux-arm CROSS_COMPILE=arm-linux-
ビルド システムは、Linux ビルド ツリーの .config ファイルに基づいて ARCH と TARGET を決定します。一部の珍しいシステムでは、TARGET をコマンド ラインで指定する必要がある場合もあります。ARCH が誤って決定された場合は、報告してください。