编译内核模块遇到的问题(已解决)

2020-02-21 21:29发布

本帖最后由 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,我的文件系统和内核已经编译完成可以使用,按道理说不应该出现这种情况
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
FSL_TICS_Rita
1楼-- · 2020-02-22 01:10
楼主你好,请问你编译的是哪个版本的BSP?
FSL_TICS_Rita
2楼-- · 2020-02-22 05:27
你使用的板子是那一块啊?
浮华一生
3楼-- · 2020-02-22 11:16
你直接make的?  指定交叉工具链没?
a7458969
4楼-- · 2020-02-22 11:53
 精彩回答 2  元偷偷看……
a7458969
5楼-- · 2020-02-22 13:07
已经执行了下面两条指令
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
k_ewell
6楼-- · 2020-02-22 15:54
楼上的编译命令式配置内核和编译内核
看你一楼的makefile文件,你的驱动文件应该没在内核目录,试试在单独编译驱动文件时也价格ARCH CROSS_COMPILE参数试一下,这样编译出来的KO绝不会是686格式

一周热门 更多>