|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
这部分内容主要是关于TFTP服务器的搭建,特别单独拿出来讲解一下。- `2 A9 A1 m3 u
一、TFTP服务器的搭建与测试:4 d% }% a' m8 R' Z3 r: l
TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server(服务器)支持,二是嵌入式目标系统的tftp-client(客户端)支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。下面就详细介绍一下linux服务器端tftp-server的配置: S" [! k* J3 r2 E( R7 j
实际上我们同样可以在windows上搭建TFTP服务器,之后的话我可能会对这部分内容作一些补充。但这里我主要讲解一下在Linux下的TFTP服务器搭建:
5 \$ \' K h( c1、搭建TFTP服务器我们需要三个东西:xinetd、tftp、tftpd,在保证联网的情况下安装它们。, j2 Z* J- A. z1 _* I
sudo apt-get install xinetd# C/ @+ ~+ U3 M: q- o, x
sudo apt-get install tftp P8 @ Z: z; ~# G: L, M% g
sudo apt-get install tftpd
* f) z* D0 P( o' h7 L2.建立TFTP的配置文件(这一步比较容易出错): ]0 d& i2 @( s c1 L8 Y7 E+ n- g
vi /etc/xinetd.d/tftp. q B: w/ U6 H. [. M3 d
输入以下代码:
1 a" X9 `% S T9 a1 i/ I/ v7 Q zservice tftp
& r" |/ ?( i( e- O{
) R8 d" a! W2 p; esocket_type = dgram) l$ D- ~& h* f I2 }
protocol = udp7 S3 V( _; J3 p% j; v. [" L
wait = yes4 h" Z f3 ~& o! S" V
user = root
, `% k9 Z1 D; e6 Z* pserver = /usr/sbin/in.tftpd; Y, \7 r6 l+ X) {: c' Q. R6 A" k
server_args = -s /var/tftpboot/0 \" P& r8 ?' @7 C7 j3 f; O
disable = no
- ]* h% V2 }" p2 zper_source = 113 ^0 `9 K- E3 \2 P/ |& H9 |
cps = 100 2" a* }4 g5 x4 s7 }! V' ] ^
Flags = IPv4$ ^! W8 J* G/ H
}
; O4 d3 r2 @& @/ k代码格式如下图所示(用tab键隔开,不建议使用空格)
- Q* a4 C% V0 ~5 Y- X
* i/ o7 D9 F1 E4 A6 s其中的server_args是tftp 服务器的目录。TFTP 客户端就是从这个目录里面获取服务器上的文件的。上图使用的是/var/tftpboot,用户可以自己定义。/ C8 h: _6 y! D
3、创建目录:mkdir /var/tftpboot% R1 q! L/ C) X* a
4、改变权限:chmod 777 /var/tftpboot7 R {7 Q, I8 T
5、启动xinetd服务:sudo /etc/init.d/xinetd restart
8 J; [* M- V0 ?" h: |3 m, K6、测试TFTP服务器:1 D, c. ?9 e8 L7 f; R2 e1 w( [/ I
输入命令:netstat -a | grep tftp
3 N4 h- W: X0 {/ } & R, u% g0 ?5 [) r# L
出现上图的情况说明配置成功/ y- Q* Y2 ^% M1 G; X
我们可以本地测试一下tftp服务器:
7 C c0 l% t) y$ Y3 {6 W% r①在tftpboot目录下创建一个文本文件,随便写点什么:* c/ z8 t6 g# G. s8 X: p8 k
例如vi /var/tftpboot/tftptest* S' v; q3 }# e7 C3 t
输入“This is TFTPTEST!”,保存退出。7 y j# W% B4 m, @7 b
②随便进入一个你常用的目录,作为下载文件的目的目录,输入tftp(也可以写成tftp localhost或者tftp 127.0.0.1),连接到本地的tftp服务器。
. j( d$ S. x X1 j. p③get test下载文件到目的目录,q退出,ls就可以看到文件已经到了你的当前目录。cat test 就可以看到了文件内容。$ e* {& H: @0 Q: |
7、TFTP操作:
, D0 c- S2 t ^7 H1 g8 o2 S5 U注意tftp命令行下是不支持Linux命令的,它有自己独特的命令,使用?命令可以看到。, X( ]5 l9 L, g1 C/ y
connect:连接到远程tftp服务器 9 T% c0 e% o4 H; Q
mode:文件传输模式2 _3 G6 N, W( U5 O
put:上传文件2 U3 S: I* B3 ^
get:下载文件 1 P7 e* y9 }' ^# I4 D9 b0 _4 A) _
quit:退出
/ s: Q: q6 n& y" U! k5 F verbose:显示详细的处理信息
7 Q/ i# W) C9 k. j% d s9 [* ^8 e tarce:显示包路径' D% e7 K1 V5 ~$ O4 P: [
status:显示当前状态信息 : a& O! Z9 r# A' m* [
binary:二进制传输模式
# @& a5 P/ F* ] ascii:ascii传送模式
6 c3 @1 k" W6 B- Z0 g3 e" P' l# i rexmt:设置包传输的超时时间2 z: V2 S" O) X8 T0 w3 G2 C
timeout:设置重传的超时时间
& V+ O, G' }/ q! B% n4 y ]?:帮助信息$ Y7 z" o, Z) O6 [/ K. [5 w
8.开发板连接tftp客户端
# V. |3 O6 g, p" {# {, _注:在连接开发板和ubuntu的tftp服务器之前,一定要首先保证开发板和ubuntu的ping通,
9 _; r9 f1 |: W& f+ w S( }8 F7 S在保证ubuntu和开发板能够ping通的条件下,就可以使用tftp服务器了。
7 ^& e' j2 |3 b% o①把需要下载的文件拷贝到/var/tftpboot目录下,
& U( p- h: T( y7 p1 o②开发板下载文件:8 q: L. {; f/ j. c- c
命令格式tftp [option] ... host [port], T& Q. x5 s/ u ]- B4 S
[option]:
2 h) T1 U/ Z T o7 U) u$ r2 T% a# B-g表示下载文件(get)
! B) E, I; P7 T* [- a5 C& L/ W4 s -p表示上传文件(put)
, |# O2 z0 @$ O9 f -l表示本地文件名(local file)
; y) M9 Z" A1 }, [" v$ }/ ~ -r表示远程主机的文件名(remote file)0 v5 [- E4 y( W! j6 x
例如:tftp -g -l helloworld -r helloworld 192.168.1.109 |
|