一、NFS网络文件系统
1、NFS的安装
网络文件系统(
NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。
在
嵌入式Linux 的开发过程中,开发者需要在
Linux 服务器上进行所有的软件开发,交叉编译后,通用FTP 方式将可执行文件下载到
嵌入式系统运行,但这种方式不但效率低下,且无法实现在线的调试。因此,可以通过建立
NFS,把
Linux 服务器上的特定分区共享到待调试的
嵌入式目标系统上,就可以直接在
嵌入式目标系统上操作
Linux 服务器,同时可以在线对程序进行调试和修改,大大的方便了软件的开发。因此,
NFS 的是
嵌入式Linux 开发的一个重要的组成部分,本部分内容将详细说明如何配置
嵌入式Linux 的
NFS 开发环境。
嵌入式Linux 的
NFS 开发环境的实现包括两个方面:一是
Linux 服务器端的
NFS 服务器支持;二是
嵌入式目标系统的
NFS 客户端的支持。因此,
NFS 开发环境的建立需要配置
Linux 服务器端和
嵌入式目标系统端。
使用rpm -q nfs-utils命令检测NFS是否安装,如果没有安装,从对应linux操作系统版本的安装光盘上找到nfs-utils安装包。
2、NFS的配置
以root 身份登陆
Linux 服务器,编辑/etc 目录下的共享目录配置文件exports,指定共享目录及权限等。
执行如下命令编辑文件/etc/exports:
# vi /etc/exports
在该文件里添加如下内容:
/home/work 192.168.0.*(rw,sync,no_root_squash)
然后保存退出。
添加的内容表示:
允许ip 地址范围在192.168.0.*的计算机以读写的权限来访问/home/work 目录。
/home/work 也称为服务器输出共享目录。
括号内的参数意义描述如下:
rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash:
NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。
重新载入/etc/exports:#exportfs -rv
3、启动NFS
接着执行如下命令,启动端口映射:
#service portmap restart
最后执行如下命令启动
NFS 服务,此时
NFS 会激活守护进程,然后就开始监听
Client 端的请求:
#service nfs restart
用户也可以重新启动
Linux 服务器,自动启动
NFS 服务。
在
NFS 服务器启动后,还需要检查
Linux 服务器的防火墙等设置(一般需要关闭防火墙服务),确保没有屏蔽掉
NFS 使用的端口和允许通信的主机,主要是检查
Linux 服务器
iptables,ipchains 等选项的设置,以及/etc/hosts.deny,/etc/hosts.allow 文件。
etc/init.d/nfs start 启动命令
etc/init.d/nfs restart 重启命令
4、NFS使用
使用mount命令来挂载NFS服务器上的共享目录,在开发板上执行以下命令:
# mount -t nfs -o nolock,rsize=4096,wsize=4096虚拟机的IP:虚拟机上要挂载的目录 下载到开发板中的目录
mount -t nfs -o nolock,wsize=4096,rsize=4096 172.16.27.89:/home /mnt
这样开发板上的/mnt 就与linux虚拟机上的/home实现共享。注意虚拟机每次更新时,开发板需要刷新。mv hello_cn /opt/qt-4.5/bin/
二、Samba服务器的使用
Linux
与Linux之间通过NFS实现共享
Windows
与windows之间通过共享目录实现共享
Linux
与windows之间怎么实现共享?
1、网络的配置
将linux和windows的IP地址设置在同一个网络段上,使他们之间互相连通,并将linux的防火墙关闭。Linux设置IP的命令如下:#ifconfig eth0 172.16.27.89
2、Samba服务器配置
选择,系统——管理——服务器设置——
Samba选项,弹出下面选项。
![](data/attach/1907/m7ffvxtyxgx4m7gguqw1zlvvcteavbme.jpg)
点击《添加共享》,如下填写。
![](data/attach/1907/wgdx62ehh6fjdzu06ix5slcm4pyiopau.jpg)
确定后,点击《首选项》——《
Samba用户》——《添加用户》,如下填写。
![](data/attach/1907/tob1roab2h657juvgcm7kwfgh4nyzup6.jpg)
确定后,将共享的目录权限修改为
777,即chmod 777 /eos
![](data/attach/1907/oxphj1ix3bhidc7e03bfu163f98d3o8k.jpg)
3、windows访问
点击 《开始》——《运行》输入
linux IP地址 即,\172.16.27.88 ,系统会弹出一个窗口,填写用户名和密码即可看到共享目录。
三、Wireshark网络协议分析器
1、Wireshark的定义
Wireshark
(2006年夏天之前叫做Ethereal)是一款非常优秀的,可在Linux和Windows上使用的开源网络协议分析器。它可以实时检测网络通讯数据,也可以抓取网络通讯数据。可以通过图形界面浏览这些数据,可以查看网络通讯数据包中每一层的详细内容。
2、安装
光盘中有四个
rpm安装包分别为:
v Rpm –ivh lm_sensors-2.10.0-3.1.i386.rpm
v Rpm –ivh net-snmp-5.3.1-9.el5.i386.rpm
v Rpm –ivh wireshark-0.99.6-1.el5.i386.rpm
v Rpm –ivh wireshark-gnome-0.99.6-1.el5.i386.rpm
(以上4个RPM包都在RHEL5安装盘的servers目录下)
3、启动
#Wireshark
四、tftp服务器
在嵌入式开发过程中有宿主机和目标机的角 {MOD}之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。
Tftp服务器作为工作于宿主机上的软件,主要提供对目标机的主要映像文件的下载工作。
1、安装
A
、如果利用如下命令能够看到服务已启动, 则不用安装
[arm@localhost]# netstat -a | grep tftp
已安装结果:
udp 0 0 *:tftp *:*
B.
、如果没有安装,执行如下命令安装。
#mount –t iso9660 /dev/hdc /mnt/cdrom //挂载光盘
[root@localhost]# rpm -ivh tftp-server-0.42-3.1.i386.rpm(rhel5
安装光盘Servers目录)
C
、建立tftp的主工作目录
[root@localhost btools]# mkdir /tftpboot
2、服务器配置
不管使用的是哪一种super-server,inetd或者xinetd,默认情况下TFTP服务是禁用的,所以要修改文件来开启服务。即修改文件/etc/xinetd.d/tftp。主要是设置TFTP服务器的根目录,开启服务。
修改后的文件如下:
service tftp{
…………………………
socket_type = dgram
…… …… ……
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
…… …… ……
}
3、创建tftp根目录,关闭防火墙,启动tftp-server。
#mkdir /home/app
#chmod o+w /home/app
#/etc/init.d/iptables stop //关闭防火墙
#service xinetd restart //重启 xinetd 服务
重启xinetd服务,因为TFTP服务受控与xinetd, xinetd是管服务的服务,它是不开端口的。
验证一下TFTP是否起来了:
# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN 3122/rpc.statd
tcp 0 0 127.0.0.1:32781 0.0.0.0:* LISTEN 4035/xinetd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 3103/portmap
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3324/httpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3255/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3213/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3295/sendmail: acce
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 3415/0
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3324/httpd
udp 0 0 0.0.0.0:32768 0.0.0.0:* 3122/rpc.statd
udp 0 0 0.0.0.0:69 0.0.0.0:* 4035/xinetd ;
可以看到69端口已经打开
udp 0 0 0.0.0.0:69 0.0.0.0:* 4012/in.tftpd
udp 0 0 0.0.0.0:111 0.0.0.0:* 3103/portmap
udp 0 0 0.0.0.0:754 0.0.0.0:* 3122/rpc.statd
udp 0 0 0.0.0.0:631 0.0.0.0:* 3213/cupsd
这样,tftp-server就启动了。
你可以登陆本机测试以下,命令如下:
#tftp your-ip-address
tftp>get
tftp>put
tftp>q
#