本帖最后由 FSL_TICS_ZJJ 于 2014-9-11 13:30 编辑
编译内核模块产生的KO文件是I686格式的,下面是我的配置文件:
ARCH=arm
PWD=${shell pwd}
KERNEL_SRC=/home/a/ltib/rpm/BUILD/linux/
obj-m:=main.o
module-objs:=main.o
all:
${MAKE} -C ${KERNEL_SRC} M=${PWD} modules
clean:
rm *.ko
实际结果
insmod: can't insert 'main.ko': invalid module format
modinfo后发现文件居然是X86格式下的
filename: main.ko
author: VRNSS
license: GPL
vermagic: 3.0.35-2666-gbdde708 SMP preempt mod_unload modversions 686
depends:
PS,我的文件系统和内核已经编译完成可以使用,按道理说不应该出现这种情况
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
make ARCH=arm
CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-
linaro-toolchain/bin/arm-none-linux-gnueabi- imx6_defconfig
make ARCH=arm
CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-
linaro-toolchain/bin/arm-none-linux-gnueabi- uImage
看你一楼的makefile文件,你的驱动文件应该没在内核目录,试试在单独编译驱动文件时也价格ARCH CROSS_COMPILE参数试一下,这样编译出来的KO绝不会是686格式
一周热门 更多>