FTDI USB モジュールを Android カーネル (Android 2.3.1、Linux 2.6.32) に追加する必要があるため、2.6.32 カーネルを入手してモジュールをビルドしようとしました。
make modules ARCH=arm CROSS_COMPILE=arm-none-eabi-
しかし、「insmod ftdi_sio.ko」を実行しようとすると、エラー メッセージが
insmod: init_module 'ftdi_sio.ko' failed (Exec format error)
dmesgの出力でこれを見つけました
ftdi_sio: version magic '2.6.32.27 preempt mod_unload ARMv5 ' should be '2.6.32.27 preempt mod_unload ARMv7 '
「armv7-a」フラグを追加しようとしました(Android NDKドキュメントで読んだように)
make modules ARCH=arm CROSS_COMPILE=arm-linux-androideabi- CFLAGS='-march=armv7-a -mfloat-abi=softfp'
また、次のクロスコンパイラを試しました:arm-none-eabi-、arm-eabi-、arm-linux-android-eabi-
毎回結果は同じでした-バージョンマジックのARMv5。ARMv7 用のモジュールをビルドするにはどうすればよいですか?