Budowanie modułu jądra dla Androida
Muszę dodać moduł USB FTDI do jądra Androida (Android 2.3.1, Linux 2.6.32), więc dostałem jądro 2.6.32 i próbowałem zbudować moduł:
<code>make modules ARCH=arm CROSS_COMPILE=arm-none-eabi- </code>
Ale gdy próbowałem zrobić „insmod ftdi_sio.ko”, pojawił się komunikat o błędzie
<code>insmod: init_module 'ftdi_sio.ko' failed (Exec format error) </code>
W wynikach dmesg znalazłem to
<code>ftdi_sio: version magic '2.6.32.27 preempt mod_unload ARMv5 ' should be '2.6.32.27 preempt mod_unload ARMv7 ' </code>
Próbowałem dodać flagę „armv7-a” (jak czytałem w dokumentach Android NDK)
<code>make modules ARCH=arm CROSS_COMPILE=arm-linux-androideabi- CFLAGS='-march=armv7-a -mfloat-abi=softfp' </code>
Próbowałem także następujących kompilatorów krzyżowych: arm-none-eabi-, arm-eabi-, arm-linux-android-eabi-
Za każdym razem wynik był taki sam - ARMv5 w magii wersji. Jak mogę zbudować moduł dla ARMv7?