当前位置: 技术问答>linux和unix
交叉编译后得到的KO文件在目标板加载失败(十万火急)
来源: 互联网 发布时间:2017-01-03
本文导语: 我在VM下的Fedora 8中建立了交叉编译环境,然后对某个USB驱动进行了编译,编译通过: [root@localhost 2.6.28.7]# make make -C /telit/kernel/linux-2.6.28.7 M=/telit/driver/arm/2.6.28.7 modules ARCH=arm CROSS_COMPILE=arm-linux- make[1]: Entering ...
我在VM下的Fedora 8中建立了交叉编译环境,然后对某个USB驱动进行了编译,编译通过:
[root@localhost 2.6.28.7]# make
make -C /telit/kernel/linux-2.6.28.7 M=/telit/driver/arm/2.6.28.7 modules ARCH=arm CROSS_COMPILE=arm-linux-
make[1]: Entering directory `/telit/kernel/linux-2.6.28.7'
CC [M] /telit/driver/arm/2.6.28.7/option.o
CC [M] /telit/driver/arm/2.6.28.7/bus.o
CC [M] /telit/driver/arm/2.6.28.7/generic.o
CC [M] /telit/driver/arm/2.6.28.7/usb-serial.o
LD [M] /telit/driver/arm/2.6.28.7/usbserial.o
Building modules, stage 2.
MODPOST 2 modules
CC /telit/driver/arm/2.6.28.7/option.mod.o
LD [M] /telit/driver/arm/2.6.28.7/option.ko
CC /telit/driver/arm/2.6.28.7/usbserial.mod.o
LD [M] /telit/driver/arm/2.6.28.7/usbserial.ko
make[1]: Leaving directory `/telit/kernel/linux-2.6.28.7'
[root@localhost 2.6.28.7]# modinfo usbserial.ko
filename: usbserial.ko
license: GPL
description: USB Serial Driver core
author: Greg Kroah-Hartman, greg@kroah.com, http://www.kroah.com/linux/
depends:
vermagic: 2.6.28.7 mod_unload ARMv4
parm: debug:Debug enabled or not (bool)
然后我把驱动下载到目标ARM开发板,用insmod usbserial.ko 却报错:
# insmod usbserial.ko
insmod: cannot insert 'usbserial.ko': Invalid module format (-1): Exec format er
ror
# uname -r
2.6.28.7
#
而目标板的内核我也是刚刚在同一个环境下编译的。用来编译驱动的内核代码和编译的内核是同一个,为什么会加载驱动会出现这个错误提示呢?
希望得到有经验的高手的分析和帮助。谢谢大家
[root@localhost 2.6.28.7]# make
make -C /telit/kernel/linux-2.6.28.7 M=/telit/driver/arm/2.6.28.7 modules ARCH=arm CROSS_COMPILE=arm-linux-
make[1]: Entering directory `/telit/kernel/linux-2.6.28.7'
CC [M] /telit/driver/arm/2.6.28.7/option.o
CC [M] /telit/driver/arm/2.6.28.7/bus.o
CC [M] /telit/driver/arm/2.6.28.7/generic.o
CC [M] /telit/driver/arm/2.6.28.7/usb-serial.o
LD [M] /telit/driver/arm/2.6.28.7/usbserial.o
Building modules, stage 2.
MODPOST 2 modules
CC /telit/driver/arm/2.6.28.7/option.mod.o
LD [M] /telit/driver/arm/2.6.28.7/option.ko
CC /telit/driver/arm/2.6.28.7/usbserial.mod.o
LD [M] /telit/driver/arm/2.6.28.7/usbserial.ko
make[1]: Leaving directory `/telit/kernel/linux-2.6.28.7'
[root@localhost 2.6.28.7]# modinfo usbserial.ko
filename: usbserial.ko
license: GPL
description: USB Serial Driver core
author: Greg Kroah-Hartman, greg@kroah.com, http://www.kroah.com/linux/
depends:
vermagic: 2.6.28.7 mod_unload ARMv4
parm: debug:Debug enabled or not (bool)
然后我把驱动下载到目标ARM开发板,用insmod usbserial.ko 却报错:
# insmod usbserial.ko
insmod: cannot insert 'usbserial.ko': Invalid module format (-1): Exec format er
ror
# uname -r
2.6.28.7
#
而目标板的内核我也是刚刚在同一个环境下编译的。用来编译驱动的内核代码和编译的内核是同一个,为什么会加载驱动会出现这个错误提示呢?
希望得到有经验的高手的分析和帮助。谢谢大家
|
dmesg 看一下错误信息 。
|
这个问题很容易出现的, 试着strip一下看看。