《2010-6-嵌入式文件系统.ppt》由会员分享,可在线阅读,更多相关《2010-6-嵌入式文件系统.ppt(87页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1TM嵌入式系统嵌入式系统第第6章章嵌入式文件系统嵌入式文件系统2TM22课程大纲课程大纲文件系统基础知识文件系统基础知识嵌入式嵌入式LinuxLinux文件系统简介文件系统简介 LinuxLinux文件系统框架和特性文件系统框架和特性嵌入式文件系统相关实验嵌入式文件系统相关实验3TM3操作系统、内核、文件系统操作系统、内核、文件系统n操作系统?操作系统?n负责对计算机硬件直接控制及管理的系统软件n内核内核n操作系统的核心部分n文件系统文件系统n操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。n操作系统中与管理文件有关的软件和数据。n屏蔽底层硬件的处理细节,用户可
2、以按名字访问数据4TM4Linux 文件系统的特点文件系统的特点nLinux的文件系统的文件系统Vs.Windows的文件系统的文件系统nWindows文件系统n以驱动器的盘符为基础的n每一个目录是与相应的分区对应nLinux文件系统n一个文件树n它的所有文件和外部设备(如硬盘,光驱等)都是以文件的形式挂结在这个文件树上n总之,在总之,在Windows下,目录结构属于分区;下,目录结构属于分区;Linux下,分区下,分区属于目录结构属于目录结构5TM5Linux的目录结构的目录结构6TM6Linux文件系统中的挂载(文件系统中的挂载(mount)n实现硬件管理手段和软件目录管理手段的统一实现硬
3、件管理手段和软件目录管理手段的统一n每一个分区和某一个目录相对应n对目录的操作就是对这个分区的操作n把分区和目录对应的过程叫做挂载(把分区和目录对应的过程叫做挂载(mount)n这个挂载在文件树中的位置就是挂载点n这种对应关系可以由用户随时中断和改变7TM7mount 命令命令n功能:加载指定的文件系统功能:加载指定的文件系统n语法:语法:nmount-afFhnrvVw-L-o-t 设备名 加载点n例如:mount -t vfat/dev/hda1/mnt/c8TM8Linux文件的类型文件的类型nLinux对目录和设备都当作文件来进行处理对目录和设备都当作文件来进行处理n分类分类n普通文件
4、n目录文件n链接文件n设备文件 9TM91.普通文件普通文件n如同如同Windows中的文件中的文件n包括包括n文本文件nshell脚本n二进制的可执行程序n各种类型的数据10TM102.目录文件目录文件n目录也是文件目录也是文件n包含文件名和子目录名以及指向那些文件和子目录的指针nLinux通过上下链接目录文件系统来实现对整个通过上下链接目录文件系统来实现对整个文件系统的操作文件系统的操作n什么是根目录?11TM113.链接文件链接文件n又称软链接,符号链接又称软链接,符号链接n类似于类似于Windows中的中的“快捷方式快捷方式”n功能功能n实现对不同的目录、文件系统甚至是不同机器上的文件
5、直接访问,并且不需要重新分配磁盘空间n命令格式:命令格式:nln-ssource_pathtarget_pathn例如:ln-shttpd.confhttpd2.conf12TM124.设备文件设备文件nLinux把设备都当作文件来进行操作把设备都当作文件来进行操作n与设备相关的文件一般都在与设备相关的文件一般都在/dev目录下目录下n块设备文件n字符设备文件n块设备块设备n数据的读写是以块(如由柱面和扇区编址的块)为单位的设备,最简单的如硬盘(/dev/hda1)等n字符设备字符设备n指串行端口等接口设备13TM13Linux中常见的文件系统中常见的文件系统EXT2nExt2是是GNU/Li
6、nux系统中标准的文件系统系统中标准的文件系统n特点特点n单一文件大小及文件系统本身的容量上限与文件系统本身的簇大小有关n一般常见的X86系统中,簇最大为4KB,则单一文件大小上限为2048GB,而文件系统的容量上限为16384GB14TM14Linux 常见的文件系统常见的文件系统-EXT3nExt3是是Ext2的下一代的下一代n在保有目前Ext2的格式之下再加上日志功能n日志文件系统(日志文件系统(JournalFileSystem)n整个磁盘的写入动作完整记录在磁盘的某个区域上,以便有需要时可以回溯追踪15TM15Linux 常见的文件系统常见的文件系统-swapn交换空间交换空间nLi
7、nux使用整个分区来作为交换空间nWindows使用交换文件n自定义大小自定义大小n一般这个SWAP格式的交换分区的容量大小是主内存的2倍16TM1616课程大纲课程大纲文件系统基础知识文件系统基础知识嵌入式嵌入式LinuxLinux文件系统简介文件系统简介 LinuxLinux文件系统框架和特性文件系统框架和特性嵌入式文件系统相关实验嵌入式文件系统相关实验17TM17嵌入式文件系统嵌入式文件系统Vs.桌面文件系统桌面文件系统n专有性专有性Vs.通用性通用性n嵌入式系统针对特殊目的而定制n嵌入式文件系统要为嵌入式系统的设计目的服务嵌入式文件系统要为嵌入式系统的设计目的服务n不同用途的嵌入式操作
8、系统下的文件系统不同不同用途的嵌入式操作系统下的文件系统不同18TM18嵌入式文件系统的设计目标嵌入式文件系统的设计目标19TM19嵌入式操作系统嵌入式操作系统嵌入式文件系统嵌入式文件系统nQNX实时操作系统实时操作系统nPOSIX,SMB,FAT,CD-ROM.nVxWorksnFFS,FAT,RTllFS,RAWFS,TAPEFSn嵌入式嵌入式LinuxnJFFS2,YAFFS,CRAMFS,ROMFS,RAMFS20TM20桌面文件系统不适合嵌入式系统(桌面文件系统不适合嵌入式系统(Ext2fs)n为像为像IDE设备那样的块设备设计的设备那样的块设备设计的n不太适合扇区大小因设备不同而不
9、同的闪存设备n没有提供对基于扇区的擦除没有提供对基于扇区的擦除/写操作的良好管理写操作的良好管理n闪存具有有限的擦除寿命n在出现电源故障时,在出现电源故障时,Ext2fs不是防崩溃的不是防崩溃的n不支持损耗平衡不支持损耗平衡nFlash中所有被擦写的单元保持相同的擦写次数中所有被擦写的单元保持相同的擦写次数,因此缩短了扇区/闪存的寿命n在设计块驱动程序方面较为困难在设计块驱动程序方面较为困难21TM21存储设备存储设备嵌入式嵌入式Linux文件系统文件系统n选择嵌入式文件系统的关键点选择嵌入式文件系统的关键点n不同的文件系统类型有不同的特点n根据存储设备的硬件特性、系统需求等有不同的应用场合n
10、嵌入式设备很少使用大容量的IDE硬盘,往往采用RAM、ROM、FLASH存储器等作为存储设备。n设计合适的文件系统设计合适的文件系统22TM22FlashMemory(闪存)(闪存)nNANDn串行;顺序读取;适合大容量;通常需MTDn存储单元被分为页,由页组成块n读写以块和页为单位n不足:随机存取速度较慢,无法按字节写随机存取速度较慢,无法按字节写n适合于大容量的多媒体应用中。适合于大容量的多媒体应用中。nNORn并行;随机读取;n不足:写入和擦除速度较低n适合数据或程序存储;XIPXSbase开发平台上所使用的闪存:开发平台上所使用的闪存:IntelStrataFlashMemory28F
11、128J3A,NOR23TM23嵌入式存储设备嵌入式存储设备嵌入式嵌入式Linux文件系统文件系统?nNANDFlashYAFFSnNORFlashJFFS2nRAMRAMFSnNetworkNFS24TM24 JFFS/JFFS2n2000年年nAxis公司发布了日志式Flash文件系统jffsn在Flash的存储空间中,数据和辅助信息都依次存放n2001年初年初nRed Hat公司在此基础上推出了jffs2文件系统n针对嵌入式系统中的针对嵌入式系统中的Flash存储器进行设计存储器进行设计25TM25JFFS缺陷缺陷n关于空间回收,关于空间回收,jffs并没有进行太多优化并没有进行太多优化
12、n不支持对数据进行压缩之后进行存储不支持对数据进行压缩之后进行存储n不支持硬链接,每一个存储块中都保存了对应的文不支持硬链接,每一个存储块中都保存了对应的文件名件名26TM26JFFS2:改进:改进njffs2的节点头部中增加了一些新的信息的节点头部中增加了一些新的信息n包括CRC校验码和节点类型等n改进改进jffs空间回收方式的缺陷空间回收方式的缺陷njffs2不再像不再像jffs中只有一种节点中只有一种节点;有有3种节点类型种节点类型n分别用于表示擦除块的标记,普通文件,目录n可以很快取得的数据并不保存在内存之中可以很快取得的数据并不保存在内存之中n增加了对数据的压缩增加了对数据的压缩n开
13、始支持硬链接开始支持硬链接27TM27YAFFS/YAFFS2nJFFS/JFFS2应用于应用于NANDFlash存在问题存在问题n通过jffs_node维护Flash中的日志节点n每个节点需要占用48个字节的内存空间nJFFS/JFFS2在挂载时需要扫描整个Flash的内容n找出所有的日志节点,建立文件结构28TM28 YAFFSnYet Another Flash File Systemn专门针对NAND Flash特点编写的日志文件系统n克服克服JFFS/JFFS2的缺点的缺点n很小的内存空间占用n很短的挂载时间n跨平台的文件系统29TM29YAFFS2nYAFFAS存在的问题存在的问题
14、n不支持数据压缩n仅对512字节页(后简称小页)大小的NANDFlashn很多大容量的NANDFlash(128MB以上),使用大小为2KB的页(后简称为大页)nYAFFS2n实现对大页Flash的支持n在内存空间占用,垃圾回收速度,读写速度等方面均有大幅度提升30TM30 Cramfsn最初是最初是Linus Torvalds 编写的一个文件系统编写的一个文件系统n具有简单、压缩和只读等特点n用于保存只读的根文件系统内容n特点特点n将文件数据以压缩形式存储,在需要运行的时候进行解压缩n不能直接在Flash上运行n可以节约很多Flash存储空间,但是文件系统运行需要将大量的数据拷贝进RAM中,
15、造成一定的浪费31TM31创建创建CRAMFS根文件系统映像根文件系统映像n工具工具nmkcramfs 和cramfsckn使用如下命令来制作一个使用如下命令来制作一个CRAMFS映像映像n$ROOTFS为目标根文件系统所在目录n$mkcramfs$ROOTFS/cramfs.img32TM3232课程大纲课程大纲文件系统基础知识文件系统基础知识嵌入式嵌入式LinuxLinux文件系统简介文件系统简介 LinuxLinux文件系统框架和特性文件系统框架和特性嵌入式文件系统相关实验嵌入式文件系统相关实验33TM33Linux文件系统与存储设备文件系统与存储设备n现代操作系统都提供多种访问存储设备
16、的方法现代操作系统都提供多种访问存储设备的方法nLinux文件系统有两条独立控制设备驱动的途径文件系统有两条独立控制设备驱动的途径n通过设备驱动的接口n直接读写磁盘,但是给操作系统带来麻烦,降低稳定性n特殊环境下使用,例如数据库管理系统n按“块”访问n通过文件管理器接口n提高系统稳定性n按文件结构来读写34TM34Linux文件系统框架文件系统框架35TM35Linux文件系统特点文件系统特点n在在UNIX操作系统中,文件按照树的形式来组织操作系统中,文件按照树的形式来组织n一个文件系统只有一个根目录一个文件系统只有一个根目录n根目录根目录n挂载(mount)nUnix文件系统通过文件管理器的
17、操作以及对文件、文件系统通过文件管理器的操作以及对文件、目录的定位来控制存储设备目录的定位来控制存储设备nLinux文件管理器文件管理器nVFS36TM3637TM37 VFSnLinux内核借鉴了很多内核借鉴了很多“面向对象面向对象”的思想的思想n虽然Linux内核是用C语言来写n面向对象中的概念面向对象中的概念nVFS层 对应“抽象基类”n具体文件系统对应这个抽象基类的“派生类”n对文件的操作实现了一个类似于“纯虚函数”的接口n如open,write,read等38TM3838课程大纲课程大纲文件系统基础知识文件系统基础知识嵌入式嵌入式LinuxLinux文件系统简介文件系统简介 Linu
18、xLinux文件系统框架和特性文件系统框架和特性嵌入式文件系统相关实验嵌入式文件系统相关实验39TM39文件系统实验文件系统实验n一一 建立建立JFFS2根文件系统根文件系统n二二 基于基于BusyBox构建根文件系统构建根文件系统n三三 建立建立ramfs文件系统文件系统n四四NFS文件系统实验文件系统实验n五五samba介绍与应用介绍与应用40TM40JFFS2在在Linux中的两种使用方式中的两种使用方式n根文件系统n普通文件系统n在系统启动后被挂载41TM41建立建立JFFS2根根文件系统文件系统n内核配置内核配置n映像生成映像生成42TM42建立建立JFFS2文件系统文件系统-内核配
19、置内核配置nGeneralSetup项项n“root=1f03rwconsole=ttyS0,115200init=/linuxrc”nMTD驱动驱动n在menuconfig中调用flashmemory设备驱动n选择选择CFIFlashdevicemappedontheXSBASE255PXA255board43TM4344TM44JFFS2文件系统文件系统支持项支持项n还需要在还需要在FileSystem选项中选择选项中选择n*JournallingFlashFileSystemv2(JFFS2)support45TM45JFFS2映像生成映像生成nmkfs.jffs2工具创建成imagen
20、mkfs.jffs2用法n-e选项确定闪存的擦除扇区大小(通常是64K)n-p选项用来在映像的剩余空间用零填充n-o选项用于输出文件,这里是rootfs.imgn利用bootloader将生成的rootfs.img下载后写入flashn再次重起开发板,内核就能加载JFFS2作为根文件系统./mkfs.jffs2orootfs.imge0 x40000rroot_XSBASEp-l46TM46二:基于二:基于BusyBox构建根文件系统构建根文件系统nBusyboxn配置配置Busyboxn利用利用BusyBox制作制作JFFS2的根文件系统的根文件系统47TM47Busyboxn工具集工具集n
21、vi编辑器,系统不可或缺的/sbin/init程序n其他诸如sed,ifconfig,halt,reboot,mkdir,mount,ln,ls,echo,cat.等等n大小也不过100K左右n用户可以根据自己的需要进行定制nBusyBox支持多种体系结构支持多种体系结构n可以静态或动态链接glic或者uclibc库,以满足不同的需要48TM48配置和编译过程配置和编译过程n#cd/home/Liod270/FileSystemn#tarzxvfbusybox-1.00-pre05.tar.gzn#cdbusybox-1.00-pre05n#makemenuconfig49TM4950TM50
22、n在在BuildOption菜单中菜单中n选择静态库编译方式n*BuildBusyBoxasastaticbinary(nosharedlibs)n选择交叉编译器arm-linux-gccn*DoyouwanttobuildBusyBoxwithaCrossCompiler?(/opt/xscalev1/bin/arm-linux-)51TM51n在在InstallationOptions中默认中默认_install是编译后的是编译后的文件系统路径文件系统路径n其他诸多选项的主要目的是使得用户仅仅选择部分其他诸多选项的主要目的是使得用户仅仅选择部分工具工具n保存选项设置保存选项设置52TM52
23、n#makedepn#maken#makeinstalln结果结果n在_install目录下生成3个子目录:bin,sbin,usr。53TM53配置文件系统配置文件系统-建立建立rc文件文件n#cd_installn#mkdiretcn在在etc目录下建立目录下建立rc文件,文件,这一文件在操作系统启动时会自这一文件在操作系统启动时会自动执行,它含有要运行的指令(命令或其它脚本)列表动执行,它含有要运行的指令(命令或其它脚本)列表#!/bin/shhostnameFIGOmounttprocproc/proccat/etc/motdn改变其文件属性改变其文件属性n#chmod777rc54T
24、M54配置文件系统配置文件系统-建立建立inittab文件文件ninit进程是系统中所有进程的父进程,主要任务是按照进程是系统中所有进程的父进程,主要任务是按照inittab文件所提供的信息创建进程文件所提供的信息创建进程:sysinit:/etc/init.d/rcS#startan“askfirst”shellontheconsole(whateverthatmaydo):askfirst:-/bin/sh#stufftodowhenrestartingtheinitprocess:restart:/sbin/init#stufftodobeforerebooting:ctrlaltdel
25、:/sbin/reboot:shutdown:/bin/umount-ar:shutdown:/sbin/swapoff-a55TM55配置文件系统配置文件系统-在在etc下建立下建立motd文件文件nmessageoftoday(布告栏信息)(布告栏信息)n其内容用户随意其内容用户随意n每次用户登录时,/etc/motd的内容会显示在用户的终端WelcometoARM-LINUXWORLD!56TM56配置文件系统配置文件系统-建立建立rc文件的符号连接文件文件的符号连接文件rcSn在在etc下建立下建立init.d目录,而后在目录,而后在init.d目录下建立目录下建立rc文件的符号连接文
26、件文件的符号连接文件rcSn#cdinit.dn#lns./rcrcS57TM57创建设备文件创建设备文件n在在_install下建立下建立dev目录,创建设备文件目录,创建设备文件n系统控制台consolenMTD块设备mdblock3等n使用使用mknod命令来创建命令来创建n#mknodconsolec51n#mknodmdblock3b313名字b:块设备c:字符设备主设备号次设备号58TM58复制设备文件复制设备文件n复制主机平台复制主机平台/dev目录下一些必要的设备文件到目录下一些必要的设备文件到_install/dev目录下目录下n#cpdpR/dev/*/home/Liod2
27、70/Filesystem/busybox-1.00-pre5/_install/devn-dp参数表示复制过程中保证链接文件保持不变,但不会复制链接所指的原文件,而且属性不变n删除不必要的设备文件59TM59制作制作JFFS2文件映像文件映像n返回到返回到busybox根目录,运行根目录,运行mkfs.jffs2n#./mkfs.jffs2orootfs.imge0 x40000r_installpln生成映像文件rootfs.imgn复制到/tftpboot中,烧写到闪存中60TM60三:构建三:构建ramfsnRamDisk:内存当分区使用:内存当分区使用n格式化、加载n通过Ramfs或
28、tmpfs来实现nRamfs:内存文件系统:内存文件系统n处于虚拟文件系统(VFS)层n无需格式化n可以创建多个,只要内存足够,在创建时可以指定其最大能使用的内存大小61TM61Ramfs使用使用n前提:将前提:将ramfs编译进内核编译进内核n创建一个目录,加载创建一个目录,加载Ramfs到该目录即可:到该目录即可:#mkdir/testRam#mount-tramfsnone/testRAMn缺省情况下,缺省情况下,ramfs被限制最多可使用内存大小的一半被限制最多可使用内存大小的一半n可以通过maxsize(以kbyte为单位)选项来改变#mount-tramfsnone/testRAM
29、-omaxsize=2000(创建了一个限定最大使用内存为创建了一个限定最大使用内存为2M的的ramdisk)62TM62使用主机的使用主机的loopback设备建立设备建立ramfsn创建一个连续的创建一个连续的8M大小的空间大小的空间nddif=/dev/zeroof=ramdisk_imgbs=1kcount=8192n用用mke2fs格式化格式化n在该空间复制或创建相关文件在该空间复制或创建相关文件n将格式化的空间mount到目录/tmpn在tmp目录里复制或创建设置文件,util,library等numount,再用gzip压缩,生成ramdisk_img.gz文件63TM63建立建
30、立ramfs根文件系统根文件系统n修改一些内核配置修改一些内核配置nXSBase255中setup_initrd()的0 xA1000000成为SDRAM的ramdisk地址,ramdisk要下载到Bootloader中的这个地址nCONFIG_BLK_DEV_RAM_SIZE是menuconfig中设定的“DefaultRAMdisksize”大小n修改DefaultKernelcommandstring为:“root=/dev/ramrwconsole=ttyS0,115200init=/linuxrc”。用于重新引导系统。64TM64NFS:网络文件系统:网络文件系统nnfs可以将可以将
31、pc机上的一部分文件系统作为目标机的资源机上的一部分文件系统作为目标机的资源n本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。n用户不必在每个网络上机器里头都有一个home目录。home目录可以被放在NFS服务器上并且在网络上处处可用。n诸如软驱,CDROM,和Zip之类的存储设备可以在网络上面被别的机器使用。这可以减少整个网络上的可移动介质设备的数量。65TM65NFS如何工作的?如何工作的?nNFS至少包括两个主要的部分:至少包括两个主要的部分:一台服务器,以及,以及至少一台客户机,客户机远程地访问保存在服务器上的数据客户机远程地访问保存在服务器上的
32、数据n服务器配置服务器配置nnfsd:NFS,为来自NFS客户端的请求服务。nmountd:NFS挂载服务,处理nfsd递交过来的请求。nrpcbind:允许NFS客户程序查询正在被NFS服务使用的端口。n客户端运行的进程客户端运行的进程nnfsiod:处理来自NFS的请求。这是可选的,而且可以提高性能,对于普通和正确的操作来说并不是必须的。66TM66四四NFS文件系统实验文件系统实验(1)nNFS是用于在不同机器,不同操作系统之间通过网络互相分是用于在不同机器,不同操作系统之间通过网络互相分享文件享文件的的n建立建立NFS开发环境的工作分为两个方面:开发环境的工作分为两个方面:配置配置NF
33、S服务器服务器和配置客户端和配置客户端n基本的命令格式基本的命令格式nMount的基本命令格式如下:nUmount的基本命令格式:mount-ttype-rv-ooptionserver:pathname/mount_pointumount-dflnrvdir|device.67TM67四四NFS文件系统实验文件系统实验(2)n配置配置NFS服务端服务端n在HostPC上打开/etc/exports文件,并进行如下设置:n把/mnt/nfs设置完成后重新开始NFSdeamonrootXSBasehome#vi/etc/exports/mnt/nfs(rw,no_root_squash)root
34、XSBase home#/etc/rc.d/init.d/nfs stoprootXSBase home#/etc/rc.d/init.d/nfs start68TM68四四NFS文件系统实验(文件系统实验(3)n配置配置NFS客户端客户端nNFS客户端是开发板,所以要让开发板上的内核支持NFS,必须重新配置内核生成zImage镜像文件,并下载到板子上。n通过makemenuconfig指令在kernel设置窗进行NFS设置nmenuconfig窗口打开后,确认NFS设置是否被选上n重新编译内核,新的内核下就可以使用nfs命令了File systems -Network File System
35、s -NFS file system support*Provide NFSv3 client support Root file system on NFS 69TM69四四NFS文件系统实验(文件系统实验(4)n挂载挂载NFS文件系统文件系统n开发板上进行mount操作,把PC上的某个目录挂载上来:把HostPC的/mnt/nfs目录mount到开发板的/mnt目录下使用。192.168.1.1是PC的ip。n接下来就可以在新mount上来的目录下做各种操作,挂载工作完成rootxsbase255#mount t nfs 192.168.1.1:/mnt/nfs /mntrootxsbas
36、e255#cd/mnt70TM70四四NFS文件系统实验(文件系统实验(5)n如果出现没法如果出现没法mount上去的情况,可以按照以下步上去的情况,可以按照以下步骤进行检查:骤进行检查:n用rpcinfo-pserver_name去查看此server是否存在n用rpcinfo-userver_namemount查看mountddaemon是否有在server上执行n假如server都没问题,检查server和client之间的网线连接n在client上用psax查看portmap和对应的NFSdaemons是否运行n打开服务端PC上的/var/lib/nfs/rmtab文件,清空内容n重起N
37、FS服务71TM71四四NFS文件系统实验(文件系统实验(6)n加载加载NFS为根文件系统为根文件系统n1)重新配置内核)重新配置内核n在Generalsetup里面重新设置Defaultkernelcommandstring的值(P163)n在NetworkFileSystems选项中需要选中“RootfilesystemonNFS”n在Blockdevices选项中把“RAMdisksupport”选项去除,选中“Networkblockdevicesupport”n配置完内核,重新makezImage,生成新的镜像72TM7273TM7374TM7475TM75n2)配置服务端)配置服务
38、端PCn/tftpboot目录下新增子目录pxa255,用作新的根文件系统n把原文件系统下的文件拷贝到/tftpboot/pxa255中n重新编辑/etc/exports文件如下:n重新启动NFS服务$vi/etc/exports/tftpboot/pxa255(rw,no_root_squash)76TM76n3)重起开发板,使用)重起开发板,使用tftp协议加载新的内核镜像,协议加载新的内核镜像,系统启系统启动后,使用动后,使用boot命令直接引导命令直接引导n4)确认新的根目录是否是)确认新的根目录是否是PC端的端的/tftpboot/pxa255目录目录77TM77实验五实验五samb
39、a介绍与应用介绍与应用nsamba介绍介绍nsamba是一组软件包,使Linux支持SMB(服务消息块)协议,该协议由TCP/IP实现,它是windows网络文件和打印共享基础n在网络上共享目录,就好像一台文件服务器一樣。n在网络上共享打印机。n決定每一個目录由谁來使用,可以让一個人、某些人、組和所有人訪問。n決定打印机由谁來使用,可以让一個人、某些人、組和所有人使用。78TM78实验五实验五samba介绍与应用介绍与应用nsamba组成组成nsamba的核心是两个守护进程smbd和nmbd程序,在服务器启动到停止期间持续运行。smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与
40、Linux进行协商,nmbd进程使其它主机(或工作站)能浏览Linux服务器。n一个完整的smb.conf一般由Globalsettings和shareDefinitions两部分组成79TM79nsamba的启动与停止的启动与停止n在缺省情况下,RedHatLinux的samba在启动时就已投入运行n也可利用系统脚本来手工启动和停止samban#/etc/rc.d/init.d/smbstart(启动samba)n#/etc/rc.d/init.d/smbstop(停止samba)80TM80定制定制samba(1)n定制定制samban用户通过对smb.conf文件进行vi编辑,可以添加、
41、删除及修改smba提供的多种服务。n向用户开放Linux文件资源,只有读权限。npublicncomment=publicstuffnpath=/npublic=yesnwritable=nonprintale=nonwritelist=staff81TM81定制定制samba(2)n共享CD-ROMn修改smb.conf之前,先安装光驱,可执行下列命令:n#mount-tiso9660/dev/cdrom/mnt/cdromn然后定制samba,内容如下:ncdromnpath=/mnt/cdromnreadyonly=yesnpublic=yes82TM82定制定制samba(3)n为多个
42、用户提供服务ncomment=userlsstuff,user2sstuff,user3sstuffnpath=/home/user1(用户userl的主目录)nvalidusers=user1user2user3npublic=no(除了user1,user2,user3外不向用户开放)nwritable=yes(三用户对/home/user1中的文件有写权限)nprintable=yes(允许打印)83TM83定制定制samba(4)n向用户开放/dev目录,浏览设备类型。ndevncomment=openandbrowsethe/devdirectorynpath=/dev(路径为/de
43、v)nreadyonly=yes(只读)npublic=yes(共享)84TM84Samba实验(实验(1)n编译编译samban解压samba-3.0.0.tar.gz压缩包n设置环境变量:$export LD_LIBARY_PATH=/usr/local/hybus-arm-linux-R1.1/lib/$export CPPFLAGS=-I/usr/local/hybus-arm-linux-R1.1/include$export LDFLAGS=-L/usr/local hybus-arm-linux-R1.1/lib/$export CC=/usr/local/hybus-arm-l
44、inux-R1.1/arm-linux-gcc$export CFLAGS=-march=armv4-mtune=arm9tdmi-mshort-load-bytes85TM85Samba实验(实验(2)n运行configuren修改include/config.h文件,添加n#defineHAVE_GETTIMEOFDAY_TZ1n运行make生成可执行文件$./configure-host=i686-target=arm-linux enable-cups=no86TM86Samba实验(实验(3)n将将samba应用到开发板应用到开发板n在将要烧到flash的文件系统下创建以下目录:n/usr/local/samban/usr/local/samba/binn/usr/local/samba/varn/usr/local/samba/privaten/usr/local/samba/lib87TM87Samba实验(实验(4)n将编译后的samba源码目录下的bin/子目录里的内容拷贝到/usr/local/samba/binn配置smb.conf,添加、删除及修改smba提供的多种服务n用smbpasswd-ausername添加一个samba用户,并生成samba密码文件smbpasswdn运行samba守护进程