我需要将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构建模块?

最佳答案

尝试在内核文件中设置CONFIG_CPU_V7=y

08-18 09:10