在嵌入式Linux中,最常用的是tftp命令来完成开发板与Linux系统之间的文件传输,避免频繁的U盘拷贝过程。
事实证明,使用Windows上的软件“tftpd32.exe”可以轻松地在Windows上搭建一个tftp服务器。但如果做嵌入式Linux开发,如果在Windows上搭建tftp服务器,并使用虚拟机,则需要在虚拟机中打开一个共享文件夹,将文件放入共享文件夹中,最后传输文件。在开发板上运行。如此复杂的步骤对我来说实在是太难以承受了……那么,我可以只用一个Linux系统来完成编译和文件传输吗?答案是可以!让我们看看如何在Linux 系统上安装tftp 服务器。
在Linux上搭建tftp开发环境涉及两个方面。一是在Linux服务器端支持tftp服务器,二是在嵌入式目标系统上支持tftp客户端。
本教程分为三个部分。
配置tftp服务器tftp文件传输的视频说明(见文末) 0.作者的开发环境是Windows 10专业版(版本号:1909,操作系统版本:18383.752),Windows子系统Ubuntu 18.04(1804.2020) .5.0)。 )
1、搭建tftp服务器1.1:安装tftp服务器必要的软件
构建tftp服务需要安装的软件包括tftp-hpa、tftpd-hpa和xinetd。
tftp-hpa——客户端软件:
~$ sudo apt-get install tftp-hpatftpd-hpa—— 服务程序:
~$ sudo apt-get install tftpd-hpaxinetd—— 新一代网络守护服务程序,也称为超级互联网服务器,通常用于管理各种轻量级互联网服务。
~$ sudo apt-get install xinetd1.2:配置xinetd.conf配置文件
验证/etc/xinetd.conf文件是否与以下内容匹配,如果不匹配,请更改:如果它们不匹配,请直接使用vi 命令创建并编辑它们。
~$ cat /etc/xinetd.conf# xinetd 的简单配置文件## 包含一些默认值,以及/etc/xinetd.d/defaults{# 为了能够使用log_on_success# 和log_on_failure ,请注意log_type 行是必需的。默认为:# log_type=SYSLOG daemon info}includeir /etc/xinetd.d1.3:配置tftpd-hpa配置文件。
运行~$ sudo vi /etc/default/tftpd-hpa 并更改内容如下:
# /etc/default/tftpd-hpaTFTP_USERNAME='tftp'TFTP_DIRECTORY='/home/harry/tftpboot'TFTP_ADDRESS='0.0.0.0:69'TFTP_OPTIONS='-l -c -s' 更改成功后,即可。下图,wq 保存退出。
配置tftpd-hpa配置文件
注:TFTP_DIRECTORY="/home/harry/tftpboot"表示tftp服务器的工作目录,用户可以根据自己的实际情况进行更改。
1.4:创建工作目录
指定tftp服务的工作目录后,需要在对应的路径下创建tftp工作目录。命令是:
~$ mkdir tftpboot 将tftp服务器目录的权限更改为777。这使得目标机器不仅可以下载,还可以上传。命令是:
~$ sudo chmod 777 ./tftpboot1.5:配置tftp配置文件
检查/etc下xinetd.d目录下的ftp文件内容是否与下图中的内容相符(如果不相符,则新建一个文件,输入以下内容:To do)。
~$ sudo vi /etc/xinetd.d/tftp 包含:
服务tftp{ 套接字类型=dgram 协议=udp 监听=是用户=root 服务器=/usr/sbin/in.tftpd 服务器参数=-s /home/harry/tftpboot/-c 禁用=否per_source=11 cps=100 2 flag=IPv4} 如更改后的图像所示
配置tftp配置文件
server_args 行设置文件在tftp 服务器中的位置,并在执行tftp 发送时从此目录中搜索文件。
然后保存文件并完成编辑。
1.6:重启tftp
重新启动tftp,您应该会看到一条OK 消息。
~$ sudo service tftpd-hpa restart 重新启动tftp
如果您的Linux系统与笔者相同,即win10子系统,则会出现Windows防火墙的提示。请务必单击“是”。否则会失败
1.7: 重新加载xinetd
重新加载xinetd 进程,您应该会看到一条OK 消息。
~$ sudo /etc/init.d/xinetd reload 重新加载xinetd
1.8:重启xinetd
重新启动xinetd服务后,会看到两个OK提示。
~$ sudo /etc/init.d/xinetd restart 重新启动xinetd
注意:每次更改配置文件后都必须重新启动服务。
至此,您已经完成了在Linux 系统上构建tftp 服务器的步骤。测试tftp 的方法如下:
2.测试tftp服务2.1:创建新的测试文件
作者已将编译好的C语言程序文件'hello'复制到tftp工作目录'/home/harry/tftpboot'中。该文件可以输出Hello World!如下图所示。
打印“你好世界!”
2.2:进入测试目录
然后输入与“/home/harry/tftpboot”不同的目录(例如/home/harry目录)并在终端中键入以下内容:
~$ tftp 127.0.0.1 输入tftp 命令提示符,如图所示。
进入测试目录
2.3:获取测试文件
键入以下命令并按Enter 键即可获取保存在tftp 工作目录/home/harry/tftpboot 中的“helol”文件。如果没有看到提示,则说明提交成功。否则,发送将由于配置问题或防火墙阻止而失败。如下所示:
~$ get test 获取测试文件
2.4:退出tftp命令
输入q退出tftp命令行,如下图所示。
退出tftp 命令
2.5:更改文件权限并运行
~$ ls~$ chmod 777 hello~$ ls~$ ./hello 更改获取的文件权限并执行
2.6:上传文件
您可以通过在tftp 命令中键入以下命令来将文件上传到tftp 服务器:
~$ put main.c2.7:开发板tftp传输命令
tftp [server_ip] (tftp 服务器的IP,例如192.168.1.2) -g -r [filename] (传输文件名,例如main) 命令完成
视频教程
正在加载视频.
至此,您已经完成了搭建tftp服务器和测试tftp的整个过程。如果您有任何疑问,请在下方留言。
#科技青年#
参考:
如何在Linux系统上手动安装arm-linux-gcc交叉编译工具
标题:linux做嵌入式,嵌入式linux web服务器搭建
链接:https://www.7kxz.com/news/gl/23170.html
版权:文章转载自网络,如有侵权,请联系删除!