介绍根文件系统制作步骤
第一步、解压根文件系统
tar xjf busybox-1.7.0.tar.bz2
可以根据INSTALL文件介绍的编译步骤进行开发
第二步、可以通过 make menuconfig 和内核一样的方式进行配置
修改Makefile交叉编辑选项 arm-linux-
第三步、执行make命令编译
第四步、安装到指定的目录
make CONFIG_PREFIX=/path.../first_fs install
会生成first_fs文件,包含根文件系统的基本框架
第五步、创两个设备文件 mkdir dev
查看要创建设备文件的主设备号和此设备号
ls -l /dev/console /dev/null
/dev/console mknod /dev/console c 5 1
/dev/null mknod /dev/null c 1 3
第六步、创建配置文件 mkdir etc
1、vim /etc/inittab linux内核在启动时要启动的进程
console::askfirst:-/bin/sh q\启动sh进程
::ysyinit:/etc/init.d/rtc 执行脚本
2、vim /etc/init.d/rcS sh脚本文件 执行linux启动时参数设置操作 修改文件属性 chmod +x rcS
#!/bin/sh
ifconfig eth0 192.168.1.11 设置ip
mount -a 挂在/etc/fstab 文件中设置的文件系统
3、vim /etc/fstab
设备名 挂载点 文件系统 参数 备份设置 读磁盘顺序设置
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
第七步、创建根文件系统使用的库到 mkdir lib
cd /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
cp *.so* /home/book/yaffs/first_fs/lib -d
第八步、制作的根文件系统基本已经成型后面会在添加上udev功能,自动创建/dev目录下的设备节点
1、在、etc/fstab文件下添加两个文件系统配置
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs default 0 0
2、在文件 etc/init.d/rcS
mkdir dev/pts
mount -t devpts devpts dev/pts
echo sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
3、创建sys目录
后面需要将文件系统生成映像文件才能烧录到开发板中 ,需要生成制作映像文件的工具
第一步、生成制作根文件系统的工具 解压工具源文件
tar xjf yaffs_source_util_larger_small_page_nand.tar.bz2
cd Development_util_ok/yaffs2/utils/
Make 编译生成工具
sudo cp mkyaffs2image /usr/local/bin/ 拷贝制作根文件系统的命令到环境变量path包含的路径下
sudo chmod +x /usr/local/bin/mkyaffs2image 更改命令文件的属性 为可执行
mkyaff2image first_fs first_fs.yaffs2 使用生成的工具制作根文件映像文件。
以上就是根文件系统的制作烧录过程,但是在调试的时候很不方便,下面为大家介绍一种nfs网络文件系统
第一步、连接上网线 电脑到开发板
ifconfig eth0 up 启动网卡
第二步、配置ip
ifconfig eth0 192.168.1.11
ping 192.168.1.107
第三步、修改nfs配置文件
sudo vi /etc/exports
添加 挂在网络文件路径 /home/book/yaffs/first_fs *(rw,sync,no_root_squash)
第四步、重启nfs服务
sudo /etc/init.d/nfs-kernel-server testart
第五步、可以尝试在电脑上挂在网络文件试试成功
sudo mount -t nfs 192.168.1.107:/home/book/yaffs/first_fs /mnt
第六步、单板挂在网络根文件
创建挂载的目录 mkdir mnt
mount -t nfs -o nolock 192.168.1.107:/home/book/yaffs/first_fs /mnt
ls /mnt
以上是手动挂在网络文件
第七步、修改命令行启动参数
原:bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
设置为:set bootargs bootargs=noinitrd root=/dev/nfs nfsroot=192.168.1.107:/home/book/yaffs/first_fs ip=192.168.1.11:192,168.1.107:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0