ARM开发板如何挂载NFS开发环境的方法步骤.docx

上传人:b****5 文档编号:8230186 上传时间:2023-01-30 格式:DOCX 页数:11 大小:25.83KB
下载 相关 举报
ARM开发板如何挂载NFS开发环境的方法步骤.docx_第1页
第1页 / 共11页
ARM开发板如何挂载NFS开发环境的方法步骤.docx_第2页
第2页 / 共11页
ARM开发板如何挂载NFS开发环境的方法步骤.docx_第3页
第3页 / 共11页
ARM开发板如何挂载NFS开发环境的方法步骤.docx_第4页
第4页 / 共11页
ARM开发板如何挂载NFS开发环境的方法步骤.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

ARM开发板如何挂载NFS开发环境的方法步骤.docx

《ARM开发板如何挂载NFS开发环境的方法步骤.docx》由会员分享,可在线阅读,更多相关《ARM开发板如何挂载NFS开发环境的方法步骤.docx(11页珍藏版)》请在冰豆网上搜索。

ARM开发板如何挂载NFS开发环境的方法步骤.docx

ARM开发板如何挂载NFS开发环境的方法步骤

ARM开发板如何挂载NFS开发环境的方法步骤(mini2440无盘启动)

来源:

ChinaUnix博客 日期:

2010.01.0316:

12 (共有条评论)我要评论

 

这个部分还是比较不好弄的。

想象要是不能通过nfs挂载网盘的话,他提出这个方法也就没什么用了。

这样看的话,是比较完美了。

在你实验之前你可以现挂载一下(用busybox生成文件系统后不用编译就可以了)确认没问题在编译下载镜像文件。

还有在作qt文件应用程序的时候很大用这种方法,相信不用考虑编译和裁减的情况下就可以直接运行了。

首先介绍一下我的开发环境:

PC环境是ubuntu9。

04,开发板为友善之臂的MINI2440

主机IP:

192.168.50.72网关:

192.168.50.1子网掩码:

255.255.255.0

开发板IP:

192.168.50.168  网关:

192.168.50.1子网掩码:

255.255.255.0

为了能和主机建立起连接我必须得把开发板IP改成和主机一个网段的.

这里首先要说明的是ubuntu的静态IP设置问题:

默认安装完成后,右上角的网络配置上wired..和eth0为灰色。

不能点选。

然后禁用networdmanager启动network以太网设置静态IP的时候,不管怎么设置,子网掩码都和网关一样,

比如说:

地址:

192.168.0.22

子网掩码:

192.168.0.1//不管怎么输入255.255.255.0,都不行!

网关:

192.168.0.1//这里改了255.255.255.0的话,上面就也成255.255.255.0了。

(autoethernet是可以联上网的)。

所以就上GG找答案,找解决方法。

进入FC10,执行终端命令(也可以用VI修改)

$su-c‘gedit/etc/sysconfig/networking/devices/ifcfg-eth0′

直接修改文件中的子网掩码信息就可以

代码为:

#BroadcomCorporationNetXtremeBCM5752GigabitEthernetPCIExpress

DEVICE=eth0

HWADDR=00:

16:

e6:

db:

c2:

96

ONBOOT=yes

BOOTPROTO=static//这个应该是“static”,而不是“dhcp”或“none”;

USERCTL=yes

PEERDNS=yes

IPV6INIT=no

NM_CONTROLLED=yes//这个应该是“yes”,如不修改,链接仍是disconnected;

TYPE=Ethernet

NETMASK=255.255.255.0

IPADDR=192.168.50.72

GATEWAY=192.168.50.1

然后重新激活下网卡就可以了.

#servicenetworkrestart

设置完成后,右上角的网络配置上Systemeth0与autoethernet就可以点选了.

需要说明的是因为我之前没有设置静态IP之前通过NFS启动系统启动不了.

连接主机和开发板

我选择了串口线和网线连接起了主机和开发板

连接好电源,串口线,网线,打开串口终端

配置minicom(在FC10终端输入命令minicom-s)

进入到minicom配置界面后选择:

Serialportsetup

然后按照下面的设置下就OK了

A–SerialDevice:

:

/dev/ttyS0

B–LockfileLocation:

/var/lock

C–CallinProgram:

D–CalloutProgram:

E–Bps/Par/Bits:

1152008N1

F–HardwareFlowControl:

No

G–SoftwareFlowControl:

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-tnfs192.168.50.72:

/opt/FriendlyARM/mini2440/root_qtopia  /mnt/

如果没有出现错误信息,您将可以浏览到/mnt目录中的内容和

/opt/FriendlyARM/mini2440/root_qtopia是一致的。

使用这个命令可以停止nfs服务:

#/etc/init.d/nfsstop

检查nfs服务器是否开启:

  #servicenfsstatus

