【背景】
已经折腾完了:
【记录】Cygwin下用arm-xscale-linux-gnueabi交叉编译Uboot
此处再去,在Cygwin下,用arm-xscale-linux-gnueabi的交叉工具链,交叉编译Linux的kernel。
其中,之前已经在Ubuntu下用类似的arm-xscale-linux-gnueabi,交叉交叉编译过了:
【记录】Ubuntu下用arm-xscale-linux-gnueabi交叉编译linux-2.6.19.1内核
此处,只是尝试在Cygwin下,是否可以正常编译。
尤其是:
Cygwin下,解压kernel源码的话,以后编译期间,产生的各种软链接等东西,是否可以正常支持。
如果支持:
则以后,嵌入式Linux开发,完全都在Cygwin下折腾,就基本是可以实现的了。
【折腾过程】
1.已有的源码:
CLi@PC-CLI-1 ~/develop/kernel $ ls -lha total 47M drwxr-xr-x+ 1 CLi Domänen-Benutzer 0 Aug 22 13:33 ./ drwxr-xr-x+ 1 Administrators Domänen-Benutzer 0 Aug 22 13:33 ../ -rwxr-xr-x 1 CLi Domänen-Benutzer 47M Aug 22 13:33 linux-2.6.19.1.tar.bz2*
2.在Cygwin下解压kernel的源码:
CLi@PC-CLI-1 ~/develop/kernel $ tar xjf linux-2.6.19.1.tar.bz2 CLi@PC-CLI-1 ~/develop/kernel $ ls -lha total 47M drwxr-xr-x+ 1 CLi Domänen-Benutzer 0 Aug 22 13:33 ./ drwxr-xr-x+ 1 Administrators Domänen-Benutzer 0 Aug 22 13:33 ../ drwxr-xr-x+ 1 CLi Domänen-Benutzer 0 Nov 21 2012 linux-2.6.19.1/ -rwxr-xr-x 1 CLi Domänen-Benutzer 47M Aug 22 13:33 linux-2.6.19.1.tar.bz2*
3.继续去参考:
【记录】Ubuntu下用arm-xscale-linux-gnueabi交叉编译linux-2.6.19.1内核
去修改Makefile:
#ARCH ?= $(SUBARCH) ARCH ?=arm #CROSS_COMPILE ?=arm-linux- #CROSS_COMPILE ?=arm-xscale-linux-gnu- CROSS_COMPILE ?=arm-xscale-linux-gnueabi-
4.然后就是先去make xxx_defconfig去调用默认配置:
【记录】Cygwin下交叉编译Linux内核时用make xxx_defconfig去调用默认配置
5.再去用make menuconfig去真正确认和修改配置:
【记录】Cygwin下交叉编译Linux内核时用make menuconfig去确认和修改配置
6.然后再真正去交叉编译内核:
【记录】Cygwin下交叉编译Linux内核在配置后去make编译
最后编译成功的结果是:
【总结】
总的来说,在Cygwin下,用arm-xscale-linux-gnueabi交叉编译Linux内核,从配置到编译,都相对还是有点麻烦的。
其中最多的问题,处在调用配置的时候,会出现很多错误,主要都是和cygwin平台(和Linux有些东西不一样)而导致的。
但是问题最终都还是可以解决的。
即:
在Cygwin下交叉编译Linux,虽然有问题,但是还是可以解决的。