嵌入式平台快速开发-Tftp 服务器搭建与配置
写在开头
经常在嵌入式开发板做研发的人都知道,在编译机编译出产物后,如何在开发板上使用是一个比较繁琐的问题,一个比较简单易行的方法是准备一个 SD 卡,将内容通过读卡器写到 SD 卡里,然后插入到开发板上使用。
这样的流程虽然很简单易行,但对 SD 卡的反复拔插对 SD 插槽寿命是一个极大的考验。且如果需要在短期内依次做出大量的修改,反复拷贝/插入SD卡也是一种折磨的体验。
本文就是为了解决这个问题,通过在主机建立 Tftp 服务器,用网线连接开发板与主机,每次启动时开发板可以直接下载主机的编译产物来使用。
物理配置
使用网线将 PC 与 开发板连在一起。
PC 配置
- 主机的版本 Ubuntu 22.04
- 安装 TFTP 服务器软件包
1
2sudo apt-get update
sudo apt-get install tftpd-hpa tftp-hpa - 创建 TFTP 根目录并设置权限,这里以在用户目录下 TFTP 目录为例。
1
2
3mkdir -p ~/tftp
sudo chown -R $USER:$USER ~/tftp
sudo chmod -R 755 ~/tftp 编辑 tftpd-hpa 配置文件,使用
sudo vim /etc/default/tftpd-hpa
打开。
将其中内容修改如下:1
2
3
4
5
6# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/<your-username>/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"将
<your-username>
替换为实际用户名。- 启动/重启 TFTP 服务:
sudo systemctl restart tftpd-hpa
- 测试 TFTP 服务器是否正常工作: 若显示 “TFTP Server Test”,则 TFTP 服务器工作正常。
1
2
3
4
5echo "TFTP Server Test" > ~/tftp/testfile.txt
tftp localhost
get testfile.txt
quit
cat testfile.txt - 配置主机对应的有线网卡,IP 可以随意不要和本机的上网 IP 撞了即可,这里给一个样例:ip:192.168.137.2, netmask: 255.255.255.0, gateway: 192.168.137.1。
至于怎么配置,如果是图形界面版的 Ubuntu,那很简单,在设置里的网络界面配置即可。
如果没有图形界面,在 Shell 可以如下配置:网卡名称使用1
2ifconfig <网卡名称> 192.168.137.2 netmask 255.255.255.0
route add default gw 192.168.137.1ifconfig
来查询。
Uboot 配置
- 设置服务器地址与开发板地址
1
2setenv serverip 192.168.137.2
setenv ipaddr 192.168.137.3 - 下载文件并加载到指定地址 文件名的起始地址为之前设置的
1
tftp <加载地址> ${serverip}:<文件名>;
~/tftp
文件夹。
最终效果
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ForeverYolo的博客!
评论