继续创作,加快成长!这是我参加「日新方案 10 月更文挑战」的第30天,点击查看活动详情

嵌入式 Linux入门 环境篇第六课,建立 TFTP 环境   ......  by 矜辰所致

前言

上文咱们学习了 NFS 同享文件夹的环境建立与运用, 本文讲解网络文件 “同享” 的别的一种方法: TFTP。

一、TFTP 简介

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在 客户机与服务器之间进行简单文件传输的协议,提供不杂乱、开销不大的文件传输服务。

根底的概念这儿咱们能够不深入了解,只需求学会如何在开发板上运用 TFTP 获取 Ubuntu 虚拟机上的同享文件。

咱们能够运用 TFTP 来加载内核 zImage、设备树和其他较小的文件到开发板 DDR 上,然后实现网络挂载。

二、建立 TFTP 环境

Linux下的 TFTP 开发环境建立包含两个方面:一是 Linux 服务器端的 tftp-server 支持(服务器),二是嵌入式方针系统的 tftp-client 支持(客户端)。

和上一篇文章一样,咱们的意图是是为了使得开发板能够通过网络下载 Ubuntu 下的同享文件,所以咱们需求在 Ubuntu 下装置的是 TFTP 服务器。

2.1 装置 TFTP 软件

建立 TFTP 服务所需求装置的软件有:tftp-hpa,tftpd-hpa 以及 xinetd 。

# 分别的意思如下:
tftp-hpa : 是客户端软件 指令:apt-get install tftp-hpa
tftpd-hpa : 是服务程序 指令:apt-get install tftpd-hpa
xinetd : 是新一代进程看护程序 指令:apt-get install xinetd

咱们依据指令装置上面3个软件,前后顺序无所谓:

嵌入式 Linux TFTP环境搭建实战

2.2 创立同享文件夹

创立一个文件夹,当做 TFTP 的同享目录,并给予 此目录可读可写可执行权限,如下图:

嵌入式 Linux TFTP环境搭建实战

2.3 配置文件修正

上面咱们装置了 3 个软件,咱们需求对其中的配置文件进行检查和修正。

2.3.1 xinetd.conf

查询/etc下是否存在 xinetd.conf 文件,没有的话需求自己新建一个:

嵌入式 Linux TFTP环境搭建实战

承认一下该文件的内容是否和下面一样,不一样则修正成这样:

# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info
}
includedir /etc/xinetd.d

咱们这儿是正常的,如下图:

嵌入式 Linux TFTP环境搭建实战

2.3.2 tftpd-hpa

打开 /etc/default/tftpd-hpa 配置文件,修正上面创立的同享文件目录为 TFTP 服务器作业目录,一起修正一些选项,如下图:

嵌入式 Linux TFTP环境搭建实战

2.3.3 tftp

创立/etc/xinetd.d/tftp 配置文件,内容设置为(留意下面的同享文件夹途径是需求依据自己虚拟机的途径设置):

server tftp
{
	socket_type = dgram
	wait = yes
	disable = no
	user = root
	protocol = udp
	server = /usr/sbin/in.tftpd
	server_args = -s /home/qzh/linux/tftp -c
	per_source = 11
	cps =100 2
	flags =IPv4
}

如下图:

嵌入式 Linux TFTP环境搭建实战

2.3.4 重启服务

完结上述过程,依次重启 tftpd-hpaxinetd 服务:

sudo service tftpd-hpa restart
sudo service xinetd restart

嵌入式 Linux TFTP环境搭建实战

三、TFTP 服务器测验

3.1 tftp指令用法

首先连接 tftp 服务器:

tftp  [tftp服务器ip]

连接上后一些相关的操作指令如下:

嵌入式 Linux TFTP环境搭建实战

connect:连接到长途tftp服务器 mode:文件传输形式 put:上传文件 get:下载文件 quit:退出 verbose:显示具体的处理信息 trace:显示包途径 status:显示当前状态信息 binary:二进制传输形式 ascii:ascii传送形式 rexmt:设置包传输的超时时间 timeout:设置重传的超时时间 help:帮助信息 ?:帮助信息

3.2 测验

咱们先在 TFTP 服务器目录下面新建一个文件,如下图:

嵌入式 Linux TFTP环境搭建实战

3.2.1 本机测验

TFTP 服务器建立好了今后,在本机就能够进行测验,如下图:

嵌入式 Linux TFTP环境搭建实战

3.2.2 开发板测验

指令格式为:

tftp [option] [源文件名] [服务器地址]

下载

从长途主机下载指令:

tftp -g -r [源文件名] [服务器地址]
tftp -g -l [源文件名] [服务器地址]

上面参数 -l-r 等效,运用时只运用其中一个,当需求改文件名字的时分才有差异,改文件名字的测验咱们这儿不做评论。

关于指令中有些缩写进行阐明:

参数阐明:

-l : 是 local 的缩写,表明本地文件名 后跟存在于 Client 的源文件名,或下载 Client后 重命名的文件名。

-r: 是 remote 的缩写,表明长途主机文件名 后跟 Server 即 PC 机 tftp 服务器根目录中的源文 件名,或上传 Server 后重命名后的文件名。

-g: 是get的缩写,下载文件时用。

-p: 是put的缩写,上传文件时用。

比如咱们在开发板上下载刚才在 Ubuntu 中建立的文件:

嵌入式 Linux TFTP环境搭建实战

上传

从本地上传之长途主机指令:

tftp -p -r [源文件名] [服务器地址]
tftp -p -l [源文件名] [服务器地址]

嵌入式 Linux TFTP环境搭建实战

结语

本文咱们在 Ubuntu 虚拟机上建立好了一个 TFTP 服务器,虽然看起来他比 NFS 同享文件夹略微杂乱一点,可是也有它自己的优点和适用场合,关于后期的学习中,咱们会依据不同的环境运用不同的环境 。

至于环境篇后面讲什么,暂时的方案是需求把程序烧录,包含 uboot ,内核镜像,设备树的编译与烧录完整的过一遍。

好了,本文就到这儿,谢谢我们!