文章目录
TFTP(Trivial File Transfer Protocol)也就是简单文件传输协议,常用于无盘工作站等从别的主机获取引导配置文件,由于TFTP报文较小,所以可以迅速复制这些文件。
TFTP是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号为69。TFTP作为一个传输文件的简单协议,是基于UDP协议而实现的,但是也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的,因此它不具备通常的FTP的许多功能,它仅提供简单的文件传输功能,不能列出目录,不进行认证,且传输8位数据,传输由客户端发起。
在我们的交叉编译时,就可以用到TFTP协议来从我们的TFTP服务器上来获取我们所需要的编译后的可执行文件,然后在我们的客户端运行。
1.安装TFTP服务器
sudo apt-get install tftp-hpa tftpd-hpasudo apt-get install xinetd
2.创建TFTP服务文件夹
mkdir tftpbootchmod 777 tftpboot
需要用chmod命令给tftpboot文件夹777权限,也就是所有者,群组用户,其他用户都有读、写和运行的权限,然后uboot就可以从tftpboot文件夹里下载了。
3.配置tftp文件
cd /etc/xinetd.d/sudo vim tftp
注意:没有tftp文件就新建一个
然后编写tftp文件如下:
server tftp{ socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /home/dengyonghao/project/IGKBoard/tftpboot -c disable = no per_source = 11 cps = 100 2 flags = IPv4}
server_args需要填写自己的tftpboot文件夹路径。
启动TFTP服务器:
sudo service tftpd-hpa start
4.配置tftpd-hpa文件
cd /etc/default/sudo vim tftpd-hpa
然后编写tftpd-hpa文件如下:
# /etc/default/tftpd-hpaTFTP_USERNAME="tftp"TFTP_DIRECTORY="/home/dengyonghao/project/IGKBoard/tftpboot"TFTP_ADDRESS=":69"TFTP_OPTIONS="--secure --create"OPTIONS="-l -s -c /home/dengyonghao/project/IGKBoard/tftpboot"
注意:对应路径要修改为我们的tftp文件夹的路径
重启TFTP服务器:
sudo service tftpd-hpa restart
重启后我们就可以通过tftp命令从TFTP服务器上下载文件了。
首先,我们使用 vim 编辑器编写一个 hello.c 测试程序:
然后把编译后的可执行文件放入我们对应的TFTP服务器文件夹:
然后在我们的开发板中用tftp命令下载对应文件,-g表示下载文件,-r表示远程主机的文件名,hello为我们要下载文件的文件名,之后为我们TFTP服务器端的IP(需要在同一网段内):
网络的配置可见:
开发板多种连网方式精讲
最后用chmod赋予交叉编译好的文件可执行权限就可在开发板上运行了。
来源地址:https://blog.csdn.net/qq_52836452/article/details/129642566