找回密码
 注册
关于网站域名变更的通知
查看: 256|回复: 1
打印 上一主题 下一主题

迅为iMX6开发板-Linux系统-TFTP使用文档

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-9-17 16:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
TFTP(Trivial File Transfer Protocol,简单文件传输协议),是一个基于 UDP 协议实
' b8 D2 T2 R( Y! S6 H$ i现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场  v& f5 Q% o) R" m" n3 a) R
合。TFTP 协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文
: @0 S" j" F! h- q# b4 G件,不能列出目录,也不能进行认证。/ |+ V: D! F" Z4 p4 @
根据上面关于 TFTP 的介绍,实现 TFTP 需要搭建一个 TFTP 的服务器,iMX6 开发板当做4 H- m( N& a7 B5 ]* B
客户端。
: z: g) g8 ^# k; Y% `* x' O2 c6 x/ s# W1.1 搭建服务器
1 P8 t+ z; l! T# u) j" c/ P- C1 `" @1 |打开虚拟机 Ubuntu 终端,进入 root 用户,输入“sudo apt-get install xinetd”命令: y" O6 I. e0 N7 J
安装 xinetd,安装完成如下图。(如果报错,注意检查命令拼写:xinetd)
, J- a+ R; A% r# k; V5 U8 E; w6 ?/ W, T
接下来输入“sudo apt-get install tftp tftpd”安装 tftp 和 tftpd,安装完成如下图。# R2 I1 a+ t; m6 c" ~7 y5 |8 S

- W; |) }* f. v& L然后建立 TFTP 的配置文件,使用命令“vi /etc/xinetd.d/tftp”建立文件,如下图。
' H- x+ i( R7 ]# M/ ^6 V
% }5 Y( u0 C7 P* N( h2 G! _6 s写入如下内容:
4 d7 ]8 h6 i  V8 t6 N4 b- Jservice tftp
! u& r  D# i; q- f6 W3 Q{
8 H3 ^1 _" r+ a7 {6 ]4 S, ?7 U' Usocket_type = dgram4 g, @: t( J) c( o2 c4 t
protocol = udp
( `' ]7 ?; ^, ]  gwait = yes
) ~! |3 V1 n9 ^- k& c6 Q1 X( J6 t, {user = root0 ~+ d# z8 \6 F- U7 M# H
server = /usr/sbin/in.tftpd
, V) s% Y, _! a6 Qserver_args = -s /var/tftpboot/: w8 F: F1 p" `0 ^4 X0 M2 K$ I
disable = no
  d: E/ h% N) ^! o; {  [4 O" j% S1 @per_source = 11
' l3 ?- p; h" r6 t' C, [cps = 100 2) s# M1 S8 [# B% m/ p* S" ^
flags = IPv4( V' H) E" y; O) O) S/ A& l
}: z" i2 N- P, g7 y/ a
如下图。" {+ ~4 Y" S+ h6 L

" N+ v: e. g: R注意:如上图所示,这个文件在粘贴内容之后,必须按照上面的格式严格对齐。2 N3 ~! Y' d/ `  U$ b& B
退出并保存。其中 server_args 设置的/var/tftpboot 目录是 tftp 服务器的目录,TFTP
7 T' U0 x, b. y9 g% y. S5 z客户端就是从这个目录里面获取服务器上的文件的。使用命令“mkdir /var/tftpboot”建立
$ l5 [+ b+ q$ L9 t" i0 {4 utftp 服务器的目录,然后设置/var/tftpboot 的访问权限为 777,如下图。
$ ?( {/ K* `  I+ j
* a0 J2 m8 I$ l7 \, }" V, L& |输入”sudo /etc/init.d/xinetd restart”命令重启 xinetd 服务,如下图。
( T% z0 M8 Q3 {8 q* s0 m
' z5 }0 H( x/ h& U6 \+ k服务器到这一步就搭建好了,下面来进行测试。
+ C$ A6 ]) {& \$ C6 n; r2.1 服务器测试
; R  W, G9 G1 |! ^, h- ^& {; }0 |2.1.1 本机测试( p5 ^3 C& ]2 P( U5 E" Q
本机测试:在/var/tftpboot 下面建立一个文件 test,在里面输入 hello world,然后保存/ C/ M' y- U4 g
该文件,如下图。/ x% Y0 v$ Q) _& F) g; z
" Q; ]0 J) F0 n9 h: c
再启动另一个终端,然后输入 tftp 127.0.0.1,如下图。  T, t4 f8 G' ?( x, O7 a/ J

( `; v0 t# }3 n  `1 ]  j输入 get test 获取 test 文件,然后输入 q 退出 tftp,如下图。
! O& p' z: K/ {, q7 V8 I. ^! z) O) }+ D8 w# m/ ^" y
由上图可知,获取到 13 字节的 test。* n0 K% u! S* l. O5 J- T
然后输入 ls 查看当前目录下是否有 test 文件了,通过查看,发现当前目录下已经有 test
/ A* @  G# W; H8 w7 O文件了,这就是/var/tftpboot 目录下的那个 test 文件。然后使用 cat 命令查看一下6 b' f# O& D" z/ k; P% Y6 O
test 的内容,如下图。
# ]- i# C5 Y. d% ^# t1 @( R3 P* X2 ^! `* F
通过上面的截图,看到 test 文件里面的内容是 hello world,与/var/tftpboot 目录的* y8 I& `( L  U& W% `2 a/ X
test 是一样的,至此的 TFTP 服务器端的配置和测试就完成了。
) o& u- i, _1 o/ r8 X2.1.2 开发板实现 TFTP 文件传输; _) d: }3 N) r' L* T) A
iMX6 开发板进入系统后,输入“ifconfig”命令查看板子 ip,然后输入“ping; `: Y8 X  c. u  Z4 [* _4 K
192.168.3.183”命令来测试板子和虚拟机 Ubuntu 之间的网络。如下图。
9 `: B- R8 J0 T2 @* E2 ]4 ^. q) ~% C$ x' w% D# b, Q7 v$ O
由上图可知,开发板和虚拟机的网络是连通的。这里”192.168.3.183”ip 是虚拟机
0 p  {7 \4 Q- XUbuntu 的 ip。如果用 ifconfig 查看到的开发板 ip 和虚拟机 Ubuntu 的 ip 不在同一网段,则
% u4 v7 @, N9 b& q可以通过修改开发板的”/etc/eth0-setting”文件来修改 ip,如下图。
/ y# [# x# D& K4 k/ y% S
8 Y  ~4 N0 l4 x修改完成后,重启开发板。用 ifconfig 查看到 ip 修改有效。
3 Q6 _$ f+ w, u3 A在开发板串口输入“tftp -g -l test -r test 192.168.3.183”,并用 cat 命令查看,如下图。
; b0 ]2 Y5 i6 C* i! h- P2 |) z; |$ R2 ?$ M3 o
由上图可知,获取到的 test 文件的内容和 TFTP 上文件的内容是一样的,至此 TFTP 搭建
2 {( ]- j, q% `以及测试全部完成。以后再调试程序的时候可以用 TFTP,不用再来回拔插、挂载 U 盘了。- W* v* \) E0 w
  • TA的每日心情
    开心
    2023-6-2 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-9-18 09:48 | 只看该作者
                   
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-25 00:53 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表