第6章嵌入式文件系统_第1页
第6章嵌入式文件系统_第2页
第6章嵌入式文件系统_第3页
第6章嵌入式文件系统_第4页
第6章嵌入式文件系统_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

提纲1、嵌入式Linux文件系统简介2、Linux文件系统框架和特性3、嵌入式文件系统实验实验一:建立文件系统实验二:NFS文件系统实验实验三:Samba介绍与应用11.嵌入式Linux文件系统简介嵌入式文件系统与桌面文件系统有较大区别:嵌入式文件系统要为嵌入式系统的设计目的服务,不同用途的嵌入式操作系统下的文件系统在许多方面各不相同。嵌入式Linux常用文件系统:第二版扩展文件系统(Ext2fs)、JFFS和YAFFS21.1嵌入式文件系统的设计目标嵌入式文件系统的设计目标包括:使用简单方便安全可靠实时响应接口标注的开放性和可移植性可伸缩性和可配置性开放的体系结构资源有效性功能完整性热插拔支持多种文件类型

31.2嵌入式Linux常用文件系统FlashMemory简介FlashMemory上的两种技术NAND:串行;顺序读取;适合大容量;通常需MTDNOR

:并行;随机读取;适合数据或程序存储;XIP;Xsbase开发平台上所使用的闪存IntelStrataFlashMemory28F128J3A

Ext2fs、JFFS和YAFFSext、ext2、xia、vfat、minix、msdos、umsdos、proc、smb、ncp、iso9660、sysv、hpfs、affs、ufs、vfs等4第二版扩展文件系统(Ext2fs)的优点Ext2fs支持达4TB的内存(Ext是2G)。Ext2fs文件名称最长可以到1012个字符。当创建文件系统时,管理员可以选择逻辑块的大小(通常大小可选择1024、2048和4096字节)。Ext2fs实现快速符号链接:不需要为此目的而分配数据块,并且将目标名称直接存储在索引节点表中,这使性能有所提高,特别是在速度上。5JFFS和YAFFSJFFS文件系统主要针对NORFLASH设计,是一种基于Flash的日志文件系统。JFFS2的底层驱动主要完成文件系统对Flash芯片的访问控制,如读、写、擦除操作。YAFFS主要针对NANDFLASH设计,和JFFS相比它减少了一些功能。自带NAND芯片驱动,并且为嵌入式系统提供了直接访问文件系统的API。YAFFS2是YAFFS的改进版本。62.Linux文件系统框架和特性现代操作系统都提供多种访问存储设备的方法Linux文件系统有两条独立控制设备驱动的途径:通过设备驱动的接口通过文件管理器接口7Linux文件系统框架83.文件系统实验实验一 建立文件系统建立JFFS2文件系统建立RAMFS文件系统实验二 NFS文件系统实验实验三 Samba介绍与应用9实验一:建立文件系统JFFS2(1)JFFS2在Linux中有两种使用方式:作为根文件系统作为普通文件系统在系统启动后被挂载目录采用Ramfs,当系统断电后,该目录所有的数据都会丢失。Linux下常用文件系统结构:1011实验一:建立文件系统JFFS2(2)1)内核配置GeneralSetup项设成“root=1f03rwconsole=ttyS0,115200init=/linuxrc”通过MTD驱动在menuconfig中调用flashmemory设备驱动选择CFIFlashdevicemappedontheXSBASE255PXA255board12实验一:建立文件系统JFFS2(3)2)JFFS2映像生成Jffs2image通过mkfs.jffs2工具创建成imagemkfs.jffs2用法:-e选项确定闪存的擦除扇区大小(通常是64K)。-p选项用来在映像的剩余空间用零填充。-o选项用于输出文件,这里是rootfs.img利用bootloader将生成的rootfs.img下载后写入flash

再次重起开发板,内核就能加载JFFS2作为根文件系统

./mkfs.jffs2–orootfs–e0x400000–rroot_XSBASE–p-l13实验一:建立文件系统RAMFS(1)RAMFS是内存文件系统,它工作于虚拟文件系统(VFS)层RAMFS是一个非常巧妙的,利用VFS自身结构而形成的内存文件系统14实验一:建立文件系统RAMFS(2)1)使用主机的loopback设备来实现loopback文件系统用ddif=/dev/zeroof=ramdisk_imgbs=1kcount=8192指令创建一个连续的8M大小的空间将此空间用mke2fs格式化为了对格式化的空间进行mount,创建一个目录/tmp在tmp目录里复制或创建设置文件,util,library等将工作目录进行umount,再用gzip压缩,则生成ramdisk_img.gz文件将此加载到bootloader,则新的ramdisk可用作根文件系统。15实验一:建立文件系统RAMFS(3)修改一些内核配置XSBase255中setup_initrd()的0xA1000000成为SDRAM的ramdisk地址,ramdisk要下载到Bootloader中的这个地址

CONFIG_BLK_DEV_RAM_SIZE是menuconfig中设定的“DefaultRAMdisksize”大小修改DefaultKernelcommandstring为:“root=/dev/ramrwconsole=ttyS0,115200init=/linuxrc”。用于重新引导系统。161718实验二 NFS文件系统实验(1)NFS是用于在不同机器,不同操作系统之间通过网络互相分享文件的建立NFS开发环境的工作分为两个方面:配置NFS服务器和配置客户端基本的命令格式Mount的基本命令格式如下:Umount的基本命令格式:mount-ttype[-rv]-o[option]server:pathname/mount_point

