嵌入式文件系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17
18
19
实验二 NFS文件系统实验 (1)
NFS是用于在不同机器,不同操作系统之间通 过网络互相分享文件 的 建立NFS开发环境的工作分为两个方面:配置
NFS服务器和配置客户端
基本的命令格式
Mount的基本命令格式如下:
mount -t type [-rv] -o [option] server:pathname /mount_point
25
26
27
28
2)配置服务端PC
/tftpboot目录下新增子目录pxa255,用作新的根文件系统 把原文件系统下的文件拷贝到/tftpboot/pxa255中 重新编辑/etc/exports文件如下: $ vi /etc/exports /tftpboot/pxa255 (rw,no_root_squash) 重新启动NFS服务
./mkfs.jffs2 –o rootfs –e 0x400000 –r root_XSBASE –p -l
利用bootloader将生成的 rootfs.img下载后写入flash 再次重起开发板,内核就能加载JFFS2作为根文件系统
14
实验一:建立文件系统RAMFS(1)
RAMFS是内存文件系统,它工作于虚拟 文件系统(VFS)层 RAMFS是一个非常巧妙的,利用VFS自身 结构而形成的内存文件系统
Ext2fs 、JFFS和YAFFS
ext、 ext2、xia、vfat、minix、msdos、umsdos、 proc、 smb、ncp、iso9660、sysv、hpfs、affs、ufs、vfs等
5
第二版扩展文件系统(Ext2fs)的优点
Ext2fs支持达4 TB的内存(Ext是2G)。 Ext2fs文件名称最长可以到1012个字符。 当创建文件系统时,管理员可以选择逻辑块的大小 (通常大小可选择 1024、2048和4096字节)。 Ext2fs实现快速符号链接:不需要为此目的而分配数 据块,并且将目标名称直接存储在索引节点表中, 这使性能有所提高,特别是在速度上。
24
实验二 NFS文件系统实验(6)
加载NFS为根文件系统
1)重新配置内核
在General setup里面重新设置Default kernel command string 的值 在Network File Systems选项中需要选中“Root file system on NFS” 在Block devices选项中把“RAM disk support”选项去除,选中 “Network block device support” 配置完内核,重新make zImage,生成新的镜像
15
实验一:建立文件系统RAMFS(2)
1)使用主机的loopback设备来实现loopback文 件系统
用dd if=/dev/zero of=ramdisk_img bs=1k count=8192 指 令创建一个连续的8M大小的空间 将此空间用 mke2fs格式化 为了对格式化的空间进行mount, 创建一个目录/tmp 在tmp目录里复制或创建设置文件, util, library等 将工作目录进行umount,再用gzip压缩,则生成 ramdisk_img.gz文件 将此加载到 bootloader,则新的ramdisk可用作根文件系 统。
把/mnt/nfs设置完成后重新开始NFS deamon
[
root@XSBase home]# /etc/rc.d/init.d/nfs stop [root@XSBase home]# /etc/rc.d/init.d/nfs start
21
实验二 NFS文件系统实验(3)
配置NFS客户端
NFS客户端是开发板,所以要让开发板上的内核支持NFS,必 须重新配置内核生成zImage镜像文件,并下载到板子上。 通过 make menuconfig 指令在kernel设置窗进行NFS设置 menuconfig 窗口打开后,确认NFS设置是否被选上
接下来就可以在新mount上来的目录下做各种 操作,挂载工作完成
23
实验二 NFS文件系统实验(5)
如果出现没法mount上去的情况,可以按 照以下步骤进行检查:
用 rpcinfo -p server_name 去查看此server是否存在 用 rpcinfo -u server_name mount 查看mountd daemon 是否有 在server上执行 假如server 都没问题,检查 server 和 client 之间的网线连接 在client上用ps ax 查看portmap和对应的NFS daemons是否运 行 打开服务端PC上的/var/lib/nfs/rmtab文件,清空内容 重起NFS服务
嵌入式文件系统与桌面文件系统有较大区 别 :嵌入式文件系统要为嵌入式系统的设计目的服
务,不同用途的嵌入式操作系统下的文件系统在许多方 面各不相同。
嵌入式Linux常用文件系统:第二版扩展文件
系统(Ext2fs)、JFFS和YAFFS
3
1.1嵌入式文件系统的设计目标
嵌入式文件系统的设计目标包括:
使用简单方便 安全可靠 实时响应 接口标注的开放性和可移植性 可伸缩性和可配置性 开放的体系结构 资源有效性 功能完整性 热插拔 支持多种文件类型
嵌入式文件系统
陈文智 wzchen@cad.zju.edu.cn 浙江大学计算机学院 2005年4月
1
提纲
1、嵌入式Linux文件系统简介 2、Linux文件系统框架和特性 3、嵌入式文件系统实验
实验一:建立文件系统 实验二:NFS文件系统实验 实验三:Samba介绍与应用
2
1. 嵌入式Linux文件系统简介
29
3)重起开发板,使用tftp协议加载新的内核镜 像, 系统启动后,使用boot命令直接引导 4)确认新的根目录是否是PC端的 /tftpboot/pxa255目录
30
实验三 Samba介绍与应用
Samba介绍
Samba是一组软件包,使Linux支持SMB(服务消息 块)协议,该协议由TCP/IP实现,它是windows网 络文件和打印共享基础 samba的核心是两个守护进程smbd和nmbd程序,在 服务器启动到停止期间持续运行。Smbd进程的作用 是处理到来的SMB软件包,为使用该软件包的资源 与Linux进行协商,nmbd进程使其它主机(或工作 站)能浏览Linux服务器。 一个完整的smb.conf一般由Global settings和share Definitions两部分组成
6
JFFS和YAFFS
JFFS文件系统主要针对NOR FLASH设计,是一种 基于Flash的日志文件系统。 JFFS2的底层驱动主要完成文件系统对Flash芯片的 访问控制,如读、写、擦除操作。 YAFFS主要针对NAND FLASH设计,和JFFS相比它 减少了一些功能。自带NAND芯片驱动,并且为嵌入 式系统提供了直接访问文件系统的API。 YAFFS2是YAFFS的改进版本。
11
JFFS2
RAMFS
MTD
MTD
MTD
Biblioteka Baidu
NOR Flash
RAM
12
实验一:建立文件系统JFFS2(2)
1)内核配置
General Setup项设成 “root=1f03 rw console=ttyS0,115200 init=/linuxrc”
通过MTD驱动在 menuconfig中调用flash memory设备驱动 选择 CFI Flash device mapped on the XSBASE255 PXA255 board
13
实验一:建立文件系统JFFS2(3)
2)JFFS2映像生成
Jffs2 image通过 mkfs.jffs2 工具创建成 image mkfs.jffs2 用法:-e 选项确定闪存的擦除扇区大小(通 常是64K)。-p 选项用来在映像的剩余空间用零填 充。-o 选项用于输出文件,这里是rootfs.img
7
2. Linux文件系统框架和特性
现代操作系统都提供多种访问存储设备的 方法 Linux文件系统有两条独立控制设备驱动 的途径 :
通过设备驱动的接口 通过文件管理器接口
8
Linux文件系统框架
API API POSIX API POSIX API
VFS
a
b
Linux
9
3. 文件系统实验
实验一 建立文件系统
建立JFFS2文件系统 建立RAMFS文件系统
实验二 NFS文件系统实验 实验三 Samba介绍与应用
10
实验一:建立文件系统JFFS2(1)
JFFS2在Linux中有两种使用方式 :
作为根文件系统 作为普通文件系统在系统启动后被挂载
目录采用Ramfs,当系统断电后,该目录 所有的数据都会丢失。 Linux下常用文件系统结构 :
Umount的基本命令格式:
umount [-dflnrv] dir | device [...]
20
实验二 NFS文件系统实验 (2)
配置NFS服务端
在 Host PC上打开 /etc/exports 文件,并进行如 下设置 :
[root@XSBase home]# vi /etc/exports /mnt/nfs (rw,no_root_squash)
4
1.2 嵌入式Linux常用文件系统
Flash Memory简介 Flash Memory上的两种技术
NAND:串行;顺序读取;适合大容量;通常需MTD NOR
:并行;随机读取;适合数据或程序存储;XIP;
Xsbase开发平台上所使用的闪存
Intel StrataFlash Memory 28F128J3A
16
实验一:建立文件系统RAMFS(3)
修改一些内核配置
XSBase255中 setup_initrd()的 0xA1000000 成为 SDRAM 的 ramdisk 地址 ,ramdisk 要下载到 Bootloader中的这个地址 CONFIG_BLK_DEV_RAM_SIZE是 menuconfig中设 定的 “Default RAM disk size” 大小 修改Default Kernel command string为: “root=/dev/ram rw console=ttyS0,115200 init=/linuxrc”。用于重新引导系统。
31
思考:使用BusyBox构建根文件系统
Busybox 是 Debian GNU/Linux 的大名鼎鼎的 Bruce Perens 首先开发,。后来又有许多 Debian developers 贡献力量,这其中尤推 busybox 目前的维护者 Erik Andersen,他患有癌症,可却是一名优秀的自由软件 开发者。Busybox包括一个迷你的 vi 编辑器,系统不可 或缺的 /sbin/init 程序,以及其他诸如 sed, ifconfig, halt, reboot, mkdir, mount, ln, ls, echo, cat ... 等等,大小也 不过 100K 左右。而且,用户还可以根据自己的需要, 决定到底要在 busybox 中编译进哪几个应用程序的功 能。busybox 的体积可以进一步缩小。BusyBox支持多 种体系结构,可以静态或动态链接glic或者uclibc库,以 满足不同的需要,也可以修改BusyBox默认的编译配置 以移除不想使用的命令的支持。
File systems ---> Network File Systems ---> <*> NFS file system support [*] Provide NFSv3 client support [ ] Root file system on NFS
重新编译内核,新的内核下就可以使用nfs命令了
22
实验二 NFS文件系统实验(4)
挂载NFS文件系统
开发板上进行mount操作,把PC上的某个目录挂载 上来:
[
root@xsbase255]# mount –t nfs 192.168.1.1:/mnt/nfs /mnt [root@xsbase255]# cd /mnt
把Host PC的/mnt/nfs目录mount到开发板的/mnt目 录下使用。Ip 192.168.1.1是PC的ip。