在ZEDBOARD + PETALINUX环境中使用TFTP传输文件【之一】----TFTP客户端的使用方法

本文详细介绍了如何在ZEDBOARD硬件上利用PETALINUX2019.1系统内置的TFTP客户端进行文件传输。TFTP基于UDP协议,操作简单,适用于局域网内的快速文件交换。文章提供了具体命令示例,展示了从服务器获取文件及上传文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

硬件:ZEDBOARD 或者兼容板子 (可以从SYSCLK.TAOBAO.COM购买便宜实用的国产板,本人出品技术支持)。

嵌入式系统:PETALINUX 2019.1 使用 ZEDBOARD板级支持包编译出来的LINUX内核以及文件系统。

 

PETALINUX 的系统文件里面包含了TFTP客户端。这是一个基于UDP协议的FTP类型的文件传输协议。跟标准的FTP相比,他不不使用复杂的TCP协议,而是使用UDP协议实现文件传输。优点是简单,确定就是如果比较复杂的跨局域网络的环境,稳定性以及速度可能不如FTP。

我们先看一下TFTP的用法,不用搜文档,直接在串口终端输入

我们看到这个TFTP的客户端的程序已经简单到不能再简单了。

-l 其中l是英文local (本地)的意思。

-r其中r是英文remote(远程端)的意思。

-g其中g是英文get(获取)的意思。

-p其中p是英文put(放置)的意思。

我简答试验了一下,得到了从服务器192.168.1.102服务器的69号端口获取文件a.bin 保存为当前目录下b.bin文件的命令 

  tftp  -r  /a.bin -l ./b.bin -g 192.168.1.102:69

这里-r 是指示服务器端的文件名,是位于根文件下面的a.bin

这里-l是指示本地的文件名,是位于当前目录下的b.bin。

而最后部分是ip地址和udp端口号.

这里-g是指示将远端文件获取下来保存为本地文件名。

如果是-p是指示将本地文件放置在远端服务器上。所以下面命令实现将本地b.bin传输到tftp服务器目录上保存为b.bin文件。

  tftp  -r  /a.bin -l ./b.bin -g 192.168.1.102:69

这里我们看到tftp是一句命令实现的文件传输,不像基于TCP协议的FTP协议。首先要登录上,之后通过对话发命令。传输完毕还要登出。因此看TFTP协议非常简单易用。

 

 

 

<think>好的,用户的问题是关于在PetaLinux构建过程中被Ctrl+C中断后,如何清理遗留的文件。我需要先理解PetaLinux的构建机制和相关清理命令。根据用户提供的引用,特别是引用[1]和[2],里面提到了使用`petalinux-build -x distclean`来彻底清理项目,包括临时文件和sstate缓存。此外,引用[2]提到修改Makefile来清空某些编译目标的命令,这可能与部分编译残留有关。 用户可能已经尝试过常规的清理命令,但中断后可能仍有残留,所以需要更彻底的清理步骤。除了标准的distclean,可能还需要手动删除特定目录,比如build和components,因为中断可能导致这些目录中的文件不完整。另外,用户提供的引用[3]中提到修改sstate缓存路径和网络设置,这也提示可能需要检查或清理sstate缓存。 另外,用户提到中断发生在rootfs编译阶段,可能需要特别处理rootfs相关的目录,比如build/linux/rootfs下的临时文件。同时,确保后续构建时不从缓存恢复有问题的文件,可能需要强制重新下载或使用干净的环境。最后,建议用户未来使用screen或nohup防止中断,这也是常见的做法,避免类似问题再次发生。 需要将这些步骤整理成清晰的中文回答,按照用户要求的格式,分步骤说明,并正确引用提供的参考资料。同时生成相关问题,帮助用户进一步解决可能遇到的类似问题。</think>### 清理因Ctrl+C中断PetaLinux构建的残留文件 #### 1. 使用`distclean`彻底清理项目 执行以下命令可删除构建过程中生成的临时文件(如`tmp/`)和sstate缓存[^1]: ```bash $ petalinux-build -x distclean ``` 此操作会将项目恢复到初始状态,但会保留配置文件(如`project-spec/config`)。 #### 2. 手动清理残留目录 若残留文件仍存在,需手动删除以下目录: - **`build/`**:包含编译生成的中间文件和配置缓存。 - **`components/`**:可能包含未完整下载或编译的组件文件。 例如: ```bash $ rm -rf build/ components/ ``` #### 3. 检查sstate缓存 若配置中设置了共享sstate缓存(如引用[3]中的`SSTATE_MIRRORS`),需清理本地缓存路径: ```bash $ rm -rf /home/xx/sstate_package_for_petalinux/arm/* ``` #### 4. 修复特定构建目标残留 若中断发生在驱动编译阶段(如`8812au.ko`),可能需要修改对应Makefile的清理逻辑(如引用[2]中的`clean`目标),然后重新执行: ```bash $ petalinux-build -c kernel -x distclean ``` #### 5. 强制重新构建 完成清理后,使用以下命令强制重新下载依赖并构建: ```bash $ petalinux-build --force ``` --- ### 注意事项 - **网络中断问题**:若构建依赖在线资源,确保`BB_NO_NETWORK = "0"`(参考引用[3])。 - **防止中断**:建议通过`screen`或`nohup`运行长时间构建任务。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值