重启对应的2个服务:

    #serviceportmaprestart

#servicenfsrestart

检查防火墙看是否屏蔽了nfs端口

#serviceiptablesstop

#serviceiptablesstatus

通过NFS启动系统

当NFS服务设置好并启动后,我们就可以把NFS作为根文件系统来启动开发板了。

通过使用NFS作为根文件系统,开发板的“硬盘”就可以变得很大,因为您使用的是主机的硬盘,这是使用linux作为开发经常使用的方法,

设置目标板启动模式为NandFlash启动,连接好电源,串口线,网线;打开串口终端,在开机或者复位的时候迅速按下PC机的空格键,这样我们就进入了vivi模式,输入以下命令:

Supervivi>paramsetlinux_cmd_line“console=ttySAC0root=/dev/nfs

nfsroot=192.168.50.72:

/opt/FriendlyARM/mini2440/root_qtopia

ip=192.168.50.168:

192.168.50.72:

192.168.50.1:

255.255.255.0:

mini2440:

eth0:

off”

(1,如果通过minicom监控串口,如出现乱码,可将波特率调高点,我调的是

115200                              2,输入命令过长的话,发现minicom没法

换行,其实也可以设置一下:

同时按下CTRL+A  松开后按  W换行开关)

注意:

要是你用的是usb转串口console=ttyUSB0。

还有就是你要把你想挂载的文件系统放在共享的文件里面(root_qtopia)

其中,paramsetlinux_cmd_line是设置启动linux时的命令参数。

其各参数的含义如下:

nfsroot后面是自己开发主机的IP地址。

“ip=”后面:

第一项(192.168.50.168)是目标板的临时IP(注意不要和局域网内其他IP冲突);

第二项(192.168.50.72)是开发主机的IP;

第三项(192.168.50.1)是目标板上网关(GW)的设置;

第四项(255.255.255.0)是子网掩码;

第五项是开发主机的名字(一般无关紧要,可随便填写)

eth0是网卡设备的名称

然后输入boot,按回车就可以通过nfs启动系统了。

