ARM开发板如何挂载NFS开发环境的方法步骤(mini2440无盘启动).doc_第1页
ARM开发板如何挂载NFS开发环境的方法步骤(mini2440无盘启动).doc_第2页
ARM开发板如何挂载NFS开发环境的方法步骤(mini2440无盘启动).doc_第3页
ARM开发板如何挂载NFS开发环境的方法步骤(mini2440无盘启动).doc_第4页
ARM开发板如何挂载NFS开发环境的方法步骤(mini2440无盘启动).doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

ARM开发板如何挂载NFS开发环境的方法步骤(mini2440无盘启动)这个部分还是比较不好弄的。想象要是不能通过nfs挂载网盘的话,他提出这个方法也就没什么用了。这样看的话,是比较完美了。在你实验之前你可以现挂载一下(用busybox生成文件系统后不用编译就可以了)确认没问题在编译下载镜像文件。还有在作qt文件应用程序的时候很大用这种方法,相信不用考虑编译和裁减的情况下就可以直接运行了。首先介绍一下我的开发环境:PC环境是ubuntu9。04,开发板为友善之臂的MINI2440主机IP:2 网关: 子网掩码:开发板IP:68  网关: 子网掩码:为了能和主机建立起连接我必须得把开发板IP改成和主机一个网段的 .这里首先要说明的是ubuntu的静态IP设置问题:默认安装完成后,右上角的网络配置上 wired .和eth0为灰色。不能点选 。然后禁用networdmanager启动network以太网设置静态IP的时候,不管怎么设置, 子网掩码都和网关一样,比如说:地址:2子网掩码: /不管怎么输入 ,都不行!网关: /这里改了的话,上面就也成了。(auto ethernet是可以联上网的)。所以就上GG找答案,找解决方法。进入FC10,执行终端命令(也可以用VI修改)$ su -c gedit /etc/sysconfig/networking/devices/ifcfg-eth0直接修改文件中的子网掩码信息就可以代码为:# Broadcom Corporation NetXtreme BCM5752 Gigabit Ethernet PCI ExpressDEVICE=eth0HWADDR=00:16:e6:db:c2:96ONBOOT=yesBOOTPROTO=static /这个应该是”static”,而不是“dhcp”或“none”;USERCTL=yesPEERDNS=yesIPV6INIT=noNM_CONTROLLED=yes/这个应该是“yes”,如不修改,链接仍是disconnected;TYPE=EthernetNETMASK=IPADDR=2GATEWAY=然后重新激活下网卡就可以了.#service network restart设置完成后,右上角的网络配置上System eth0与auto ethernet就可以点选了.需要说明的是因为我之前没有设置静态IP之前通过 NFS 启动系统启动不了.连接主机和开发板我选择了串口线和网线连接起了主机和开发板连接好电源,串口线,网线,打开串口终端配置minicom(在FC10终端输入命令minicom -s)进入到minicom配置界面后选择 :Serial port setup然后按照下面的设置下就OK了A Serial Device : :/dev/ttyS0B Lockfile Location : /var/lockC Callin Program :D Callout Program :E Bps/Par/Bits : 115200 8N1F Hardware Flow Control : NoG Software Flow Control : No建立和配置 NFS 服务 (1)设置共享目录运行命令#gedit /etc/exports编辑 nfs 服务的配置文件(注意:第一次打开时该文件是空的),添加以下内容:/opt/FriendlyARM/mini2440/root_qtopia *(rw,sync,no_root_squash)其中:/opt/FriendlyARM/mini2440/root_qtopia 表示 nfs 共享目录,它可以作为开发板的根文件系统通过 nfs 挂接;* 表示所有的客户机都可以挂接此目录 rw 表示挂接此目录的客户机对该目录有读写的权力no_root_squash 表示允许挂接此目录的客户机享有该主机的 root 身份(2)通过命令启动和停止 nfs 服务在命令行下运行:#/etc/init.d/nfs  restart这将启动 nfs 服务,可以输入以下命令检验 nfs 该服务是否启动。# mount -t nfs 2: /opt/FriendlyARM/mini2440/root_qtopia  /mnt/如 果 没 有 出 现 错 误 信 息 , 您 将 可 以 浏 览 到 /mnt 目 录 中 的 内 容 和/opt/FriendlyARM/mini2440/root_qtopia 是一致的。使用这个命令可以停止 nfs 服务:#/etc/init.d/nfs stop检查nfs服务器是否开启:  #service nfs status重启对应的2个服务:      #service portmap restart #service nfs restart检查防火墙看是否屏蔽了nfs端口 #service iptables stop #service iptables status通过 NFS 启动系统当 NFS 服务设置好并启动后,我们就可以把 NFS 作为根文件系统来启动开发板了。通过使用 NFS 作为根文件系统,开发板的“硬盘”就可以变得很大,因为您使用的是主机的硬盘,这是使用 linux 作为开发经常使用的方法,设置目标板启动模式为 Nand Flash 启动,连接好电源,串口线,网线;打开串口终端,在开机或者复位的时候迅速按下 PC 机的空格键,这样我们就进入了 vivi 模式,输入以下命令:Supervivi> param set linux_cmd_line “console=ttySAC0 root=/dev/nfsnfsroot=2:/opt/FriendlyARM/mini2440/root_qtopiaip=68:2:::mini2440:eth0:off”(1,如果通过minicom监控串口,如出现乱码,可将波特率调高点,我调的是115200                                            2,输入命令过长的话,发现minicom没法换行,其实也可以设置一下:同时按下CTRL+A  松开后按  W换行开关)注意:要是你用的是usb转串口consolettyUSB0。还有就是你要把你想挂载的文件系统放在共享的文件里面(root_qtopia)其中 ,param set linux_cmd_line 是设置启动 linux 时的命令参数。其各参数的含义如下:nfsroot 后面是自己开发主机的 IP 地址。“ip=”后面:第一项(68)是目标板的临时 IP(注意不要和局域网内其他 IP 冲突);第二项(2)是开发主机的 IP;第三项()是目标板上网关(GW)的设置;第四项()是子网掩码;第五项是开发主机的名字(一般无关紧要,可随便填写)eth0 是网卡设备的名称然后输入 boot,按回车就可以通过 nfs 启动系统了。在开发板上挂载NFS网络文件系统(Linux 中最常用的方法就是采用 NFS 来执行各种程序,这样可以不必花费很多时间下载程序,虽然在此下载 hello 程序用不了多久,一旦您的应用程序变得越来越大,您就会发现使用 NFS 运行的方便所在。)通过NFS启动系统后,在开发板终端输入rootFriendlyARM /# mount -t nfs -o nolock 2:/opt/FriendlyARM/mini2440/root_qtopia               /mnt/这里我刚开始遇到了一个问题,以为为什么开发板不能mount,因为提示如下错误信息:                                    mount: mounting2:/opt/FriendlyARM/mini2440/root_qtopia on /mnt/ failed: Nosuch file or directory于是我就ls看了一下,发现没有mnt文件夹,所以就自己创建了一个.再次mount就没有问题了.rootFriendlyARM /# lsbin      etc      home     linuxrc  proc     sbin     tmp      vardev      hello    lib      opt      root     sys      usr      wwwrootFriendlyARM /# mkdir mntrootFriendlyARM /# lsbin      hello    linuxrc  proc     sys      vardev      home     mnt      root     tmp      wwwetc      lib      opt      sbin     usrrootFriendlyARM /# mount -t nfs -o nolock 2:/opt/FriendlyARM/mini2440/root_qtopia  /mnt/rootFriendlyARM /# cd /mnt/rootFriendlyARM /mnt# lsbin      hello    linuxrc  proc     sys      vardev      home     mnt      root     tmp      wwwetc      lib      opt      sbin     usrmount成功后你进入到/mnt目录下就可以看到你主机root_nfs目录下的内容了.至此我成功在ARM开发板上挂载NFS网络文件系统.from:/bbsxp/ShowPost.asp?ThreadID=6579下边是我转载的完美的实现ubuntu的nfs方法步骤:网络文件系统(NFS)一、NFS简介1、NFS就是Network FileSystem的缩写,它的最大功能就是可以通过网络让不同的机器,不同的操作系统彼此共享文件(sharefiles)可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看作一个文件服务器(FileServer)。注意:一般而言,使用NFS服务能够方便地使各unix-like系统之间实现共享,但如果需要在unix-like和windows系统之间共享,那就得使用samba了。2、NFS是通过网络进行数据传输,那么NFS使用哪些端口呢,答案是不知道,因为NFS传输数据时使用的端口是随机的,唯一的限制就是小于1024,客户端怎么知道服务器使用的是哪个端口,此时就要用到远程过程调用RPC。其实,NFS运行在SUN的RPC(Remote ProcedureCall,远程过程调用)基础上,RPC定义了一种与系统无关的方法来实现进程间通信,由此,NFS Server也可以看作是RPCServer。正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口通过portmap设定。比如:某个NFSClient发起NFS服务请求时,它需要先得到一个端口(port),所以它先通过portmap得到portnumber(不仅是NFS,所有的RPC服务程序启动之前,都需要先设定好portmap)。注意:在启动RPC服务(比如NFS)之前,需要先启动portmap服务。3、NFS允许系统将其目录和文件共享给网络上的其他系统。通过NFS,用户和应用程序可以访问远程系统上的文件,就像它们是本地文件一样。那么NFS最值得注意的优点有:(1)本地工作站可以使用更少的磁盘空间,因为常用数据可以被保存在一台机器上,并让网络上的其他机器可以访问它。(2)不需要为用户在每台网络机器上放一个用户目录,因为用户目录可以在NFS服务器上设置并使其在整个网络上可用。(3)存储设备如软盘、光驱及USB设备可以被网络上其它机器使用,这可能可以减少网络上移动设备的数量。二、与NFS相关的几个文件和命令1、/etc/exports对NFS服务的访问是由exports来批准,它枚举了若干有权访问NFS服务器上文件系统的主机名。2、/sbin/exportfs维护NFS的资源共享,可以通过它重新设定/etc/exports的共享目录,卸载NFSServer共享的目录或者重新共享等。3、/usr/sbin/showmount上面的文件主要用在NFSServer端,而showmount则主要用在Client端,showmount可以用來查看NFS共享的目录资源。4、/var/lib/nfs/xtabNFS的记录文档:通过它可以查看有哪些Client连接到NFS主机的记录。下面这几个并不直接负责NFS,实际上它们是负责所有的RPC。5、/etc/default/portmap实际上,portmap负责映射所有的RPC服务端口,它的内容非常非常之简单。6、/etc/hosts.deny设定拒绝portmap服务的主机,即禁止访问的客户端IP列表。7、/etc/hosts.allow设定允许portmap服务的主机,即允许访问的客户端IP列表。三、NFS安装在主机上安装NFS服务软件,因为Debian/Ubuntu上默认是没有安装的。1、安装端口映射器portmap(可选)$sudo apt-get install portmap2、在终端提示符后键入以下命令安装NFS服务器$ sudo apt-get install nfs-kernel-server3、安装NFS客户端(可选)$ sudo apt-get install nfs-common注意:nfs-kernel-server和nfs-common都依赖于portmap。另外,在一些文档中提出还需要使用apt-get来手动安装NFS的客户端nfs-common,以及端口映射器portmap,但其实这是没有必要的,因为在安装nfs-kernel-server时,apt会自动把它们安装好。这样,宿主机就相当于NFSServer。同样地,目标系统作为NFS的客户端,需要安装NFS客户端程序。如果是Debian/Ubuntu系统,则需要安装nfs-common(第3步)。四、NFS配置1、配置portmap方法1:编辑/etc/default/portmap,将"-i "去掉;方法2:$ sudo dpkg-reconfigure portmap,出现“正在设定portmap”软件包设置界面,对Shouldportmap be bound to the loopback address?选择“否(No)”。2、配置/etc/hosts.deny禁止任何host(主机)能和你的NFS服务器进行NFS连接。在该文件中加入:# NFS DAEMONSportmap:ALLlockd:ALLmountd:ALLrquotad:ALLstatd:ALL3、配置/etc/hosts.allow允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP地址以192.168.1开头的主机连接到NFS服务器上,具体要看你目标板的端口地址,也可以指定特定的IP地址。在该文件中加入:# NFS DAEMONSportmap: 192.168.1.lockd:192.168.1.rquotad:192.168.1.mountd:192.168.1.statd: 192.168.1.通过/etc/hosts.deny和/etc/hosts.allow设置对portmap的访问,采用这两个配置文件有点类似"mask"的意思。先在/etc/hosts.deny中禁止所有用户对portmap的访问,再在/etc/hosts.allow中允许某些用户对portmap的访问。然后重启portmap daemon:$sudo /etc/init.d/portmap restart4、配置/etc/exports(1)共享的NFS目录在/etc/exports中列出,这个文件控制对目录的共享(NFS挂载目录及权限由该文件定义),书写规则是每个共享为一行)。格式:共享目录 主机名或IP(参数,参数.)第一个参数是要让客户机访问的目录,第二个是你允许的主机IP,最后的()内是访问控制方式。注意:客户端可以使用主机名或者IP地址指定,在主机名中可以使用通配符(*),IP地址后也可以跟掩码段(/24),但出于安全原因这种情况应该尽量避免。客户端的说明后可在圆括号中加入一系列参数。很重要的一点,不要在最后一个客户端声明的后面留下任何空白或者没关闭括号,因为空白都被解释成客户端的分隔符。例如我要将/opt/FriendlyARM/mini2440/root_nfs目录让用户的IP共享,则在该文件末尾添加下列语句:/opt/FriendlyARM/mini2440/root_nfs*(rw,sync,no_root_squash)其中:/opt/FriendlyARM/mini2440/root_nfs表示NFS共享目录,它可以作为开发板的根文件系统通过NFS挂接;* 表示所有的客户机都可以挂接此目录;rw 表示挂接此目录的客户机对该目录有读写的权力;sync 表示所有数据在请求时写入共享,即数据同步写入内存和硬盘;no_root_squash 表示允许挂接此目录的客户机享有该主机的root身份。注意:可以用主机名来代替*,尽量指定主机名以便使那些不想其访问的系统不能访问NFS挂载的资源。另外,最好加上sync,否则$ sudo exportfs -r时会给出警告,sync是NFS的默认选项。(2)下面是一些NFS共享的常用参数:ro只读访问rw 读写访问sync 所有数据在请求时写入共享async NFS在写入数据前可以相应请求secure NFS通过1024以下的安全TCP/IP端口发送insecure NFS通过1024以上的端口发送wdelay 如果多个用户要写入NFS目录,则归组写入(默认)no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置hide 在NFS共享目录中不共享其子目录no_hide 共享NFS目录的子目录subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)no_subtree_check 和上面相对,不检查父目录权限all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录no_all_squash 保留共享文件的UID和GID(默认)root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)no_root_squash root用户具有根目录的完全管理访问权限anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UIDanongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID(3)查看NFS Server的exportlist:$ sudo showmount -e若更改了/etc/exports,运行以下命令进行更新:$ sudo exportfs -r然后重启NFS服务:$ sudo /etc/init.d/nfs-kernel-server restart五、启动和停止NFS服务1、启动NFS的方法和启动其他服务器的方法类似,首先需要启动portmap和NFS这两个服务,并且portmap服务一定要先于NFS服务启动。$ sudo /etc/init.d/portmap start$ sudo/etc/init.d/nfs-kernel-server start2、停止NFS服务在停止NFS服务的时候,需要先停止NFS服务再停止portmap服务,如果系统中还有其他服务需要使用portmap服务,则可以不停止portmap服务。$ sudo /etc/init.d/nfs-kernel-server stop$ sudo /etc/init.d/portmap stop3、重新启动portmap和NFS服务$ sudo /etc/init.d/portmap restart$sudo /etc/init.d/nfs-kernel-server restart4、检查portmap和NFS服务状态$ sudo /etc/init.d/portmap status$ sudo /etc/init.d/nfs-kernel-server status5、设置自动启动NFS服务(1)检查NFS的运行级别:$ sudo chkconfig -list portmap$ sudo chkconfig -list nfs-kernel-server(2)在实际使用中,如果每次开启计算机之后都手工启动NFS服务是非常麻烦的,此时可以设置系统在指定的运行级别自动启动portmap和NFS服务。$ sudo chkconfig -level 235 portmap on$ sudo chkconfig -level 235 nfs-kernel-server on六、NFS客户端配置(NFS测试)1、在NFS服务器启动后,还需要检查Linux服务器的防火墙设置(一般需要关闭防火墙服务),确保没有屏蔽NFS使用的端口和允许通信的主机,主要是检查Linux服务器iptables、ipchains等选项的设置,以及/etc/hosts.deny,/etc/hosts.allow文件。通常都是在内部局域网中进行开发,再安装系统时最好不要安装防火墙等网络安全软件,以方便使用时的配置。如果你有防火墙,请确保32771、111和2049端口保持开放。2、手动挂载使用mount命令来挂载其他机器共享的NFS目录。格式:$ sudo mount Server IP:/share dir localmount point例如:$ sudo mount -t nfs -o nolocklocalhost:/opt/FriendlyARM/mini2440/root_nfs /mnt/root_nfs 或$ sudo mount -t nfs -o nolock01:/opt/FriendlyARM/mini2440/root_nfs/mnt/root_nfs其中,localhost可以是具体的IP地址,同时挂载点/mnt/root_nfs目录必须已经存在,而且在/mnt/root_nfs目录中没有文件或子目录。3、自动挂载(1)另一个挂载其他机器的NFS共享的方式就是在/etc/fstab文件中添加一行,该行必须指明NFS服务器的主机名、服务器输出的目录名以及挂载NFS共享的本机目录,同时必须是根用户才能修改/etc/fstab文件。格式::/usr/local/pub /pub nfsrsize=8192,wsize=8192,timeo=14,intr注意:可以根据实际情况修改NFS服务器共享文件夹":/usr/local/pub"和在本机的挂载点"/pub",同时挂载点/pub在客户端机器上必须存在。(2)NFS常见挂载参数:timeo 如果超时,客户端等待的时间,以十分之一秒计算retrans 超时尝试的次数bg 后台挂载(很有用)hard 如果server端没有响应,那么客户端一直尝试挂载rsize 读块大小wsize 写块大小4、使用autofs来挂载NFS(1)挂载NFS共享的第三种方法是使用autofs,它使用automount守护进程来管理挂载点,只在文件系统被访问时才动态地挂载。autofs访问主映射配置文件/etc/auto.master来决定要定义哪些挂载点,然后使用适用于各个挂载点的参数来启动automount守护进程。主映射配置中的每一行都定义一个挂载点,一个分开的映射文件定义在该挂载点下要挂载的文件系统。如/etc/auto.misc文件可能会定义/misc目录中的挂载点,这种关系在/etc/auto.master文件中会被定义。(2)/etc/auto.master文件中的每个项目都有3个字段,第1个字段是挂载点;第2个字段是映射文件的位置;第3个字段可选,可以包括超时数值之类的信息。例如:要在机器上的/misc/myproject挂载点上挂载远程机中的/project52目录。在/etc/auto.master文件中添加以下行:/misc /etc/auto.misc -timeout 60在/etc/auto.misc文件中添加以下行:myproject -rw,soft,intr,rsize=8192,wsize=8192:/proj52/etc/auto.misc中的第1个字段是/misc子目录的名称,该目录被automount动态地创建,它不应该在客户端机器上实际存在;第2个字段包括挂载选项,如rw代表读写访问权,第3个字段是要导出的NFS的位置,包括主机名和目录。(3)autofs是一种服务,要启动这项服务,在shell提示下键入以下命令:$ sudo /sbin/service autofs restart要查看活跃的挂载点,在shell提示下键入以下命令:$ sudo /sbin/service autofs status如果在autofs运行时修改了/etc/auto.master配置文件,则必须在shell提示下键入以下命令来通知automount守护进程重新载入配置文件:$ sudo /sbin/service autofs reload5、可以运行df命

温馨提示

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

评论

0/150

提交评论