构建根文件系统

read  INSTALL  rirst.

 

 

 

 

总结:应用程序所需要的文件

 

1./dev/console /dev/null

2.配置文件/etc/inittab

3.配置文件里面指定的应用程序

4.库文件

5.init本身,即busybox

以上就是最小根文件系统所需要的项

 

 

编译busybox

先阅读install文件可知道如何编译它

 

make menuconfig

make

make install(这里安装要注意)

安装到我们指定的某个文件里面

使用make CONFIG_PREFIX=/path/from/root install

 

编译需要在makefile里面加上cross_compiler里面加上arm-linux-

 

 

一、创建console

 

 

现在上面编译后busybox目录是work/FL_fs/first_fs

在此目录下:ls /dev/console /dev/null -l

crw------- 1 root root 5, 1 2015-01-05 20:57 /dev/console

crw-rw-rw- 1 root root 1, 3 2015-01-05 20:30 /dev/null

那么根据它来创建console null等设备

 

#mkdir dev

#cd dev

#mknod console c 5 1

#mknod null c 1 3

#ls -l

显示:

 crw-r--r-- 1 root root 5, 1 2015-05-06 20:39 console

crw-r--r-- 1 root root 1, 3 2015-05-06 20:40 null

表示创建成功

二、配置项

#cd work/FL_fs/first_fs

#mkdir etc

#vim  etc/inittab

 

输入:

console::askfirst:-/bin/sh

 

 

三、安装c库

#cd lib

#cp /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib *.so* /work/FL_fs/first_fs/lib -d

end

 

 最小根文件系统已经完成。

 

 此时需要制作镜像文件以烧写到硬件。

 yaffs2和jffs文件系统

 

 1.制作yaffs2

 #cd work/system

 yaffs_source_util_large_smmall_page_nand.tar.bz2

 

 #tar xjf  yaffs_source_util_large_small_page_nand.tar.bz2

 #cd Developement_util_ok

 #cd yaffs2

 #cd utils

 #make

 #cp mkyaffs2image /usr/local/bin

 #chmod +x /usr/local/bin/mkyaffs2image

#cd /work/FL_fs

 #mkyaffs2image first_fs first_fs.yaffs2

 

 此后烧写到开发板里面。

 可以启动,并能使用ls,cd等命令。

 

 

 

 如何改进?

 

 #cd ../first_fs

 #mkdir proc

 

 

 单板上有虚拟系统

 #mkdir proc

 #mount -t proc none /proc

 #ps

 可以看到哪些程序及其内容

   PID TTY          TIME CMD

383 pts/2    00:00:00 ps

30564 pts/2    00:00:00 su

30573 pts/2    00:00:00 bash

383 进程号

#cd 383

如果不想 手动挂载 #mount -t proc none /proc

也可以写到配置文件里面

 

#vim inittab

++ ::sysinit:/etc/init.d/rcS  需要脚本

#mkdir etc/init.d

#vim rcS

##mount -t proc none /proc

#chmod +x /etc/init.d/rcS

就可以了

 

上面#mount -t proc none /proc

也可以使用#mount -a

 

#mount -a是什么意思?

读出/etc/fstab内容来挂载

怎么使用呢?

#mount -a会依赖fstab文件

fstab文件内容有哪些呢?

#device         mount-point    type     options     dump   fsck

proc        /proc        proc defaults    0       0

 

那么,在/etc/fstab里面输入:

proc   /proc    default 0 0

然后在脚本rcS里面使用#mount -a

 

 

然后再制作yaffs镜像文件就和第一种方法是一样的。

可以使用#cat /proc/mounts查看挂载了哪些文件系统

继续

 

 

上面的dev是手工创建

那么怎么自动创建dev下面的设备节点呢

方法:使用mdev

 

怎么使用mdev?  在/

可以查看mdev.txt

 

[1] mount -t sysfs sysfs /sys

[2] echo /bin/mdev > /proc/sys/kernel/hotplug

[3] mdev -s

[4] mount -t tmpfs mdev /dev

[5] mkdir /dev/pts

[6] mount -t devpts devpts /dev/pts

这6步就可以了。

所以:

1、#cd ../first_fs

#mkdir sys

[1] mount -t sysfs sysfs /sys

[4] mount -t tmpfs mdev /dev

应该怎么做?

#vim /etc/fstab

#device         mount-point    type     options     dump   fsck

proc        /proc        proc defaults    0        0

sysfs           /sys           sysfs    default     0      0

tmpfs           /dev           tmpfs    default     0      0

 

 

[2] echo /bin/mdev > /proc/sys/kernel/hotplug

[3] mdev -s

[5] mkdir /dev/pts

[6] mount -t devpts devpts /dev/pts

怎么做呢?

#cd /etc/init.d/rcS

mount -a

mkdir /dev/pts/

mount -t devpts devpts /dev/pts

echo /sbin/mdev > /proc/sys/kernel/hotplug

mdev -s

 

你可能感兴趣的:(ARM,-Linux)