在开发板上挂载NFS网络文件系统(Linux中最常用的方法就是采用NFS来执行各种程序,这样可以不必花费很多时间下载程序,虽然在此下载hello程序用不了多久,一旦您的应用程序变得越来越大,您就会发现使用NFS运行的方便所在。

通过NFS启动系统后,在开发板终端输入

[root@FriendlyARM/]#mount-tnfs-onolock192.168.50.72:

/opt/FriendlyARM/mini2440/root_qtopia          /mnt/

这里我刚开始遇到了一个问题,以为为什么开发板不能mount,因为提示如下错误信

息:

                        mount:

mounting

192.168.50.72:

/opt/FriendlyARM/mini2440/root_qtopiaon/mnt/failed:

No

suchfileordirectory

于是我就ls看了一下,发现没有mnt文件夹,所以就自己创建了一个.再次mount就没有问题了.

[root@FriendlyARM/]#ls

bin    etc    home    linuxrc  proc    sbin    tmp    var

dev    hello  lib    opt    root    sys    usr    www

[root@FriendlyARM/]#mkdirmnt

[root@FriendlyARM/]#ls

bin    hello  linuxrc  proc    sys    var

dev    home    mnt    root    tmp    www

etc    lib    opt    sbin    usr

[root@FriendlyARM/]#mount-tnfs-onolock192.168.50.72:

/opt/FriendlyARM/mini

2440/root_qtopia  /mnt/

[root@FriendlyARM/]#cd/mnt/

[root@FriendlyARM/mnt]#ls

bin    hello  linuxrc  proc    sys    var

dev    home    mnt    root    tmp    www

etc    lib    opt    sbin    usr

mount成功后你进入到/mnt目录下就可以看到你主机root_nfs目录下的内容了.

至此我成功在ARM开发板上挂载NFS网络文件系统.

from:

下边是我转载的完美的实现ubuntu的nfs方法步骤:

网络文件系统(NFS)

一、NFS简介

1、NFS就是NetworkFile

System的缩写,它的最大功能就是可以通过网络让不同的机器,不同的操作系统彼此共享文件(share

files)——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看作一个文件服务器(File

Server)。

注意:

一般而言,使用NFS服务能够方便地使各unix-like系统之间实现共享,但如果需要在unix-like和windows系统之间共享,那就得使用samba了。

2、NFS是通过网络进行数据传输,那么NFS使用哪些端口呢,答案是……不知道,因为NFS传输数据时使用的端口是随机的,唯一的限制就是小于1024,客户端怎么知道服务器使用的是哪个端口,此时就要用到远程过程调用RPC。

其实,NFS运行在SUN的RPC(RemoteProcedure

Call,远程过程调用)基础上,RPC定义了一种与系统无关的方法来实现进程间通信,由此,NFSServer也可以看作是RPC

Server。

因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap设定。

比如:

某个NFS

Client发起NFS服务请求时,它需要先得到一个端口(port),所以它先通过portmap得到port

number(不仅是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的共享目录,卸载NFS

Server共享的目录或者重新共享等。

3、/usr/sbin/showmount

上面的文件主要用在NFS

Server端,而showmount则主要用在Client端,showmount可以用來查看NFS共享的目录资源。

4、/var/lib/nfs/xtab

NFS的记录文档:

通过它可以查看有哪些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(可选)

$

sudoapt-getinstallportmap

2、在终端提示符后键入以下命令安装NFS服务器

$sudoapt-getinstallnfs-kernel-server

3、安装NFS客户端(可选)

$sudoapt-getinstallnfs-common

注意:

nfs-

kernel-server和nfs-common都依赖于portmap。

另外,在一些文档中提出还需要使用apt-get来手动安装NFS的客户端

nfs-common,以及端口映射器portmap,但其实这是没有必要的,因为在安装nfs-kernel-server时,apt会自动把它们安装

好。

这样,宿主机就相当于NFS

Server。

同样地,目标系统作为NFS的客户端,需要安装NFS客户端程序。

如果是Debian/Ubuntu系统,则需要安装nfs-common(第3步)。

四、NFS配置

1、配置portmap

方法1:

编辑/etc/default/portmap,将"-i127.0.0.1"去掉;

方法2:

$sudodpkg-reconfigureportmap,出现“正在设定portmap”软件包设置界面,对Should

portmapbeboundtotheloopbackaddress?

选择“否(No)”。

2、配置/etc/hosts.deny

禁止任何host(主机)能和你的NFS服务器进行NFS连接。

在该文件中加入:

###NFSDAEMONS

portmap:

ALL

lockd:

ALL

mountd:

ALL

rquotad:

ALL

statd:

ALL

3、配置/etc/hosts.allow

允许那些你想要的主机和你的NFS服务器建立连接。

下列步骤将允许任何IP地址以192.168.1开头的主机连接到NFS服务器上,具体要看你目标板的端口地址,也可以指定特定的IP地址。

在该文件中加入:

###NFSDAEMONS

portmap:

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的访问。

然后重启portmapdaemon:

$

sudo/etc/init.d/portmaprestart

4、配置/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,

否则$sudoexportfs-r时会给出警告,sync是NFS的默认选项。

(2)下面是一些NFS共享的常用参数:

ro

只读访问

rw读写访问

sync所有数据在请求时写入共享

asyncNFS在写入数据前可以相应请求

secureNFS通过1024以下的安全TCP/IP端口发送

insecureNFS通过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_squashroot用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squashroot用户具有根目录的完全管理访问权限

anonuid=xxx指定NFS服务器/etc/passwd文件中匿名用户的UID

anongid=xxx指定NFS服务器/etc/passwd文件中匿名用户的GID

(3)查看NFSServer的export

list:

$sudoshowmount-e

若更改了/etc/exports,运行以下命令进行更新:

$sudoexportfs-r

然后重启NFS服务:

$sudo/etc/init.d/nfs-kernel-serverrestart

五、启动和停止NFS服务

1、启动NFS的方法和启动其他服务器的方法类似,首先需要启动portmap和NFS这两个服务,并且portmap服务一定要先于NFS服务启动。

$sudo/etc/init.d/portmapstart

$sudo

/etc/init.d/nfs-kernel-serverstart

2、停止NFS服务

在停止NFS服务的时候,需要先停止NFS服务再停止portmap服务,如果系统中还有其他服务需要使用portmap服务,则可以不停止portmap服务。

$sudo/etc/init.d/nfs-kernel-serverstop

$sudo/etc/init.d/portmapstop

3、重新启动portmap和NFS服务

$sudo/etc/init.d/portmaprestart

$

sudo/etc/init.d/nfs-kernel-serverrestart

4、检查portmap和NFS服务状态

$sudo/etc/init.d/portmapstatus

$sudo/etc/init.d/nfs-kernel-serverstatus

5、设置自动启动NFS服务

(1)检查NFS的运行级别:

$sudochkconfig--listportmap

$sudochkconfig--listnfs-kernel-server

(2)在实际使用中,如果每次开启计算机之后都手工启动NFS服务是非常麻烦的,此时可以设置系统在指定的运行级别自动启动portmap和NFS服务。

$sudochkconfig--level235portmapon

$sudochkconfig--level235nfs-kernel-serveron

六、NFS客户端配置(NFS测试)

1、在NFS服务器启动后,还需要检查Linux服务器的防火墙设置(一般需要关闭防火墙服务),确保没有屏蔽

NFS使用的端口和允许通信的主机,主要是检查Linux服务器iptables、ipchains等选项的设置,以

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1