【问题标题】:Building kernel module for Android为 Android 构建内核模块
【发布时间】:2013-01-24 20:25:42
【问题描述】:

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

【问题讨论】:

    标签: android linux-kernel


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-25
      • 2011-05-22
      • 2021-10-20
      • 2018-11-27
      • 2018-05-11
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多