ARM Linux 用に AODV をコンパイルしようとしています。カーネル バージョン 3.0.35_4.1.0 のボードとして SabreLite を使用しています。ボード用の Linux ディストリビューションを作成するために openembedded を使用していることは言及する価値があります。AODV ソース コード ( http://sourceforge.net/projects/aodvuu/ ) には README ファイルがあり、ここで少し述べたように ARM にインストールする方法を示しています。( http://w3.antd.nist.gov/wctg/aodv_kernel/kaodv_arm.html )。
2.6 以降のカーネル バージョンで使用するために、makefile をアップグレードすることができました (上記のように、カーネル バージョンは 3.0.35_4.1.0 です)。したがって、基本的に、私がやろうとしているのは、モジュール (file.ko としましょう) を作成し、それを ARM にロードする必要があるということです (insmod file.ko コマンドを使用)。
そのために、いくつかの値を以下に示すクロス コンパイラを使用しています。
echo $CC : arm-oe-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/usr/local/oecore- x86_64/sysroots/cortexa9hf-vfp-neon-oe-linux-gnueabi
echo $ARCH=アーム
echo $CFLAGS: O2 -pipe -g -feliminate-unused-debug-types
echo $LD : arm-oe-linux-gnueabi-ld --sysroot=/usr/local/oecore-x86_64/sysroots/cortexa9hf-vfp-neon-oe-linux-gnueabi
echo $LDFLAGS : -Wl,-O1 -Wl,--hash-style=gnu -Wl,--必要に応じて -Wl,--必要に応じて
「make コマンド」を起動すると、次のエラーが表示されます。
LD [M] /home/scof/script_emulation/AODV/aodv-uu/lnx/kaodv.o
arm-oe-linux-gnueabi-ld: 認識されないオプション '-Wl,-O1'
arm-oe-linux-gnueabi-ld: 使用法に関する情報を得るには --help オプションを使用します
リンカーに問題があることを示しています。このリンカはクロス コンパイル ツールに由来するものであり、通常は触れないでください。
とにかく、上記のエラーを修正するには、次のように LDFLAGS を撤回しようとします: export LDFLAGS=''。この後、make コマンドが機能し、モジュール kaodv.ko を取得します。しかし、チェックするためにARMに挿入すると、機能しません。それは実際に私の端末をフリーズさせます
私の質問は、コンパイル時にLDFLAGSを指定する必要がありますか? LDFLAGS を撤回すると、生成されたカーネル モジュールに影響を与える可能性があります。実際、私はどこに問題があるのか を理解しようとしています.LDFLAGSを手動で変更すべきではないということだけが思い浮かびます。しかし、LDFLAGS を変更しないと、認識できないオプションエラーが発生します。
それに関連する私の2番目の質問は、ARMコンパイルでのLDFLAGSの可能性のある値は何ですか
ありがとう !!