首先下载uClinux源码,http://sourceforge.net/projects/uclinux/files/,我下载的是uClinux-dist-20100315.tar.bz2源码包。并把源码包放在/home目录中。uClinux源码安装在/usr/local/src目录中。
|
|
重新执行,sudo make xconfig,出错,提示缺少libglade-2.0包,使用以下命令,安装libglade-2.0包
|
看到了uClinux内核配置界面。在内核配置中,vendors选择Samsung,内核选择linux-2.4.x,函数库选择uClibc
保存并退出,
sudo make dep,没有错误
sudo make clean 没有错误
sudo make lib_only,出错,
|
|
|
不再出现“ucfront-gcc找不到”提示。但会出现arm-linux-gcc找不到提示。
这时因为在uClinux-dist-20100315.tar.bz2包中采用到交叉编译器是arm-linux-gcc,而不是arm-elf-gcc,开始安装到开发工具链是arm-elf-gcc类型到,所以会提示找不到arm-linux-gcc。可在/verdors/config/armnommu/cofig.arch文件中找到定义的交叉编译器到类型。因此在下载了uclinux源码包后,应该查看一下这个文件,根据这个文件安装相应到交叉编译器。
解决方法,重新下载低版本的uClinux或者安装arm-linux-gcc工具链。
到http://www.uclinux.org/pub/uClinux/dist/下载arm-linux-gcc工具链,安装
到http://www.uclinux.org/pub/uClinux/dist/下载旧版到uclinux源码包,这里下载uClinux-dist-20051110.tar.gz
删除uClinux-dist-20100315:
|
|
sudo make xconfig,vendors选择Samsug,内核选择linux-2.4.x,内核选择uClibc,保存退出
sudo make dep,正常
sudo make clean,正常
sudo make lib_only,正常
sudo make user_only,正常
sudo make romfs,正常
sudo make image,出错,提示:arm-elf-objcopy: /home/pbman/uClinux-dist/linux-2.4.x/linux: No such file or directory
第一次make image出错是正常的,因为没有生成linux
make出错是因为linux-2.4.x/drivers/block/blkmem.c中使用了romfs_data,而链接脚本中没有。可以这样解决:修改blkmem.c中
|
当然也可修改链接脚本加入romfs_data
也可以不管make image出现的错误,执行sudo make,如果成功得到image文件,则编译成功。
不知道什么问题,按照这种方法,编译成功,但在使用skyeye运行时,skyeye配置文件搞不定,放弃!
skyeyetestsuits中有at91的配置脚本,为了利用这个配置脚本,因此uclinux重新配置vendors,选择GDB/Armulator
|
|
拷贝linux到images文件夹下,
|
|
|
|
uClinux编译成功!!