博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

yello'blog

原创文章版权所有!如需转载,请注明出处: yello.cublog.cn ,谢谢合作.
yello.cublog.cn
构建最简单的linux根文件系统
  在这篇文章里,我将向大家介绍如何构建一个最简单的嵌入式linux文件系统.说它最简单,是指必须的,能进入shell,缺少就无法成功.
  采用目前最新的busybox:1.13.1
  编译工具: mips-linux-gcc
 
1.建立基本的系统目录
  只需要以下目录即可
  mkdir rootfs
  cd rootfs
  mkdir bin sbin lib dev etc
 
2.建立最基本的dev节点
  mknod -m 600 console c 5 1
3.建立inittab文件
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
#::respawn:/sbin/getty -L console 9600 vt100
::restart:/sbin/init
::shutdown:/bin/umount -a -r
 
注意:1.无需/etc/init.d/rcS这个文件也可进入shell
    2.如果用::respawn:/sbin/getty -L console 9600 vt100
      需要在/dev 新建:mknod -m 666 null c 1 3
      同时还要在/etc建立group和passwd两个文件.这里不讨论.
4. 进入解压后的Busybox-1.13.1目录,运行make menuconfig 进行配置。

在进行配置时有几项需要注意:

Ø Build Options>

Build BusyBox as a static binary (no shared libs)

Force NOMMU build

Build shared libbusybox

Build with Large File Support (for accessing file>2GB)

可以选择Build BusyBox as a static binary (no shared libs).这种做法比较简单.

如果选择Build shared libbusybox方式进行编译时,要将交叉编译的动态库或符号链接复制到对应的目录中,否则程序不能运行。同时在配置时应去掉Build shared libbusybox目录下的两项:如下 

Build shared libbusybox>

 Produce binary for each applet,linked against libbusybox

Produce additional busybox binary linked against libbusybox

同时去掉

Build with Large File Support (for accessing file>2GB)

否则编译会报错。

Ø 一定要勾选上如下配置:

Init Utilities>

(*) init

(*) Supporting reading an inittab file //支技init进程读取/etc/inittab配置文件。

(*) Supporting running commands with controlling-tty //使busybox在真实的串口设备中运行命令行,不使用可能会报类似与:shcan’t access ttyjob control turned off的错误。

其它基本可按默认配置。

编译

make

编译完成后执行

make install

  则在Busybox-1.13.1目录下有_install这个目录,复制到rootfs:

cp -a _install/*  rootfs

5.拷贝所需要的库到lib

比较简单的方法是直接拷贝你的交叉编译工具里的llb到rootfs/lib.

如果你编译busybox选择了动态编译,还需将busybox里的0_lib的文件拷到rootfs/lib

至此最基本的文件系统就完成了.当然这个文件系统并不实用,只是用来说明学习而矣.

PS:了解linux启动的人,应该知道可以跳过busybox的init而直接进入shell.可以在u-boot里设置

setenv bootargs init=/bin/sh

也可什么都不设,在文件系统里不要有init的存在.

因此只需要要编译一个最简单的sh, 即可进入shell,而无需busybox的帮助.

 

 

发表于: 2008-12-09,修改于: 2008-12-09 15:06,已浏览381次,有评论0条 推荐 投诉

给我留言
版权所有 ChinaUnix.net 页面生成时间:0.01474