使用 ascii-xfr 传输 rz 程序
最近继续折腾一些嵌入式设备,需要通过 UART 传输一些文件。一般来说直接使用 rz/sz 即可,但不幸的是 rz applet 并没有编译进这个设备的 busybox。同时由于一些蛋疼的原因,我们也不能重新烧写设备的 rootfs 镜像或者是从网络安装,那么就只能自己想办法解决咯……
基本思路是自己静态编译一份 rz 程序,然后从串口发送给嵌入式设备,然后再利用这个 rz 接收 sz。然后就能双向发送文件了。
设备上至少需要有cat
命令和base64 -d
。如果没有base64可以试试openssl base64 -d
。如果还是没有那这篇文章的方法就不适用于你了。另外在设备上最好还要有一个 gzip 之类的压缩程序,可以显著缩短初次传输时间,以及一个 checksum 程序用于检查。我这里用了xz
和md5sum
。
在主机上你需要有ascii-xfr
程序。
编译 rz
你需要有一个能用的工具链,我的设备是 AArch64,直接使用了源里的 gcc。
1 | # 下载代码 |
如果你有对应设备的工具链也可以动态编译,这样编译出来的文件会更小。
使用 ascii-xfr 发送 rz
我这里使用picocom
连接设备,其他程序比如minicom
,screen
请自行查阅手册寻找使用方法。
1 | # 接上文 |
使用 rz 接收 sz
有经验的朋友到这里可以直接右上角退出了,不过我还是记录一下做个备忘。
1 | # 按 Ctrl-A Ctrl-X 退出 picocom,然后再重新连接。 |