免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10153 | 回复: 0
打印 上一主题 下一主题

[嵌入式] ucLinux编译全过程--------菜鸟篇 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-24 20:51 |只看该作者 |倒序浏览
首先把uClinux下载回来,下载地址:http://www.uclinux.org/pub/uClinux/dist/uClinux-dist-20051110.tar.gz
然后再根据网站里的说明建立一个交叉编译环境:http://www.uclinux.org/pub/uClinux/uclinux-elf-tools/arm-elf-tools-20030314.sh
先把arm-elf-tools安装好,然后再编译uClinux即可:

  1. [ljjk @localhost root]#wget http://www.uclinux.org/pub/uClinux/dist/uClinux-dist-20051110.tar.gz
  2. [ljjk @localhost root]#wget http://www.uclinux.org/pub/uClinux/uclinux-elf-tools/arm-elf-tools-20030314.sh
  3. [ljjk @localhost root]#chmod 777 arm-elf-tools-20030314.sh
  4. [ljjk @localhost root]#./arm-elf-tools-20030314.sh
  5. [ljjk @localhost root]#tar zxvf uClinux-dist-20051110.tar.gz
  6. [ljjk @localhost root]#cd uClinux-dist
  7. [ljjk @localhost uClinux-dist]#make mrproper
  8. [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出错。

  1. [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保存退出

  1. [ljjk @localhost uClinux-dist]#make menuconfig
复制代码

这时出现一个选择菜单,移动到第一个选项高亮,然后按回车进入,这时有两个可选项,一个是第二行,一个是第四行,第二行是用来选择支持的产品结构的(就是我们平时说的硬件平台),第四行是用来选择Products的!分别选择samsung,和5410B,因为这两个在我们中用的是比较多的!
然后选择Exit回到主菜单,把高亮调到Kernel/Library处,进入。kernel选择2.4.x的即可,lib库选择uClibc,切记,不是uC-libc。,然后Exit之后再Exit,弹出提示,选择yes保存即可。

  1. [ljjk @localhost uClinux-dist]#make dep
  2. [ljjk @localhost uClinux-dist]#make lib_only
  3. [ljjk @localhost uClinux-dist]#vi config/.config
复制代码

然后将"CONFIG_USER_OLD_PASSWORDS=y"注释掉"#CONFIG_USER_OLD_PASSWORDS=y"

  1. [ljjk @localhost uClinux-dist]#make user_only
  2. [ljjk @localhost uClinux-dist]#make romfs
  3. [ljjk @localhost uClinux-dist]#make image
复制代码

如果这一步提示错误,可以执行下面一步

  1. [ljjk @localhost uClinux-dist]#make
复制代码

这样就会在image下生成我们想要的文件。
  1. [ljjk @localhost uClinux-dist]ls romfs
  2. bin dev etc home lib mnt proc sbin tmp usr var doc written by  1jjk
  3. [ljjk @localhost uClinux-dist]ls image
  4. image.bin linux.data  linux.text  romfs.img
复制代码

到这里就完成了编译的工作。


给个成功案例图:



[ 本帖最后由 1jjk 于 2006-7-24 20:59 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP