使用busybox构建yaffs2根文件系统(前言)

(一) 根文件系统启动过程

由于默认的内核命令行上有init=/linuxrc, 因此,在文件系统被挂载后,运行的第一个程序是根目录下的linuxrc。 这是一个指向/bin/busybox的链接,也就是说,系统起来后运行的第一个程序也就是busybox本身。
这种情况下,busybox首先将试图解析/etc/inittab来获取进一步的初始化配置信息(参考busybox源代码init/init.c中的parse_inittab()函数)。如果根文件目录中并没有/etc/inittab这个配置文件,根据busybox的逻辑,它将生成默认的配置"/etc/init.d/rcS"这个开机脚本.

rcS这个脚本要完成一些必要目录的挂载:

  1. /bin/mount -n -t proc none /proc
  2. /bin/mount -n -t sysfs none /sys
  3. /bin/mount -t ramfs none /dev

挂载“虚拟”文件系统,/proc, /sys,并且在/dev目录上挂载一个ramfs,相当于把原本NAND Flash上的只读的/dev目录“覆盖”上一块可写的空的SDRAM。

/sys和挂载了ramfs的/dev是正确创建设备节点的关键。对于2.6.29内核来说,已经没有了devfs的支持,创建设备节点只有通过两种办法由文件系统完成:
1) 制作文件系统镜像前用mknod手动创建好系统中所有的(包括可能有的)设备节点,并把这些节点文件一起做进文件系统镜像中;
2)在文件系统初始化过程中,通过/sys目录所输出的信息,在/dev目录下动态的创建系统中当前实际有的设备节点。

  1. echo /sbin/mdev > /proc/sys/kernel/hotplug
  2. /sbin/mdev -s
  3. /bin/hotplug
  4. 通过mdev -s 在/dev目录下建立必要的设备节点;
  5. 设置内核的hotplug handler为mdev, 即当设备热插拔时,由mdev接收来自内核的消息并作出相应的回应, 比如挂载U盘。对于mdev,需要注意的是,文件系统里存在/etc/mdev.conf文件,它包含了mdev的配置信息。以下是mdev.conf的中的一部分,
    1. # serial port devices
    2. s3c2410_serial0    0:5    0666    =ttySAC0
    3. s3c2410_serial1    0:5    0666    =ttySAC1
    4. s3c2410_serial2    0:5    0666    =ttySAC2
    5. s3c2410_serial3    0:5    0666    =ttySAC3
    6. 原本串口驱动注册的设备名是s3c2410_serial0, s3c2410_serial1和s3c2410_serial2,而mdev则会在/dev目录下对应生成ttySAC0, ttySAC1和ttySAC2以符合应用程序对于串口设备名称的习惯
  1. /sbin/ifconfig lo 127.0.0.1
  2. /etc/init.d/ifconfig-eth0
  3. 设定本机回环地址为127.0.0.1 ,运行网卡设置脚本/etc/init.d/ifconfig-eth0, 其中ifconfig-eth0中先判断, 如果根文件系统为nfs,则说明网卡已经配置OK,这里什么都不需要重新ifconfig配置了,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值