编译Root Filesystem step by step

资源
OS
Ubuntu 7.04 (kernel version: 2.6.20-15)

ToolChain
ARM-GCC v3.4.1
http://www.handhelds.org

RootFS
rootfsosk.tar.bz2
http://linux.omap.com/pub/filesystem/rootfsosk.tar.bz2

Busybox
busybox-1.4.2
http://www.busybox.net

教程
OSK5912 Newbie Guide
http://oskfordummies.hp.infoseek.co.jp

步骤
1.  安装tool chain;
2. 解压rootfsosk.tar.bz2;
3. Copy ${ToolChainDir}/arm-linux/lib下的*.so和*.so.[*0-9]到rootfs2.6/lib中;
4. 编译busybox,用新版本的busybox替换当前rootfs中的busybox内容,同时还可以添加/删除自己想定义的linux cmd;
  4.1. 解压busybox;
  4.2. “make menuconfig”时候注意:
  > 默认的.config几乎没有添加任何功能支持,所以建议根据当前rootfs2.6/bin下支持的cmd来选择要编译的linux cmd;
  >注意设置busybox生成的文件的目标地址到step 2解压的rootfs2.6的目录;
 >在Ubuntu中最后会遇到错误:
  --------------------------------------------------
  LINK    busybox_unstripped
  /usr/src/busybox-1.4.2/scripts/trylink: 5: function: not found
  /usr/src/busybox-1.4.2/scripts/trylink: 11: Syntax error: "}" unexpected
  --------------------------------------------------
  这是因为Ubuntu中默认的shell是dash,而u-boot默认认为是bash,所以脚本解释出错。解决方法:
  --------------------------------------------------
  # mv /bin/sh /bin/sh-1
  # ln -s /bin/bash /bin/sh
  --------------------------------------------------
  (参考http://busybox.net/lists/busybox/2007-February/026389.html)
5. 后面配置nfs相关参数和用工具mkfs.jffs2来生成rootfs是后话,暂时不提。

你可能感兴趣的:(linux,function,shell,ubuntu,cmd,bash)