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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
TFTP(Trivial File Transfer Protocol,简单文件传输协议),是一个基于 UDP 协议实
9 h: ^, S  @7 f% V5 i, g0 F7 f现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场9 ?3 `6 N, {; K# `7 h
合。TFTP 协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文
( Q( E. t# q" {$ l件,不能列出目录,也不能进行认证。
2 D/ j. O* l0 J" v' Y. \) ^, d根据上面关于 TFTP 的介绍,实现 TFTP 需要搭建一个 TFTP 的服务器,iMX6 开发板当做6 k" o, e6 j# O
客户端。6 r) E) U6 J0 X7 ^+ u
1.1 搭建服务器2 J' N/ G7 T0 N; o8 ?
打开虚拟机 Ubuntu 终端,进入 root 用户,输入“sudo apt-get install xinetd”命令& E) w6 D8 w  Y; I$ w. w/ g) U5 B
安装 xinetd,安装完成如下图。(如果报错,注意检查命令拼写:xinetd)
5 s3 m' F: v4 `
+ K  [/ p  h0 {! v: }接下来输入“sudo apt-get install tftp tftpd”安装 tftp 和 tftpd,安装完成如下图。
6 ~6 i7 J* a( ]
4 q0 A7 R7 `9 @5 E' G3 k3 m. P3 w- O然后建立 TFTP 的配置文件,使用命令“vi /etc/xinetd.d/tftp”建立文件,如下图。
9 e8 K/ R# e) a" y0 c
2 O7 Z7 N* [" |* h0 I2 {写入如下内容:
+ X' J; t$ d# Oservice tftp0 ~' A9 X8 l8 L7 L6 D% b. a' o
{
9 l7 G  \: ]4 zsocket_type = dgram" R, y+ }  X) |! y7 ?9 z7 O
protocol = udp
( P& F2 U5 \' h2 R- w9 Vwait = yes
2 `  N2 H" J- |, h: Wuser = root
! l+ X5 p3 j. \" b( F& O, Rserver = /usr/sbin/in.tftpd# Z2 |( k  n; ]* W2 _* T  w' @. V
server_args = -s /var/tftpboot/, l$ n, N8 w7 q9 I% h
disable = no
7 b' ?% z. g4 c8 iper_source = 11
: }0 [8 l  D/ c0 H0 I/ ^cps = 100 24 s, h3 x0 i9 i
flags = IPv4
* j4 P9 B0 Y: \}! c! B6 Q7 A0 L. q9 \, G
如下图。
% q: B$ g( y8 _$ Z( u
! \0 x0 [8 ?5 a4 b- {& {注意:如上图所示,这个文件在粘贴内容之后,必须按照上面的格式严格对齐。( o: ^+ b  e: g
退出并保存。其中 server_args 设置的/var/tftpboot 目录是 tftp 服务器的目录,TFTP# H: d! v" ^/ J" U& ^
客户端就是从这个目录里面获取服务器上的文件的。使用命令“mkdir /var/tftpboot”建立
( \4 M# r0 ?: J* J5 g5 S* `tftp 服务器的目录,然后设置/var/tftpboot 的访问权限为 777,如下图。7 u- H- Y, X" s, h2 \! ~' Z( |
# M  `7 ]/ c/ y' W8 H
输入”sudo /etc/init.d/xinetd restart”命令重启 xinetd 服务,如下图。: N* |* F' x2 D: g2 t

' W7 O# n  P6 r# f2 a$ |服务器到这一步就搭建好了,下面来进行测试。
& H5 L0 n- O; I( {/ [% i* }2 _2.1 服务器测试, u; e. i, u9 u1 P/ u& b) h3 {' e
2.1.1 本机测试
1 P. f0 p: S- c2 ^( h; }  P; {本机测试:在/var/tftpboot 下面建立一个文件 test,在里面输入 hello world,然后保存& A; s& o( P' [1 s
该文件,如下图。% T7 M7 u, v# O

1 W5 l4 e3 [" C3 X再启动另一个终端,然后输入 tftp 127.0.0.1,如下图。+ l" Q% `& u% Y: l+ A- R

8 W+ J4 h$ M* S输入 get test 获取 test 文件,然后输入 q 退出 tftp,如下图。
' y( X6 A. C& d( y! }2 f7 s, T3 E9 Q' A* T# G- j
由上图可知,获取到 13 字节的 test。
0 p6 ^/ D% m! @% K: f' r% D然后输入 ls 查看当前目录下是否有 test 文件了,通过查看,发现当前目录下已经有 test
* l7 U, f- ^* x+ G文件了,这就是/var/tftpboot 目录下的那个 test 文件。然后使用 cat 命令查看一下& v% f8 r2 \+ c( i3 T" Q; E
test 的内容,如下图。( m0 z( e& D% `' @; U% H% T

0 C' w, a2 |% A通过上面的截图,看到 test 文件里面的内容是 hello world,与/var/tftpboot 目录的
; {% t( }- q' btest 是一样的,至此的 TFTP 服务器端的配置和测试就完成了。
' p! e- `0 ~+ `& P! H2.1.2 开发板实现 TFTP 文件传输( S' ^! f3 @* t8 A
iMX6 开发板进入系统后,输入“ifconfig”命令查看板子 ip,然后输入“ping
% [) K7 K- s" O192.168.3.183”命令来测试板子和虚拟机 Ubuntu 之间的网络。如下图。
3 x; L1 a* r" r" V0 W" U- a( G/ `
4 ?* e  S% \" u) j由上图可知,开发板和虚拟机的网络是连通的。这里”192.168.3.183”ip 是虚拟机
- p# X8 o  Z& z" pUbuntu 的 ip。如果用 ifconfig 查看到的开发板 ip 和虚拟机 Ubuntu 的 ip 不在同一网段,则: Y* l/ C# h/ S3 p3 ^
可以通过修改开发板的”/etc/eth0-setting”文件来修改 ip,如下图。0 e" ~! y) `" k( k1 f, ~
. ~7 K7 a: U! [9 `9 i" v. s! l. X+ a
修改完成后,重启开发板。用 ifconfig 查看到 ip 修改有效。3 s7 j" F  o& r. ^( {% O1 V' D/ S
在开发板串口输入“tftp -g -l test -r test 192.168.3.183”,并用 cat 命令查看,如下图。# U% d( e  P. g" j3 \" P* B

: ~# o, \+ d# @6 T由上图可知,获取到的 test 文件的内容和 TFTP 上文件的内容是一样的,至此 TFTP 搭建
9 h' u9 c( ?* c& i+ w" z以及测试全部完成。以后再调试程序的时候可以用 TFTP,不用再来回拔插、挂载 U 盘了。; ^8 E* t( P9 F; \5 B
  • 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-24 23:54 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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