Zmodem 最早是设计用来在串行连接(uart、rs232、rs485)上进行数据传输的,比如,在 minicom 下,我们就可以方便的用 Zmodem (说 sz 、rz 可能大家更熟悉)传输文件。只不过串口本身传输速度不快,文件大的话会让人有点崩溃。
没有彻底把笔记本装成 mint 前,在 windows 下都是用 secureCRT 来和板子进行通信的。secureCRT 下通过 ssh 连接开发板时, 可以方便的使用 Zmodem来进行文件的上传下载,但是,在 ubuntu 下似乎不是那么好实现。所以,也就一直在用 scp。
今天用腻了 scp,想恢复方便的 sz、rz,折腾了半天,终于找到了方法。
首先,mint(ubuntu、debian 类似)下需要安装下面两个包,都是官方包:
sudo apt-get install lszrz sudo apt-get install zssh
其中,zssh 提供了一个在当前 ssh 中连接中进行文件传输的“管道”,真正执行 Zmodem 传输的,还是 lszrz。当然,板子上也是要有 lszrz 包的,这需要自己交叉编译放上去。
1、 使用 zssh 替代 ssh 连接到目标系统,并登入:
[email protected] ~ $ zssh [email protected]Press ^@ (C-Space) to enter file transfer mode, then ? for help [email protected]‘s password: [[email protected] /]#
2、下载文件到本地。比如,我们想从目标系统下载 /www/leds.html 到本地:
[[email protected] /www]# ls images leds.cgi webcam.html index.html leds.html led-result.template mini2440.png [[email protected] /www]# sz leds.html ?B00000000000000 (此处,按 ctrl + @ 进入文件传输状态) zssh > rz Receiving: leds.html Bytes received: 4889/ 4889 BPS:646854 Transfer complete[[email protected] /www]#
在目标系统输入 sz (send in Zmodem)时,我们开启了文件发送,此处可能会有乱码,暂时不管;然后,按 [email protected] 进入文件传输模式,输入 rz 并回车进行文件下载,下载完成后,自动退出文件传输模式。 进入文件下载模式后,事实上,是进入了本机的一个终端,我们还可以使用常用命令行工具如ls,mkdir 等进行一些操作。另外,还有由 zssh 解析的如下工具:
3. 发送文件到目标系统。比如,我们要上传文件
[[email protected] /tmp]# ls qtembedded-0 usb3g.modemstatus [[email protected] /tmp]# (此处,按 ctrl + @ 进入文件传输状态) zssh > ls Audiobooks Documents Music Public temp Videos build Downloads Pictures refer Templates work Desktop leds.html Podcasts router usr zssh > cd /tmp/ zssh > ls dropbear-2016.74 matecorba-luo pcaptest_F pulse-vXbjEXNVREX3 dropbear-2016.74.tar.bz2 mintUpdate plugtmp ssh-oTlcUBNo1637 keyring-9RSy6J mozilla_luo0 pulse-PKdhtXMmr18n zssh > sz dropbear-2016.74.tar.bz2 Sending: dropbear-2016.74.tar.bz2 Bytes Sent:1622234 BPS:3780858 Transfer complete [[email protected] /tmp]# ls dropbear-2016.74.tar.bz2 qtembedded-0 usb3g.modemstatus [[email protected] /tmp]#
上面的操作中,我们直接按 [email protected] 进入文件传输模式,然后,在文件传输模式中,使用 cd 指令切换到本机的 /tmp/ 目录(dropbear-2016.74.tar.bz2 放在这里),然后输入 sz dropbear-2016.74.tar.bz2 并回车,自动完成传输。
that‘s all!