您的位置:首页 > 其它

专题4嵌入式文件系统制作

2016-01-28 17:37 267 查看

本文转自http://www.cnblogs.com/YanfeiHao/articles/4428692.html

1.创建目录

#mkdir rootfs

#cd rootfs

#mkdir bin dev etc lib proc sbin sys usr mnt tmp var

#mkdir usr/bin usr/lib usr/sbin lib/modules

2.创建设备文件

(1)在Linux中设备都以文件的形式存在和操作。

(2)这些文件都在dev目录

(3)在启动Linux系统的时候必须要使用两个设备文件console和null

#cd rootfs/dev

#mknod -m 666 console c 5 1

#mknod -m 666 null c 1 3

3.加入配置文件(一般都是借鉴已有的)

#tar etc.tar.gz

#mv etc/* ../rootfs/etc/ -rf

4.添加内核模块

#cd …/linux

#make modules ARCH=arm CROSS_COMPILE=arm-linux-

#make modules_install ARCH=arm INSTALL_MOD_PATH=…/rootfs

5.编译安装busybox(瑞士军刀)

(1)busybox提供linux的系统调用等功能

(2)配置busybox

#make menuconfig

Busybox Settings àbuild Options->

--》 “Build busybox as astatic binary”, 静态链接

--》 Cross Compiler prefix (写入前缀arm-linux-)

Installation Options->

--》选中 “Don‘t use /usr”

选中该项可以避免busybox 被安装到宿主系统的/usr目录下,破坏宿主系统

--》 Busybox Installation Prefix(写入参数/xxx/rootfs)

该选项表明编译后的busybox的安装位置

(3) 编译/安装busybox

make

make install

6.文件系统分类

根据存储设备的硬件特性、系统需求,不同的文件系统类型有不同的应用场合。在嵌入式Linux应用中,主要的存储设备为 RAM 和FLASH,常用的基于存储设备的文件系统类型包括:jffs2, yaffs2, ubifs, ramdisk等



7.根文件系统一般用initfamfs,基于内存的文件系统掉电丢失,但是速度快。一般一个系统是多个文件系统混合使用。

8.要使用initramfs就必须使用软链接

ln -s ./bin/busybox init

在当前文件夹产生init的快捷方式对应于./bin/busybox

9.配置内核要选上 initramfs选项(General里),且紧接着填写根文件系统所在位置。再重新编译内核。



10.设置UBOOT环境变量(传给内核的启动参数)

setenv bootargs noinitrd console=ttySAC0,115200

但是这样,如果要添加文件则必须要重新编译内核使得文件系统得到更新,因为此时的文件系统是通过解压存在内存里面的。即这种方式的文件系统是包含在内核里的。

11. 使用NFS

(1)内核配置

---》取消initramfs

---》进入File System

---》根文件系统onNFS选上

(2)编译内核

(3)设置UBOOT启动参数

setenv bootargs noinitrd (设置启动参数的固定格式)

console=ttySAC0,115200 init=/init (启动项信息,串口0,波特率)

root=/dev/nfs rw (指明用nfs启动)

nfsroot=192.168.1.3:/home/S5-driver/lesson9/rootfs(根文件系统在主机的路径)

ip=192.168.1.6(开发板IP地址):192.168.1.3(主机IP):192.168.1.1(网关):255.255.255.0(掩码):(开发板主机名):eth0(启动之后IP地址赋值的对象):off(关闭动态IP)

setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.1.107:/home/U-BOOT/mini2440/rootfs_mini2440 ip=192.168.1.105:192.168.1.107:192.168.1.1:255.255.255.0:XiaoJunJun:eth0:off

12.产品成熟以后都用initramfs和yaffs2文件系统。如果开发板的IP和windows的相同会导致访问NFS很慢甚至掉线。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: