我需要将 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-
每次结果都是相同的 - 版本 Magic 中的 ARMv5。
如何构建 ARMv7 模块?
尝试设置CONFIG_CPU_V7=y
在你的内核中.config
file
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)