2012-04-06 134 views
6

我需要将FTDI USB模块添加到Android内核(Android 2.3.1,Linux 2.6.32),所以我得到了2.6.32内核并尝试构建模块:构建Android内核模块

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' 标志

make modules ARCH=arm CROSS_COMPILE=arm-linux-androideabi- CFLAGS='-march=armv7-a -mfloat-abi=softfp' 

另外(如我在Android的NDK文档读取),我试图以下交叉编译器:臂-NONE-eabi-,臂eabi-,掰linux-android-eabi-

每一次的结果都是一样的 - ARMv5中的魔术版本。 如何构建ARMv7模块?

回答

4

尝试在您的内核中设置CONFIG_CPU_V7=y.config文件