Chinaunix首页 | 论坛 | 博客
  • 博客访问: 388938
  • 博文数量: 55
  • 博客积分: 1907
  • 博客等级: 上尉
  • 技术积分: 869
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-04 19:30
文章分类

全部博文(55)

文章存档

2011年(32)

2010年(23)

分类: LINUX

2010-12-14 14:59:17

 
Linux 在启动根文件系统时首先执行根目录下的linuxrc,linuxrc是一个快捷方式,这个快捷方式链接到/bin/busybox,busybox是一个可执行程序。这时busybox试图去解析/inittab文件。系统的init进程通过inittab来创建其它子进程,比如调用脚本文件配置IP地址、挂接其它文件系统,最后启动shell等。
这里的顺序是:linuxrc->/bin/busybox->/etc/inittab->/etc/init.d/rcS->/etc/fstab从这个执行的顺序可以看出:我们可以直接将/etc/inittab和/etc/fstab中的内容都集中放在/etc/init.d/rcS中。mini2440中的文件系统就是这么干的。
 
下面开始移植->
 
该文件系统的移植主要参考了下面这个博客。在移植的过程中并非很顺利,也遇到了非常多的问题,最终都是通过网上找文章和看书来修改文件系统代码。
主要是修改这 3 个 文件的代码->
/etc/fstab  /etc/init.d/rcS /etc/inittab. 具体修改的内容如下红色部分所示
------------------------------------------------------------------------------
#/etc/inittab
::sysinit:/etc/init.d/rcS
s3c2410_serial0::askfirst:-/bin/sh
::ctrlaltdel:-/sbin/reboot
::shutdown:/bin/umount -a -r
::restart:/sbin/init
------------------------------------------------------------------------------
#/etc/init.d/rcS
#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
#
#Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
#
#/bin/mount -t proc none /proc
#/bin/mount -t tmpfs none /tmp
#/bin/mount -t tmpfs none /var
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
/bin/mkdir -p /var/log
/bin/hostname -F /etc/sysconfig/HOSTNAME
------------------------------------------------------------------------------
#/etc/fstab
#
proc      /proc   proc     defaults     0 0
sysfs     /sys    sysfs    defaults     0 0
tmpfs     /var    tmpfs    defaults     0 0
tmpfs     /tmp    tmpfs    defaults     0 0
tmpfs     /dev    tmpfs    defaults     0 0
--------------------------------------------------------------------------------
在移植的时候我省略了打 yaffs2 补丁这一步骤,因为我用的内核是友善之臂的2.6.32版本,该内核已经支持了 yaffs2 文件系统。
一、移植环境
  • 主  机:VMWare--Fedora 9
  • 开发板:Mini2440--256MB Nand
  • 编译器:arm-linux-gcc-4.3.2
  • yaffs补丁:cvs-root.tar.gz 这里下载
  • Busybox:busybox-1.13.0.tar.tar
  • yaffs制作工具:mkyaffs2image.tgz(友善提供)

二、以下制作步骤参考博客

   http://blog.chinaunix.net/u3/101649/showart.php?id=2075312

运行结果如下图所示->

三、结束语

 至此,最小的根文件系统已经搭建起来了,接下来就可以往文件系统里面添加自己的应用程序了。

 


 


阅读(2212) | 评论(1) | 转发(2) |
给主人留下些什么吧!~~

chinaunix网友2010-12-15 15:28:17

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com