在嵌入式开发中我们经常需要把编译好的镜像文件下载到开发板中,我接触过的主要有串口、usb和tftp下载这三种方式。
用tftp下载就需要要我们的主机上先安装tftp服务器。
1、安装软件包
sudo apt-get install tftpd tftp xinetd
2、建立配置文件
在/etc/xinetd.d/下建立一个配置文件tftp
sudo vi /etc/xinetd.d/tftp
增加如下内容
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
保存退出。
3、建立tftp服务文件目录
在上面的配置中有server_args = -s /tftpboot,其中/tftpboot这个目录就是上传文件与下载文件的位置。
sudo mkdir /tftpboot --创建/tftpboot目录
sudo chmod 777 /tftpboot -R --设置权限为777
4、重新启动tftp服务
sudo /etc/init.d/xinetd restart --重启tftp服务器
sudo netstat -a | grep tftp --查看是否启动成功,可以看到udp 0 0 *:tftp *:*
5、测试
执行get命令时,保证tftpboot目录下的文件权限为777
执行put命令时,必须先在tftpboot目录下新建一个和上传文件同名的文件且权限为777
sudo vi /tftpboot/fileget --在tftpboot目录下创建文件fileget,等下用get命令
输入内容为gettest,保存退出
sudo chmod 777 /tftpboot/fileget --修改文件fileget权限为777
sudo touch /tftpboot/fileput --在tftpboot目录下创建文件fileput,等下用put命令
sudo chmod 777 /tftpboot/fileput --修改文件fileput权限为777
sudo vi ./fileput --当前目录下创建文件fileput,等下用put命令传到/tftpboot目录
输入内容为puttest,保存退出
sudo tftp localhost --tftp登录本地主机
tftp> get fileget --下载fileget文件
Received 9 bytes in 0.0 seconds --接收文件
tftp> put fileput --上传fileput文件
Sent 9 bytes in 0.0 seconds --发送文件
tftp> quit --退出
sudo ls /tftpboot/ --看到两个文件fileget和fileput
sudo ls ./ --看到两个文件fileget和fileput
sudo cat /tftpboot/fileput --打印出刚刚上传的文件,看到puttest
sudo cat ./fileput --打印出刚刚下载的文件,看到gettest
阅读(1420) | 评论(1) | 转发(0) |