编译了有一阵子了。
以前不成功是因为硬盘空间不够大,只能通过smbmount来影射,结果没有写入的权限,就是write的权限!
后来把自己的硬盘清理了一下,腾出来了一点空间!现在可以写个心得了!
首先把uClinux下载回来,下载地址:
然后再根据网站里的说明建立一个交叉编译环境:
先把arm-elf-tools安装好,然后再编译uClinux即可:
[ljjk @localhost root]#wget
[ljjk @localhost root]#wget
[ljjk @localhost root]#chmod 777 arm-elf-tools-20030314.sh
[ljjk @localhost root]#./arm-elf-tools-20030314.sh
[ljjk @localhost root]#tar zxvf uClinux-dist-20051110.tar.gz
[ljjk @localhost root]#cd uClinux-dist
[ljjk @localhost uClinux-dist]#make mrproper
[ljjk @localhost uClinux-dist]#vi linux2.4.x/arch/armnommu/vmlinux-armv.lds.in
在__sto__kallsyms = ,;
*(.got)后面加上:
romfs_data = .;
romfa.o
romfs_data.end = .;
然后wq退出
这一步如果不做,编译的时候会出现点小问题,我便宜的时候提示过romfs_data出错。
[ljjk @localhost uClinux-dist]#vi vendors/Samsung/4510B/Makefile
在genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR)的下一行加入
arm-elf-ld -r -o $(ROOTDIR)/$(LINUXDIR)/romfs.o -b binary $(ROMFSIMG)
然后wq保存退出
[ljjk @localhost uClinux-dist]#make menuconfig
这时出现一个选择菜单,移动到第一个选项高亮,然后按回车进入,这时有两个可选项,一个是第二行,一个是第四行,第二行是用来选择支持的产品结构的(就是我们平时说的硬件平台),第四行是用来选择Products的!分别选择samsung,和5410B,因为这两个在我们中用的是比较多的!
然后选择Exit回到主菜单,把高亮调到Kernel/Library处,进入。kernel选择2.4.x的即可,lib库选择uClibc,切记,不是uC-libc。,然后Exit之后再Exit,弹出提示,选择yes保存即可。
[ljjk @localhost uClinux-dist]#make dep
[ljjk @localhost uClinux-dist]#make lib_only
[ljjk @localhost uClinux-dist]#vi config/.config
然后将"CONFIG_USER_OLD_PASSWORDS=y"注释掉"#CONFIG_USER_OLD_PASSWORDS=y"
[ljjk @localhost uClinux-dist]#make user_only
[ljjk @localhost uClinux-dist]#make romfs
[ljjk @localhost uClinux-dist]#make image
如果这一步提示错误,可以执行下面一步
[ljjk @localhost uClinux-dist]#make
这样就会在image下生成我们想要的文件。
[ljjk @localhost uClinux-dist]ls romfs
bin dev etc home lib mnt proc sbin tmp usr var doc written by 1jjk
[ljjk @localhost uClinux-dist]ls image
image.bin linux.data linux.text romfs.img
到这里就完成了编译的工作。
给个成功案例图:
阅读(2734) | 评论(11) | 转发(0) |