根文件系统制作过程

一.创建文件系统的基本目录:

可运行以下脚本自动创建:

#!/bin/sh  

echo "------Create rootfs start--------"  
mkdir rootfs  
cd rootfs  

echo "--------Create root, dev ....----------"  
mkdir root dev etc boot tmp var sys proc lib mnt home usr   
mkdir etc/init.d etc/rc.d etc/sysconfig  
mkdir usr/sbin usr/bin usr/lib usr/modules  

echo "make node in dev/console dev/null"  
sudo mknod -m 600 dev/console c 5 1  
sudo mknod -m 600 dev/null  c 1 3  
mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp  
mkdir var/lib var/lock var/run var/tmp  
chmod 1777 tmp  
chmod 1777 var/tmp  

echo "-------Create done---------"
二.加入配置文件(inittab rcS ....)
三.编译安装Busybox(嵌入式开发中的瑞士军刀), 步骤如下:
  1. make menuconfig
  2. 进入busybox setting->build options,开启build static binary静态编译
  3. install options 选择don't use /usr以免影响到主机的文件系统
  4. busybox installation prefix 选择rootfs
  5. build compile 设置为arm-linux-
  6. make
  7. make install
四.挂载文件系统(NFS方式):
1.配置好主机NFS服务器:
    修改配置文件/etc/exports为:xx/x/x(rootfs的地址) *(rw,sync,no_root_squash)
2.配置bootloader的启动参数:
    console=ttySAC0,115200 init=/sbin/init root=/dev/nfs rw
    nfsroot=(开发板的IP):(rootfs的地址) ip=(PC的IP):(开发板的IP):(网关):255.255.255.0::eth0:off
五.挂载文件系统(Jffs2方式)

编译安装mtd-util工具:

安装成功后,在mtd文件夹中找到mkfs.jffs2工具并使用以下命令(我当初用的这个命令,具体参数自行修改)生成jffs2文件.

mkjffs2 -n -s 2048 -e 128KiB -d rootfs -o rootfs.jffs2 --pad=0x14a0000

-r, -d, --root=DIR      指定要做成image的源文件夹
-s, --pagesize=SIZE     节点页大小(默认: 4KiB)
-e, --eraseblock=SIZE   设定擦除块的大小为(默认: 64KiB)
-p, --pad[=SIZE]        用16进制表示所要输出文件的大小

OK,到这里一份热腾腾的系统映像就制作好了,然后设置Linux支持Jffs2,再写入NandFlash文件系统分区.搞定(如果遇到问题可以与我交流).

原文地址:https://www.cnblogs.com/GyForever1004/p/8379473.html