我尝试使用cross complile为Android构建rt73.ko linux驱动程序。我已下载android NDK和目标系统的内核源代码(Rockchip RK3066),当我构建驱动程序时,我收到以下错误:
root @ slax:〜/ 2011_0210_RT73_Linux_STA_Drv1.1.0.5 / Module#make CROSS_COMPILE = arm-linux-androideabi- make -C / root / kernel SUBDIRS = / root / 2011_0210_RT73_Linux_STA_Drv1.1.0.5 /模块模块 make [1]:输入目录
/root/kernel' CC [M] /root/2011_0210_RT73_Linux_STA_Drv1.1.0.5/Module/rtmp_main.o /root/2011_0210_RT73_Linux_STA_Drv1.1.0.5/Module/rtmp_main.c: In function 'usb_rtusb_probe': /root/2011_0210_RT73_Linux_STA_Drv1.1.0.5/Module/rtmp_main.c:1152:3: warning: return makes integer from pointer without a cast [enabled by default] /root/2011_0210_RT73_Linux_STA_Drv1.1.0.5/Module/rtmp_main.c: In function 'usb_rtusb_disconnect': /root/2011_0210_RT73_Linux_STA_Drv1.1.0.5/Module/rtmp_main.c:1315:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] /root/2011_0210_RT73_Linux_STA_Drv1.1.0.5/Module/rtmp_main.c: In function 'usb_rtusb_close': /root/2011_0210_RT73_Linux_STA_Drv1.1.0.5/Module/rtmp_main.c:655:1: warning: the frame size of 2128 bytes is larger than 1024 bytes [-Wframe-larger-than=] /root/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/as: /usr/lib/libz.so.1: no version information available (required by /root/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/as) /bin/sh: scripts/basic/fixdep: cannot execute binary file make[2]: *** [/root/2011_0210_RT73_Linux_STA_Drv1.1.0.5/Module/rtmp_main.o] Error 126 make[1]: *** [_module_/root/2011_0210_RT73_Linux_STA_Drv1.1.0.5/Module] Error 2 make[1]: Leaving directory
/ root / kernel'make: * [all]错误2
你能帮助我克服上述错误吗?
答案 0 :(得分:0)
虽然你交叉编译,但只能编译内核。 scripts / basic / fixdep是userland program。
要解决此问题,您需要使用http://crosstool-ng.org/作为示例。