在嵌入式开发中我们经常需要把编译好的镜像文件下载到开发板中,我接触过的主要有串口、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 ./fileget –打印出刚刚下载的文件,看到gettest
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!