Page tree
Skip to end of metadata
Go to start of metadata

TFTP(Trivial File Transfer Protocol,简单文件传输协议),是 TCP/IP 协议族中用来在客 户机和服务器之间进行简单文件传输的协议,开销很小。

这时候有人可能会纳闷,既然前面已经介绍了功能强大的 SSH 和 NFS 服务,还有必要 介绍 TFTP 吗?TFTP 尽管简单,但在很多地方还是不可替代的,正如俗话说的“尺有所短, 寸有所长”。

TFTP 通常用于内核调试。在嵌入式 Linux 开发过程中,内核调试是其中一个基础、重 要的环节。调试内核通常是与 Bootloader 配合使用,只需在 Bootloader 中实现了网卡驱动和 TFTP 客户端,就可以使用 TFTP 进行传输内核。

使用 TFTP 服务,还需要在主机实现 TFTP 服务器,可以在 Linux 下实现,也可以在 Windows 下实现。


安装配置TFTP软件包

用户可以在主机系统联网的情况下,在终端输入下面命令进行安装:

$ sudo apt-get install tftpd-hpa tftp-hpa


配置TFTP服务器

TFTP软件安装后,默认是关闭TFTP服务的,需要更改TFTP配置文件“/etc/default/tftp-hpa”, 可通过终端输入如下命令进行修改:

$ sudo vi /etc/default/tftpd-hpa


用户需要指定一个目录为TFTP根目录。若用户需要把"/srv/tftp"目录设置为TFTP根目录, 请在/etc/default/tftp-hpa 文件中的“TFTP_DIRECTORY”变量指定,如下所示:

# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"


如果用户的 Linux系统下尚未创建"/srv/tftp"目录,需要创建该目录,并需要使用 chmod 命令为该目录设置最宽松的权限。目录创建及权限设置命令如下所示:

$ sudo mkdir /srv/tftp
[sudo] password for i2somdev:
$ sudo chmod -R 777 /srv/tftp


启动TFTP服务

TFTP服务器安装配置完成后,启动 tftp 服务的终端命令如下:

$ sudo service tftpd-hpa start

当然直接重启系统也可以启动 tftp 服务。


测试TFTP服务器

在TFTP服务器目录/srv/tftp下创建一个测试文件testfile:

$ touch /srv/tftp/testfile

开发板上使用 TFTP下载文件

U-Boot中配置ipaddr, serverip

ethaddr是MAC地址,可以使用uboot中的tools/gen_eth_addr工具来生成。

setenv ipaddr 192.168.2.10
setenv serverip 192.168.2.101
setenv ethaddr 12:34:56:78:90

下载文件

tftpboot 0x80000000 zImage
  • No labels