使用TFTP实现开发板与虚拟机文件传输

一、背景

编译的测试程序,ko等需要加载到zynq 7000的开发板上运行。

组网:一台Windows笔记本(也叫主机),一个Ubuntu 16.04的虚拟机(简称虚拟机),一台zynq 7000的开发板。笔记本和开发板均接在路由器下,保证在同一网段,虚拟机和笔记本网络设置为桥接模式。使用时可能需要关闭Windows主机、Ubuntu虚拟机的防火墙功能。

二、搭建TFTP服务器

TFTP服务端运行在Ubuntu虚拟机上。

1、启动服务

在Ubuntu虚拟机上通过如下命令安装TFTP服务器

sudo apt-get install tftpd-hpa

一般安装之后服务会启动。可以通过命令

netstat -a | grep tftp

查看是否有在监听端口,若有,则说明服务已启动。若没有启动,可以通过

service tftpd-hpa start
// 或者
service tftpd-hpa restart

启动。

2、配置

默认情况下, TFTP服务器的配置文件位于/etc/default/tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

修改TFTP默认服务器的路径 /var/lib/tftpboot 权限为777

sudo chmod 777 /var/lib/tftpboot

则可以在开发板上通过TFTP客户端访问该路径。

三、客户端访问

zynq 7000从SD卡启动官网镜像:https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842330/2017.4+Release

通过ifconfig查看网络信息,保证和Ubuntu虚拟机在同一网段,且可以相互ping通。

root@xilinx-zc702-2017_4:~# tftp -h
tftp: invalid option -- 'h'
BusyBox v1.24.1 (2017-12-14 10:33:52 MST) multi-call binary.

Usage: tftp [OPTIONS] HOST [PORT]

Transfer a file from/to tftp server

        -l FILE Local FILE
        -r FILE Remote FILE
        -g      Get file
        -p      Put file

通过tftp命令访问服务器上的内容,例如

tftp -g -r test.log 192.168.1.102

其中192.168.1.102是Ubuntu虚拟机的IP,注意不是主机windows系统的IP,因为TFTP服务是运行在Ubuntu虚拟机上的。test.log是 /var/lib/tftpboot 目录下的文件,需要先创建好。路径 /var/lib/tftpboot 也可以修改,修改后需要重启TFTP服务。

原文地址:https://www.cnblogs.com/luop/p/15220667.html