目录
创建/etc/init.d/rcS 文件
通过nfs加载根文件系统成功后,在串口终端上有一个提示,不能打开'/etc/init.d/rcS'文件
因为现在还没有创建这个文件呢,所以系统提示不能打开。
现在就要手动去创建这个文件
在rootfs文件夹中创建etc文件夹,然后在etc文件夹里面继续创建init.d文件夹,然后在init.d文件夹中常见 rcS文件
在 rcS 中输入以下内容
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:$PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib
export PATH LD_LIBRARY_PATH
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
第 1 行,表示这是一个 shell 脚本。
第 3 行,PATH 环境变量保存着可执行文件可能存在的目录,这样我们在执行一些命令或
者可执行文件的时候就不会提示找不到文件这样的错误。
第 4 行,LD_LIBRARY_PATH 环境变量保存着库文件所在的目录。
第 5 行,使用 export 来导出上面这些环境变量,相当于声明一些“全局变量”。
第 7 行,使用 mount 命令来挂载所有的文件系统,这些文件系统由文件/etc/fstab 来指定,
所以我们一会还要创建/etc/fstab 文件。
第 8 和 9 行,创建目录/dev/pts,然后将 devpts 挂载到/dev/pts 目录中。
第 11 和 12 行,使用 mdev 来管理热插拔设备,通过这两行,Linux 内核就可以在/dev 目录
下自动创建设备节点。关于 mdev 的详细内容可以参考 busybox 中的 docs/mdev.txt 文档。
下来要给rcS文件设置可执行权限
下面就可以重启一次开发板,看看刚才提示的信息是否还存在。
在串口终端中输入 reboot 命令,重启开发板
重启之后可以看到已经不提示不能打开'/etc/init.d/rcS'文件了,但是由有了新的提示 不能读取到 /etc/fstab 文件
创建/etc/fstab 文件
接下来就要继续创建/etc/fstab文件
进入etc目录中新建fstab文件
在fstab文件中输入以下内容
#<file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
保存退出,然后重启开发板。
重启后这时候就没有文件打开失败的提示了。
创建/etc/inittab 文件
进入到etc文件夹中,然后新建inittab文件。
inittab 的详细内容可以参考 busybox 下的文件 examples/inittab。init 程序会读取/etc/inittab这个文件,inittab 由若干条指令组成。每条指令的结构都是一样的,由以“:”分隔的 4 个段组
成,格式如下:
<id>:<runlevels>:<action>:<process>
<id>:每个指令的标识符,不能重复。但是对于 busybox 的 init 来说,<id>有着特殊意义。对于 busybox 而言<id>用来指定启动进程的控制 tty,一般我们将串口或者 LCD 屏幕设置为控制 tty。
<runlevels> :对 busybox 来说此项完全没用,所以空着。
<action>:动作,用于指定<process>可能用到的动作。
<process> :具体的动作,比如程序、脚本或命令等。
在inittab文件中输入以下内容:
#etc/inittab
::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
第 2 行,系统启动以后运行/etc/init.d/rcS 这个脚本文件。
第 3 行,将 console 作为控制台终端,也就是 ttymxc0。
第 4 行,重启的话运行/sbin/init。
第 5 行,按下 ctrl+alt+del 组合键的话就运行/sbin/reboot,看来 ctrl+alt+del 组合键用于重
启系统。
第 6 行,关机的时候执行/bin/umount,也就是卸载各个文件系统。
第 7 行,关机的时候执行/sbin/swapoff,也就是关闭交换分区
输入完成后保存退出,然后重启开发板。
可以看到系统已经成功的挂载了根文件系统。
上一篇:Linux学习笔记---使用BusyBox创建根文件系统(二) 下一篇:Linux学习笔记---使用BusyBox创建根文件系统(四)