构建根文件系统(5)构建dev目录

时间:2022-03-20 16:29:23

只讲使用mdev创建设备文件。。。。。

1、mdev的用法可以参考busybox-1.9.2/docs/mdev.txt,它的两个用途:初始化/dev目录、动态更新。

以下为摘取部分关于mdev的命令:

Here's a typical code snippet from the init script:
[1] mount -t sysfs sysfs /sys
[2] echo /bin/mdev > /proc/sys/kernel/hotplug
[3] mdev -s

Of course, a more "full" setup would entail executing this before the previous
code snippet:
[4] mount -t tmpfs mdev /dev
[5] mkdir /dev/pts
[6] mount -t devpts devpts /dev/pts

2、要在内核启动时,自动运行mdev,这需要修改etc/fstab、etc/init.d/rcS加入要自动运行的命令,

(1)etc/fstab,红字为新增的

#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0

(2)etc/init.d/rcS

#!/bin/sh
ifconfig eth0 172.22.136.38
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

3、因为S3C2410的串口名是s3c2410_serial0、s3c2410_serial1、s3c2410_serial2。所

以还需修改etc/inittab。

# /etc/inittab
::sysinit:/etc/init.d/rcS
s3c2410_serial0::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r

4、mdev是通过init进程来启动的,在使用mdev构造/dev目录之前,init进程至少要用到设备文件/dev/console、/dev/null,

所以接着建立这两个设备文件。

huanghuang@huanghuang-desktop:/work/nfs_root/fs_mini$ ls
bin dev etc lib linuxrc sbin usr
huanghuang@huanghuang-desktop:/work/nfs_root/fs_mini$ cd dev
huanghuang@huanghuang-desktop:/work/nfs_root/fs_mini/dev$ sudo mknod console c 5 1
huanghuang@huanghuang-desktop:/work/nfs_root/fs_mini/dev$ sudo mknod null c 1 3
huanghuang@huanghuang-desktop:/work/nfs_root/fs_mini/dev$ ls
console null
5、构建其它目录

huanghuang@huanghuang-desktop:/work/nfs_root/fs_mini$ sudo mkdir proc mnt tmp sys root
huanghuang@huanghuang-desktop:/work/nfs_root/fs_mini$ ls
bin dev etc lib linuxrc mnt proc root sbin sys tmp usr
至此/work/nfs_root/fs_mini目录下就是一个非常小的根文件系统。

后面我们要把它烧入开发板,还要将它制作成一个映象文件。