终于编译成功了,很多时候还是自己的不小心和疏忽造成的,如果能够仔细点,应该可以很快解决的。
不过也好,这样可以让自己对于移植系统更加熟悉。
(主要是根据手册来做就行了,本次是针对TQ2440,内核2.6.30.4,交叉编译器4.3.3)
第一步:建立自己的交叉编译器。 我在虚拟机中用的是Fedora10的系统,安装的是4.3.3的交叉编译器,在建立好后,要通过arm-linux-gcc -v来检测是否安装成功,如果不行,就很可能是环境变量问题了。在Fedora中是在/etc/profile加入pathmunge 编译器的绝对路径,在Ubuntu中,是在/etc/environment中加入路径的,之后再source /etc/...来生效。 还要用mkyaffs+Tab(两次)来检测文件系统编译器是否有安装。
第二步:编译U-boot。只要在目录里输入命令:make EmbedSky_config,之后再make一次就成了。
第三步:编译内核kernel:首先解压后会有自带的配置,通过make menuconfig加载这份配置也行,自己另作一份也行,不过一定要记住,要正确选好,不然之后的烧写会有很多问题的,之后配置保存在.config中。修改一些文件的信息就可以通过在内核目录中命令:make zImage就会在目录中自动生成zImage.bin文件。(细节看手册)
第四步:编译文件系统:这一步也是最麻烦的。首先要解压出busybox,在busybox中配置文件,跟配置内核一样,同样保存在.config中,这里记住要选中支持ELF的文件格式,还有Makefile中的ARCH=arm,CROSS_COMPILE=arm-linux,这个一定要记住。之后输入命令:make;make install进行安装,生成目录_install,再在外面新建一个文件系统的目录,这里为root_2.6.30,把_install里面的文件复制进去,再在root_2.6.30中根据手册新建需要的文件和目录。最后,因为是256MB的Nandflash,所以要用mkyaffs2image来进行编译,生成文件root_2.6.30。
完成编译阶段,就烧写了,把生成的三个镜像文件拷到windows操作系统下,通过终端进行烧写,成功。呼,几乎用了一个星期才成功! 但是……刚刚检测了下,又有个问题出现了,成功出现输入命令时居然会隔断时间重启?难道是看门狗问题? 再看看,嗯嗯,真的是看门狗问题,要回到内核去设置,或者直接取消了,也许会存在问题,但是现在暂时这样了。很多时候还不知道那些配置有什么作用,但是随着下面实验做的越多,我想应该会有柳暗花明的时候的,相信自己肯定可以做到的,只要坚持下去。