毕业设计要编译linux内核,因为要做一个嵌入式网关,目前先想着用uClinux,先打算在skyeye下测试后,再移植到开发板上。先是从网上下一些关于怎么编译uClinux内核的资料,网上资料的确很多,看了大多是uClinux-dist2004....的,而我到www.uClinux.org上只看到dist2007的,真搞不清楚,怎么就是没有2004的。
先是要配置交叉编译环境,下了arm-elf-gcc,以及uClib安装后,进入uClinux-dist目录,按照网上介绍的对于uClinux-dist 2004的方面,对一些文件进行修改,编译,出错,说没有ufront-gcc,真是奇怪,上网查资料,发现我这个是需要arm-linux-gcc的,原来这个版本的uClinux还真不行,下了arm-linux-gcc3.4.1解压,建立环境变量,然后
make menuconfig
make dep
make clean
make lib_only
make user_only 在编译boa时出错
查了一下出错的原因,为这个花了将的一天,采取了多种方式,查资料再加上自已的猜测,最后查明是硬浮点问题,内核要求是软浮点,看到一些类似的解决办法,如将软浮点去掉,可是这个里面的Makefile文件太复杂了,改了便没有成功,也有说编译器要打个patch,半天也没有找着,因为我现在编译是2.4内核,估计在内核2.6下应该是可以的,看来还是我这个2007的uClinux不好用啊。我还想着把它编译出来,但结果还是是失败了。打算改道了。
通过QQ得到网友支持,给了我一个uClinux2004的下载地址,还是在www.uClinux.org上的,我是怎么找也找不到。再按照网上介绍的编译,通过看那些编译信息,这个用的交叉编译环境是arm-elf-gcc。出了几个小错误,很好改。
make romfs
make image
make
生成了images文件夹,在linux-2.4.x下也生成了linux文件,看来还是2004的好弄的。
下一步就是在skyeye下测试了,没有通过,run后就没有反应了,猜测是没有进行剪裁,太大了,超出了硬件的资源了。光linux文件就有20多M。下一步就是就我的需求进行剪裁吧。