小编Iva*_*van的帖子

构建Android的内核模块

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

make modules ARCH=arm CROSS_COMPILE=arm-none-eabi-
Run Code Online (Sandbox Code Playgroud)

但当我尝试'insmod ftdi_sio.ko'时,错误信息是

insmod: init_module 'ftdi_sio.ko' failed (Exec format error)
Run Code Online (Sandbox Code Playgroud)

在dmesg的输出中,我发现了这一点

ftdi_sio: version magic '2.6.32.27 preempt mod_unload ARMv5 ' should be '2.6.32.27 preempt mod_unload ARMv7 '
Run Code Online (Sandbox Code Playgroud)

我试图添加'armv7-a'标志(正如我在Android NDK文档中读到的那样)

make modules ARCH=arm CROSS_COMPILE=arm-linux-androideabi- CFLAGS='-march=armv7-a -mfloat-abi=softfp'
Run Code Online (Sandbox Code Playgroud)

此外,我尝试了以下交叉编译器:arm-none-eabi-,arm-eabi-,arm-linux-android-eabi-

每次结果都是相同的 - 版本魔术中的ARMv5.如何为ARMv7构建模块?

android linux-kernel

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

linux-kernel ×1