umount[-dflnrv]dir|device[...]19实验二 NFS文件系统实验(2)配置NFS服务端在HostPC上打开/etc/exports文件,并进行如下设置:把/mnt/nfs设置完成后重新开始NFSdeamon

[root@XSBasehome]#vi/etc/exports/mnt/nfs(rw,no_root_squash)[root@XSBasehome]#/etc/rc.d/init.d/nfsstop[root@XSBasehome]#/etc/rc.d/init.d/nfsstart20实验二 NFS文件系统实验(3)配置NFS客户端NFS客户端是开发板,所以要让开发板上的内核支持NFS,必须重新配置内核生成zImage镜像文件,并下载到板子上。通过makemenuconfig指令在kernel设置窗进行NFS设置menuconfig窗口打开后,确认NFS设置是否被选上

重新编译内核,新的内核下就可以使用nfs命令了

--->Network---><*>NFSsupport[*]ProvideNFSv3clientsupport[]RootonNFS21实验二 NFS文件系统实验(4)挂载NFS文件系统开发板上进行mount操作,把PC上的某个目录挂载上来:

把HostPC的/mnt/nfs目录mount到开发板的/mnt目录下使用。是PC的ip。接下来就可以在新mount上来的目录下做各种操作,挂载工作完成[root@xsbase255]#mount–tnfs:/mnt/nfs/mnt[root@xsbase255]#cd/mnt22实验二 NFS文件系统实验(5)如果出现没法mount上去的情况,可以按照以下步骤进行检查:用rpcinfo-pserver_name去查看此server是否存在用rpcinfo-userver_namemount查看mountddaemon是否有在server上执行假如server都没问题,检查server和client之间的网线连接在client上用psax查看portmap和对应的NFSdaemons是否运行

打开服务端PC上的/var/lib/nfs/rmtab文件,清空内容

重起NFS服务

23实验二 NFS文件系统实验(6)加载NFS为根文件系统1)重新配置内核

在Generalsetup里面重新设置Defaultkernelcommandstring的值在Network选项中需要选中“RootonNFS”在Blockdevices选项中把“RAMdisksupport”选项去除,选中“Networkblockdevicesupport”

配置完内核,重新makezImage,生成新的镜像

242526272)配置服务端PC

/t目录下新增子目录pxa255,用作新的根文件系统

把原文件系统下的文件拷贝到/t中重新编辑/etc/exports文件如下:重新启动NFS服务$vi/etc/exports/t(rw,no_root_squash)283)重起开发板,使用tftp协议加载新的内核镜像,系统启动后,使用boot命令直接引导4)确认新的根目录是否是PC端的/t目录

29实验三 Samba介绍与应用Samba介绍Samba是一组软件包,使Linux支持SMB(服务消息块)协议,该协议由TCP/IP实现,它是windows网络文件和打印共享基础samba的核心是两个守护进程smbd和nmbd程序,在服务器启动到停止期间持续运行。Smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与Linux进行协商,nmbd进程使其它主机(或工作站)能浏览Linux服务器。

一个完整的smb.conf一般由Globalsettings和shareDefinitions两部分组成

30思考:使用BusyBox构建根文件系统Busybox是DebianGNU/Linux的大名鼎鼎的BrucePerens首先开发,。后来又有许多Debiandevelopers贡献力量,这其中尤推busybox目前的维护者ErikAndersen,他患有癌症,可却是一名优秀的自由软件开发者。Busybox包括一个迷你的vi编辑器,系统不可或缺的/sbin/init程序,以及其他诸如sed,ifconfig,halt,reboot,mkdir,mount,ln,ls,echo,cat...等等,大小也不过100K左右。而且,用户还可以根据自己的需要,决定到底要在busybox中编译进哪几个应用程序的功能。busybox的体积可以进一步缩小。BusyBox支持多种体系结构,可以静态或动态链接glic或者uclibc库,以满足不同的需要,也可以修改BusyBox默认的编译配置以移除不想使用的命令的支持。31samba的启动与停止在缺省情况下,RedHatLinux的samba在启动时就已投入运行也可利用系统脚本来手工启动和停止samba#/etc/rc.d/init.d/smbstart(启动samba)#/etc/rc.d/init.d/smbstop(停止samba)32定制samba(1)定制samba用户通过对smb.conf文件进行vi编辑,可以添加、删除及修改smba提供的多种服务。向用户开放Linux文件资源,只有读权限。[public]comment=publicstuffpath=/public=yeswritable=noprintale=nowritelist=@staff33定制samba(2)共享CD-ROM修改smb.conf之前,先安装光驱,可执行下列命令:#mount-tiso9660/dev/cdrom/mnt/cdrom然后定制samba,内容如下:[cdrom]path=/mnt/cdromreadyonly=yespublic=yes34定制samba(3)为多个用户提供服务comment=userl’sstuff,user2’sstuff,user3’sstuffpath=/home/user1(用户userl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论