1. 安装tftp
首先需要安装 tftp-hpa,tftpd-hpa,前者是客户端,后者是服务程序,然后还需要安装xinetd。
sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd
2. 配置/etc/default/tftpd-hpa
打开/etc/default/tftpd-hpa,将内容修改成以下内容:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot" #这是你 tftp 服务器的工作目录,自行修改,注意,在新建工作目录时,最好使用命令“sudo chmod 777 /tftpboot”修改其权限为777
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
3. 配置/etc/xinetd.d/tftp
进入 xinetd.d 文件夹,查看是否有一个 tftp 文件,如果没有就新建一个,如果有的话就查看内容是否与下面的一致,不一致则修改,内容如下:
service tftp
{
socket_type = dgram
wait = yes
disable = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot #配置服务器文件存放的位置,就是进行 tftp 传输的时候,都是从该文件夹中搜索文件的
#log_on_success += PID HOST DURATION
#log_on_failure += HOST
per_source = 11
cps =100 2
flags =IPv4
}
4. 重启服务
记住,每次修改完配置文件后,都需要重新启动一下服务。执行次序如下
sudo service tftpd-hpa restart
sudo /etc/init.d/xinetd reload
sudo /etc/init.d/xinetd restart
5. 本地测试
先在/tftpboot 中新建一个文件 file,然后在其中随便输入内容;然后进入一个不是/tftpboot 的目录下;在终端中输入 sudo tftp localhost,进入 tftp 命令符下(可以在其中输入 help查看命令和命令的作用),输入 get file,如果没有任何提示,就说明传输成功了,然后输入 q退出 tftp 命令符,在当前目录下就可以看到一个 file 文件。同样也可以在 tftp 命令符中输入 put xx,把 xx 文件上传到服务器文件夹中。如果一切 ok,那就么一个可用的 tftp 服务器就顺利搭建成功了。
6. 异地传输
将虚拟机和开发板通过网线连接,将两者的ip改到同一个网段。如果是在开发板启动后(非uboot阶段)修改开发板ip,使用命令:ifconfig eth0 192.168.1.1设置开发板系统IP
示例:
tftp -g -r ath.ko 192.168.1.155 //从Ubuntu主机tftp服务器获取ath.ko文件,下载成功以后设备中可以看到ath.ko文件
//注意:192.168.1.155是主机ip,-g和-r两个参数的顺序不能颠倒
tftp -l -p ath.ko 192.168.1.155 //向Ubuntu主机tftp服务器上传ath.ko文件,上传成功以后可以在Ubuntu主机的/tftpboot/ 目录下看到ath.ko文件