目录
对于开发板的环境来说,嵌入式系统和资源往往都大受限制,相对于一般Linux服务器使用的coreutils和Bash工具集,开发板往往是用更轻量级的Busybox来满足日常开发需求。BusyBox 包含了许多常用的命令行工具,如 ls
、grep
、find
、cp
、mv
等,以及一些网络工具和系统管理工具,当然本篇所介绍的tftp命令也包含其中,那要如何利用tftp实现开发板与Linux服务器的文件传输呢?以下开发板为君正T23,Busybox版本为1.33.1,服务器Ubuntu版本为20.04
一、WiFi连接
1、配置文件设定
首先利用以下指令编辑开发板的WiFi配置文件,这个文件用于配置 wpa_supplicant
守护进程,以便它能够连接到无线网络
vi /config/wpa_supplicant.conf_ #最后面确实有下划线.conf_
然后找到最下面的WiFi账号密码配置network部分进行修改
修改完后:wq进行保存并用cat指令进行查看验证
cat /config/wpa_supplicant.conf_ #查看修改情况
接着我们查看开发板的WiFi是否开启
ifconfig #查看网络配置信息
下图可以看出只有本地回环接口lo ,WiFi网络还未打开
2、无线网接口管理
利用以下指令打开开发板WiFi
ifconfig wlan0 up #启动WiFi,默认无线网接口为wlan0
ifconfig #查看网络配置
可以看到无线网wlan0
接口已经打开
然后用以下指令以守护进程模式启动 wpa_supplicant
来管理 wlan0
接口的无线连接,使用 nl80211
驱动,并从上面修改的配置文件读取无线网络的配置
wpa_supplicant -B -Dnl80211 -i wlan0 -c /config/wpa_supplicant.conf_
等它执行完后再用以下指令调用DHCP尝试自动获取网络配置
udhcpc -b -i wlan0 -n -s /config/udhcpc/default.script
当这两条指令执行完后,我们ifconfig就能看到配置好自动获取的ip地址了
也可以试着ping一下百度看看能不能连通
二、文件传输
1、远程服务器的准备
如果你服务器还没有安装tftp,那么可以用以下指令来安装
sudo apt install tftp
安装好后我们先查看一下tftp的配置文件
sudo cat /etc/default/tftpd-hpa
这里可以看到默认tftp文件存放地址,可以自行修改其他地方
对于开发板Busybox的tftp而言,他只能从服务器tftp的文件地址进行上传和下拉文件,也就是说我们服务器要发送给开发板的文件,必须先cp复制到该地址才能被开发板的tftp识别和传输。而且Busybox的tftp指令也与Bash的有所不同
2、tftp的使用
在开发板输入tftp就会直接显示tftp指令的用法
将服务器要传输的文件放到tftp指定地址后,我们就可以文件传输了
当我们要下拉文件,指令为
tftp -g ipadr -r dir #ipadr替换为相应IP地址,dir替换为相应文件名
当我们要上传文件时,指令为
tftp -p ipadr -l dir #ipadr替换为相应IP地址,dir替换为相应文件名
完美( •̀ ω •́ )✧,对于Bash上的tftp指令用法,我这里便不介绍了,有兴趣可以去看看这位大佬的文章https://blog.youkuaiyun.com/u012964600/article/details/135693068
三、总结
本篇主要介绍了如何利用tftp实现开发板与Linux服务器的文件传输。其中要注意的点便是wpa_supplicant
守护进程配置文件的下划线不要忘了,当然还有别输错了其中的WiFi账号密码,其次便是Busybox的tftp语法与Bash上的语法有些差异,用习惯Bash的tftp可能需要时间适应一下。最后留个问题,如何只用服务器的tftp对开发板进行文件传输呢?( ̄_, ̄ )