您的位置:首页 > Web前端

Fedora10的NFS和TFTP环境设置

2009-12-01 14:42 197 查看
首先说一下什么是 NFS :
NFS 是 Net File System 的缩写,即网络文件系统 NFS 允许一个系统在网络上与它人共享目录和文件。通过使用 NFS ,用户和程序可以象访问本地文件一样访问远端系统上的文件。 嵌入式开发中使用 NFS 最显而易见的好处是: 1 因为通常的数据可以存放在 HOST 机器上而且可以通过网络访问到,因此嵌入式的开发空间变得和 HOST 机器一样大,不必再受几十M 之约束了。 2. 减少对 Flash 的烧写次数,增加了 Flash 的寿命 3. 不必再每改动了一下点就要重新制作文件系统,重新烧写了,开发完全像在 PC 上一样方便。 注: NFS 由 Sun microsystems 公司开发。是一种网络操作系统 是使用底层传输层协议 TCP/IP 的应用层协议
环境: host : Windows XP SP2 guest : VMWARE 6.0 Fedora10 编译器 : gcc 4.3.2 ELDK4.2-arm-20081124 , arm-linux-gcc3.3.2 , arm-linux-gcc3.4.1 要移植的 Linux 版本 : Linxu-2.6.28.6 BusyBox 版本 : 1.14.1 Fedora10 的 NFS 设置 1 、 设置 Windows 的 IP 地址为 : 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 Mapping , 在 VMnet0 的下拉框中选择计算机的物理网卡 ; 进入 Automatic Bridging 选项卡 —— 选中 Automatic bridging—— “ Add ” —— 在弹出的对话框中选则物理网卡 —— 确定 4 、 Linux 中,系统 —— 管理 —— 网络设备控制 —— 配置 —— 硬件 —— 双击其中的网卡在出现的对话框中,在下拉列表中选 eth0—— 确定 —— 回到网络配置 —— 设备 —— 双击其中的网卡 —— 选静态设置的 IP 地址,在地址中添: 192.168.1.85 (主机和虚拟机中的客户机最好设到一个网段上) 子网掩码: 255.255.255.0 默认网关地址: 192.168.1.1—— 确定 —— 回到网络配置 —— 激活 (操作到这里的时候我遇到了一个问题: 提示不存在 eth0 !我的老天,竟然连网卡都没了?那还得了啊,经过一番尝试和检查,发现是网络硬件设备的设置上出来问题, 我的虚拟机中只有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 的目录 被其他计算机 mount 的 IP (访问权限 * 表示所有的客户机都可以挂接此目录, 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 服务。 Fedora10 的 TFTP SERVER 设置 (TFTP ( 简单文件传输协议 ) 和 FTP ( 文件传输协议 ) 不同 Linux 下 TFTP 的服务器是 TFTP SERVER ,FTP 常用的服务器是VSFTP ) 为什么要TFTP服务呢?如果只是下载上百KB的数据文件到开发板上,通过串口协议完全可以实现了,但是整个过程也要等上几分钟!而当制作好了内核镜像和文件系统后,你会发现他们都是上M的文件,要通过串口那几K几K的速度来下载,相信是个人都会疯掉的,而网络在速度方面就具有绝对的优势了,上M的文件也就秒来钟的事情,我下一个内核镜像一般是2秒左右哦 ,心动不如行动,赶紧来搭建一个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 的值改为 no , server_args 的值为服务器的目录路径,可以根据需要更改。 4. #/etc/init.d/xinetd start ( #chkconfig tftp on 或 #chkconfig xinetd on 或 #service xinetd start ( chkconfig 配置服务的方式是可以开机启动的 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: