Fedora10的NFS和TFTP环境设置

http://blog.ednchina.com/longhaihai/255962/message.aspx#

 

首先说一下什么是 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秒左右哦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 的值改为 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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值