原创 【原创】Fedora10的NFS和TFTP环境设置

2009-8-28 09:42 3949 4 4 分类: MCU/ 嵌入式

首先说一下什么是NFS<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


NFSNet File System的缩写,即网络文件系统NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。


嵌入式开发中使用NFS最显而易见的好处是:


1因为通常的数据可以存放在HOST机器上而且可以通过网络访问到,因此嵌入式的开发空间变得和HOST机器一样大,不必再受几<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />十M之约束了。


2.减少对Flash的烧写次数,增加了Flash的寿命


3.不必再每改动了一下点就要重新制作文件系统,重新烧写了,开发完全像在PC上一样方便。


注:NFS Sun microsystems 公司开发。是一种网络操作系统


是使用底层传输层协议TCP/IP的应用层协议


 

环境:


hostWindows XP SP2


guestVMWARE 6.0 Fedora10


编译器gcc 4.3.2


         ELDK4.2-arm-20081124arm-linux-gcc3.3.2arm-linux-gcc3.4.1


要移植的Linux版本Linxu-2.6.28.6


BusyBox版本1.14.1


 


Fedora10NFS设置


1 设置WindowsIP地址为192.168.1.X(比如我的机器上设置为:192.168.1.80


2 关闭Fedora10中的防火墙


3 设置虚拟机中的Linux为桥接模式:


a)      VM——Setting——Network Adapter选择桥接模式


b)      Edit——Virtual Network Settings——Host Virtual Network MappingVMnet0的下拉框中选择计算机的物理网卡进入Automatic Bridging选项卡——选中Automatic bridging——Add——在弹出的对话框中选则物理网卡——确定


4 Linux中,系统——管理——网络设备控制——配置——硬件——双击其中的网卡在出现的对话框中,在下拉列表中选eth0——确定——回到网络配置——设备——双击其中的网卡——选静态设置的IP地址,在地址中添:192.168.1.85(主机和虚拟机中的客户机最好设到一个网段上)子网掩码:255.255.255.0默认网关地址:192.168.1.1——确定——回到网络配置——激活


   (操作到这里的时候我遇到了一个问题:


    提示不存在eth0!我的老天,竟然连网卡都没了?那还得了啊icon,经过一番尝试和检查,发现是网络硬件设备的设置上出来问题,我的虚拟机中只有eth1连接到硬件设备,而eth0的硬件设备那一栏是空的,不存在虚拟网卡,那样的话只要把eth0的硬件设备设置为eth1或者将eth0改名为eth1然后硬件设备设为eth1再设置好静IP就可以了,在Fedora10中,GUI界面的IP设置有问题,可以通过配置/etc/sysconfig/networking/ifcfg-eth1文件来设置静态IP,这里要注意如果主机的网线没有插的话是主机自己不能PING通自己,而且主机和虚拟机中的客户机也不能相互PINT通,但是虚拟机中的客户机可以PINT通自己。)


5 配置NFS服务的共享目录#vim /etc/exports


/root/FamilyGate/nfs       *(rw,sync,no_root_squash)这个是配置的NFS服务的目录,即被其他计算机mount的目录  被其他计算机mountIP(访问权限*表示所有的客户机都可以挂接此目录,rw表示挂接此目录的客户机对该目录有读写权限,no_root_squash表示允许挂接此目录的客户机享有该主机的root身份,即如果客户机上用户是用root用户登录的,那么在NFS服务器上用户也享有root权限), no_root_squash选项时挂接的客户机有主机的ROOT身份


6 #lokkit关闭防火墙


7 启动NFS服务器#/etc/init.d/nfs start(或者#service nfs start一旦修改了/etc/exports就要重启nfs服务#/etc/init.d/nfs reload(或者#service nfs restart显示mount的目录列表#exportfs运行#mount –t nfs localhost:/root/FamilyGate/nfs /mnt/nfs服务正常(或者#service nfs status查看nfs的状态)则在/mnt下看到的内容应该和/root/FamilyGate/nfs下的内容一致如果NFS运行不起来多般是某些网络服务没有起来那样的话可以用#service network restart启动网络服务应该可以解决问题。运行#/etc/init.d/nfs stop(或者#service nfs stop停止NFS服务。


 


Fedora10TFTP SERVER设置TFTP简单文件传输协议FTP文件传输协议不同LinuxTFTP的服务器是TFTP SERVERFTP常用的服务器是VSFTP


为什么要TFTP服务呢?


呵呵,如果只是下载上百KB的数据文件到开发板上,通过串口协议完全可以实现了,但是整个过程也要等上几分钟!而当制作好了内核镜像和文件系统后,你会发现他们都是上M的文件,要通过串口那几K几K的速度来下载,相信是个人都会疯掉的,而网络在速度方面就具有绝对的优势了,上M的文件也就秒来钟的事情,我下一个内核镜像一般是2秒左右哦icon,心动不如行动,赶紧来搭建一个TFTP服务器吧!


1.         在最初安装的时候选择legacy network services并安装TFTP SERVER服务器。如果在最初的时候没有安装那也可以到网上下载tftp server的rpm包来安装!


    推荐一个下载地址:http://rpm.pbone.net/index.php3


2.         检查系统中是否有安装好TFTP SERVER#rpm –qa | grep tftp,若出现tftp-server-0.49-1.fc10.i386之类的提示,说明系统中已经装好了TFTP服务了。


3.         #vim /etc/xinetd.d/tftp配置tftp,将disable的值改为noserver_args的值为服务器的目录路径,可以根据需要更改。


4.         #/etc/init.d/xinetd start#chkconfig tftp on#chkconfig xinetd on#service xinetd startchkconfig配置服务的方式是可以开机启动的Linux服务有六个运行级别,可以通过chkconfig来配置每个级别上服务运行状况,#chkconfig –list可以列出系统中的所有服务及其运行状况))启动服务。


5.         后来通过不断更改UBOOT中TFTP命令的超时参数发现如果TFTP请求包中发送的超时参数超过一定的值时,Linux上的TFTP SERVER就会返回Unsupported options,但是将超时参数设的太小的话,又造成通信经常性中断,TFTP超时后就会重新开始传输,这样的话就老是完不成传输,不晓得能不能在Linux下的TFTP SERVER中设置一下允许的超时参数,因为在windows下我将超时设为5S都能正常通信,而对Linux我只设了500MS都不可以,真的晕死啊。这里推荐一个超时参数:将UBOOT中传输的超时参数设为100


        这要修改uboot中/net/tftp.c中约198行的sprintf((char *)pkt, "%lu", TIMEOUT / 1000);


       TIMEOUT / 1000就是要协议中传输的超时参数,将其改为100


 


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条