1. install
sudo apt-get install tftpd tftp openbsd-inetd
2. 修改配置
sudo vim /etc/inetd.conf
#:BOOT: TFTP service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers."
#tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp (/srv/tftp 为默认tftp目录)
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /home/**/tftp (自定义的tftp目录)
sudo vim /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"TFTP_DIRECTORY="/home/**/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
3. 创建文件并修改权限
sudo mkdir /home/**/tftp
sudo chmod 777 /home/**/tftp
4. 重启
sudo /etc/init.d/openbsd-inetd restart
5. 查看69端口是否打开
netstat -an | more | grep udp
udp 0 0 0.0.0.0:69 0.0.0.0:*PC本地测试:
1. 在/home/**/tftp下新建test.txt文件
2. 在其他路径(如study)下,执行tftp 127.0.0.0
tftp 127.0.0.1
tftp> get test.txt
ls查看,当前路径(study)下会多了test.txt文件。
环境搭建成功。
开发板与PC之间测试:
1、保证开发板与PC端在同一网段,能够ping通;
2、开发板从PC拿文件,在开发板端执行,IP为PC的IP:
tftp -g -r test.txt 10.0.2.100
执行完后,开发板这边根目录下会多出test.txt文件,cat查看内容,与PC tftp/目录下的test.txt文件内容相同。PS: 参数含义
-g 表示下载文件 (get) -p 表示上传文件 (put) -l 表示本地文件名 (local file) -r 表示远程主机的文件名 (remote file)
要注意的是,建立上述环境后,tftp 10.0.2.114 -m binary -c put linux.bin不能正常往开发板上put文件了,此时需要重新sudo apt-get install tftp-hpa。因为从安装log可以看出tftp和tftp-hpa互斥。若需要作为server使用,重新安装tftp即可。
参考https://blog.csdn.net/rudyn/article/details/38638759