简单的来说,我认为根文件系统就是一种目录结构,那么根文件系统和普通的文件系统有什么区别呢?我认为根文件系统就是要包括Linux启动时所必须的目录和关键性的文件,例如Linux启动时都需要有init目录下的相关文件,在Linux挂载分区时Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括了许多的应用程序bin目录等,任何包括这些Linux系统启动所必须的文件都可以成为根文件系统。
Linux支持多种文件系统类型,在嵌入式上常用的有:ROMFS,JFFS2,NFS,CRAMFS,YAFFS等等。在Linux系统中是通过mount命令来挂载不同的文件系统。
在ARM Linux中常用的文件系统的配置:
RAM Disk Driver + EXT2;
MTD Driver + JFFS2/YAFFS;
NFS;
uclinux中常见的文件系统配置为:
Blkmem Driver + ROMFS(支持 Nor Flash);
RAM Disk Driver + ROMFS(不支持FLASH);
MTD Driver + JFFS2/YAFFS(支持多种flash);
建立根文件系统的步骤:
1.创建根文件系统目录。
2.创建各种必要的系统文件目录。
3.创建设备文件。
4.建立启动相关的配置文件。
5.编译安装库文件glibc/uclibc。
6.编译busybox,安装系统软件和应用。
这里重点要建立启动相关的配置文件(Linux-2.6):
创建/etc/inittab
::sysinit:/etc/init.d/rcS
::respawn:/sbin/getty 115200 s3c2410_serial0
::restart:/sbin/init
::shutdown:/bin/umount -a -r
创建/etc/init.d文件
#!/bin/sh
mount -a
/etc/init.d/udev start
mkdir /dev/pts
mount -t devpts devpts /dev/pts
hwclock --hctosys
ifup eth0
ifup lo
/etc/init.d/sshd start
thttpd -C /etc/thttpd.conf
建立开发板上的文件系统配置文件/etc/fstab
proc /proc proc defaults 0 0
sys /sys sysfs defaults 0 0
阅读(376) | 评论(0) | 转发(0) |