Chinaunix首页 | 论坛 | 博客
  • 博客访问: 630562
  • 博文数量: 1008
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 5175
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-31 09:44
文章分类
文章存档

2012年(1008)

我的朋友

分类:

2012-08-01 11:39:54

原文地址:linux下tftp使用方法 作者:luozhiyong131

      文章——>嵌入式学习入门    全面的讲述学习嵌入式linux中的每个步骤 

 

TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。

嵌入式linuxtftp开发环境包括两个方面:

一是linux服务器端的tftp-server支持,

二是嵌入式目标系统的tftp-client支持。

因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。

下面就详细介绍一下linux服务器端tftp-server的配置。在redhat 9.0的第三张光盘中,有tftp-server的安装rpm包。(1       安装

#mount –t iso9660 /dev/hdc /mnt/cdrom    //挂载光盘

#rpm -ivh tftp-server-0.32-4.i386.rpm              //安装

#umount /mnt/cdrom                                          //卸载光盘

2)修改文件在linux下,不管使用的是哪一种super-serverinetd或者xinetd,默认情况下TFTP服务是禁用的,所以要修改文件来开启服务。

根据(1)的安装方法,可以修改文件/etc/xinetd.d/tftp。主要是设置TFTP服务器的根目录,开启服务。

修改后的文件如下:

service tftp {    

socket_type            =dgram       

protocol                  =udp       

wait                        =yes       

user                        =root       

server                     =/usr/sbin/in.tftpd       

server_args             =-s /home/app -c       

disable                    =no       

per_source             =11       

cps                         =100 2       

flags                       =IPv4

}

说明:修改项server_args= -s         -c,其中处可以改为你的tftp-server的根目录,参数-s指定chroot-c指定了可以创建文件。

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就启动了。

你可以登陆本机测试以下,

 

(有时候会出现不能运行的情况,badcommand等,此时可以用以下的命令:chmod 777 文件名)。

 

要是没成功下载,可以重启一下linux

 

可能出现

出现
T ## warming gatewayip needed but not set


修改linux的网关
set gatewayip 172.10.164.1(设备IP的网关地址)
set netmask 255.255.255.0(设备IP的子网掩码)

手动设置完save以后就可以boot启动了

 

 

 

tftp下载时遇到,总是出现传送不完整又重新传送的现象,不断的循环,如下图: 

 
 
主机和开发板也是通过路由器来连接的,所以现在我就改用一条交叉网线直接把主机和开发板连接起来,一试,果然可以啦,哈哈哈哈....。至此,网络部分的移植完成了。
 
 
 
阅读(795) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~