快乐虾
http://blog.csdn.net/lights_joy/
lights@wo.com.cn
本文适用于
Cygwin gcc 3.4.4
Bfin-uclinux-toolchain-2009R1.1
欢迎转载,但请保留作者信息
在bfin-uclinux的官方网站上提供了一个可以直接在windows下使用的toolchain,但是这个toolchain并不能用来编译uclinux,只能用于普通应用程序的开发。要想编译内核,必须首先构建在cygwin下使用的toolchain。
通过对toolchain-src包中的BuildToolChain脚本的分析,终于成功构建了一个可用的toolchain,简单记下其步骤:
1、编译bfin-elf-binutils。
2、编译bfin-elf-gcc。
3、从uclinux内核代码中提取出需要的头文件。
4、编译uClibc。
5、编译bfin-uclinux-binutils。
6、编译bfin-uclinux-gcc。
7、编译bfin-linux-uclibc-binutils。
8、编译bfin-linux-uclibc-gcc。
至于genext2fs,cramfs,ldr,elf2flt这四个工具,因为其无法在cygwin下编译通过,且它们的运行不需要依赖于其它的库,因而我们直接从官方的二进制包里复制可执行文件。
下面是make menuconfig的画面,有点丑陋,不过可以用:
下面是make xconfig的界面,也不怎么样,嘿嘿,不过将就着用也可以:
配置完成成再make,一切OK!哈哈,似乎可以准备和虚拟机BYEBYE了。
这种方式的一个大问题是当启用jffs2等文件系统的支持时,内核编译完成后会生成一个叫rootfs.jffs2这样的根文件系统,而这个根文件系统是通过makefs.jffs2来完成的,在cygwin下无法支持这个命令(需要linux系统服务)。
在网上找到一个可以在cygwin下用的mkfs.jffs2,将之复制到user/mtd-utils目录下,再修改user/Makefile,注释掉这两行:
dir_$(CONFIG_JFFS_FS) += mtd-utils
dir_$(CONFIG_JFFS2_FS) += mtd-utils
还有一个问题是大小写敏感的问题,因为在内核中有可能在同一个目录下有仅大小写不同的同名文件,这在windows下会造成问题,只能通过修改Makefile和文件名来解决。最主要的一处修改是uclinux/config目录下面有一个叫Kconfig的文件,还有一个叫kconfig的目录,此时我们只能将此目录改名,同时修改uclinux/Makefile,将其中的SCRIPTDIR相应地改为我们重命名后的目录名称。
其它地方的重名暂时没有遇到!
BYEBYE!我的虚拟机!
近日,我家6岁的小姑娘参加了第六届POP全国少儿英语风采大赛,拉票进行中(2011-6-15前)。
请帮忙点击新东方网站的链接:
http://popdasai.xdf.cn/toupiao.php?do=space&uid=4237
投她一票,谢谢!