嵌入式环境搭建之zmodem

时间:2024-03-21 19:30:48

什么是zmodem

  在我们安装完sshd服务过后,我们应该已经具备了远程登陆服务器的能力,那么在实际开发中,我们并不是只需要远程登陆开发主机就足够的。

嵌入式环境搭建之zmodem

如图,因为我们在实际开发中经常会遇到这样的问题,图中红色圆圈代表Windows主机,它比较强大的ID应用工具进行编辑软件,也就是说编辑我们的原文件,而这样的原文件可能说Windows也许会运行不了,比如说我们的Linux内核,它可能是必须要在Linux环境下才能编译的。所以这种情况下,我们就需要把我们的文件上传到我们的开发主机上也就是我们的Linux系统上图由右上方四边形表示。然后在Linux系统中我们进行所谓的编译最后升成二进制文件,然而利用这样的文件我们还需要把这样的文件下载到我们的主机上,那么这台主机也就是Windows系统最终可能会通过debug调制器下载到我们的arm开发板上也就是图中下面的那个四方形。

整个流程我们可以看到嵌入式开发不仅仅需要客户机登录到服务器上进行开发,同时也需要客户机跟服务器之间的文件传递关系,也就是说文件的上传和下载的功能。所以这样来看,sshd这个服务只是简单的解决了如何让客户机去登录到服务器去使用的一种方案,但是我们上传和下载的功能这个协议并没有解决。

所以下面我们就来看一下,我们如何解决我们的客户跟服务器文件上传和下载的功能。下面我们来介绍一下既然我们的secureCRT通过sshd这样一个服务能够把我们的字符(比如说ls等这样的字符串)发送给我们的主机,同时主机也能把相应的返回结果也通过字符串的形式传递给secureCRT这个软件,那自然而然我们的数据已经建立起连接了,只是现在的数据是一个普通的字符串并不是我们想象的文件操作,所以我们只有在这样的传递基础之上增加一些其他的选项或其他的功能。

那么我们是不是能够把字符串转换成文件的传递呢!所以在secureCRT中集成了一个zmodem协议,当然zmodem是现在已经升级比较多版本比较新的协议。最早还有xmodem和ymodem协议,现在我们利用zmodem协议它的速度会快一点,所以我们主要考虑zmodem。

那么什么是zmodem呢?其实就是我们文件上传下载中引入的一个协议要求,只要我们的软件客户端支持这样的zmodem,那我们的服务器也支持zmodem协议,那这样我们就可以通过zmodem这样一个协议上传或下载文件了。

zmodem怎么使用

先进入secureCRT这个软件,在这个软件登录之前先说明一点,就是在实际使用中我们很难通过root这个用户去登录,所以我们建议大家在登录的时候点击一下属性在ssh2中将默认登录名root改为普通用户(自己的linux系统名),就是尽量大家不要用root去操作因为用root去操作有可能在平时开发中没有什么关系但是在企业开发中我们很难有root这样的一个权限,所以我们还是熟悉一下普通用户是如何操作Linux的。然后点击ok开始链接进入如下图:

嵌入式环境搭建之zmodem

下面我们要想怎么用到这个软件中的Upload和Download功能呢,在secureCRT软件它已经把我们的zmodem协议集成进去了,如图在options这个选项槽中有一个会话选项:

嵌入式环境搭建之zmodem

如图,会话选择中具备很多功能,然后我们看最下面那个X/Y/Zmodem,这个东西中我们会发现Upload和Download就出来了,说明我们的zmodem协议其实就已经具备一种上下的感觉,而上下中其实默认就是文件中的传递也就是说它可以把我们的东西上传到Upload这个目录下也可以把东西下载到Download这个目录下,当然如果说我们在实际开发中如果要利用Upload和Download的功能,我们最好把这样的目录通过这样的选项去修改成你的工作目录,然后点击ok。

Ubuntu支持zmodem吗

 

首先给大家介绍两个命令一个叫rz一个叫sz,这两个命令其实是我们Ubuntu系统给我们提供利用zmodem协议这样做成一个上传下载的功能,然后我们来看一下怎么去用,当然首先来说你要想用这个软件要先看Ubuntu是否安装了。然后我们先敲一下看有没有rz 这样的命令然后点击回车。(因为我的电脑已经安装了,所以下面口述)

一般才安的新系统,点击rz回车后,很显然没有安装,那么我们需要安装它。至于安装需要用什么命令,图上也有提示,因为我现在是普通用户必须通过sudo把我这个用户升级成root用户或者是更高权限的用户才能安装。因为我们相当于安装软件就相当于改变了一些系统的功能选项,所以我们现在必须要以root用户的形式升级过来。然后敲命令sudo apt-get install lrzsz  这个命令是非常好记的。然后点击回车键,这个时候会提示我们输入用户名密码,那么这个时候我们的密码就是管理员的。下面它开始安装,这个时候它可能会有些提示,我们按照它的默认选项进行安装就可以。安装完成后我们来看一下它的效果,当我在敲rz的时候,首先我们说一下r的概念是receive,那是谁receive呢?记住,既然是Ubuntu敲rz那其意义是说它想通过zmodem搜什么协议所以我们直接点击回车键看它的效果。

嵌入式环境搭建之zmodem

如上图,直接回车后我们会发现它马上就出现了一个弹框,也就是说这个时候它希望让我们选择哪个文件将要用zmodem发送,但是明明是rz怎么会发送呢?那我来理解一下,也就是说我的Ubuntu是想搜,那很显然是我们刚才设置Windows的目录,那Windows的目录我们想办法把文件给传过去就可以了,那怎么传呢?我们在D盘随便建一个比如说123.txt这样一个文件然后点击add加入传输列表中再点击ok出现如下图:

嵌入式环境搭建之zmodem

如上图,大家可以看出这四个字节和选项也可以看出它没有错误和它用了多少时间和每秒传输的速率还有传了多少个,因为abc这个文件比较小,当然没关系因为我们说那个选框很显然是Windows的浏览器,你可以随意的去选择你需要把哪儿文件给上传上来,上传在哪里呢,其实就在这个目录下,比如说我们点击ls,这个地方多了一个123.txt这个文件,有的说如果切换到根目录下再次进行rz那就是接受到当前目录下,然后我们还是回到我们现在的目录,那么123.txt是怎么看呢,点击cat 123.txt里面是个1234因为我没有回车这个文件比较特殊当时设计的时候没有回车,所以我们可以看到我们的提示符跟1234是挨在一起的,这样来说我们相当于把Windows里的东西传递到Ubuntu里面,然后我们看看Windows里的abc是不是这个东西。

然后我们打开D盘相关目录(就是刚才设置的unload)然后我们看一下123,我们可以看到里面就是1234,这样来说相当于我们可以通过rz这个命令相当于我们Ubuntu或者服务器主机就可以接收Windows下开发主机的任意文件,以上就是rz的功能。还有一个sz的功能,sz很显然是发送什么东西,要想发送一个东西,有个问题是发哪儿命令肯定是sz后面跟一个东西,至于发哪儿还是在之前那个会话选项里,点击X/Y/Zmodem里面的Download,因为发给谁是下载的意思下到那个目录而上传是我们默认从哪个目录去取东西所以当然我们可以通过鼠标的上一步去选择其他,但是下载没办法,下载一般来说是默认的这个目录,一般是改不了的。我们就不改了还是按照默认的目录,把它复制一下然后进入之前的目录:

嵌入式环境搭建之zmodem

如图,点到上方目录,Ctrl+v一下这样我们就进入Download的目录下,Download的目录里可能有个abc我们不用管,我们需要重新下一个东西,这时候我们可以利用vi去新建一个其他的文件,比如说我们现在输入命令:vi text.txt 建立这样一个文件,这个文件里我们可以随便写一些比如text rocky 保存退出,然后这样我们就有了text.txt这样的一个文件也就是说在Linux下我们已经生成了这样一个新文件,我们现在要把它放在Windows,让Windows进行第二次处理。那应该怎么做呢?输入sz 后面就跟这个文件名字(text.txt)然后我们回车看一下如下图:

嵌入式环境搭建之zmodem

如图,我们会发现它也是个百分之百的状态。下面我们来看看Windows目录有没有这个文件。

嵌入式环境搭建之zmodem

如上图,很显然,这个地方出现text.txt 然后我们双击看一下就是刚才我们敲的12131,所以通过这样的命令我们算是已经完成上传下载文件的功能,而这个功能恰好就是zmodem协议里所具备的功能,所以对于zmodem协议一般情况下,我们的Ubuntu需要安装刚才说的那个库,而Windows也需要在secureCRT这个集成客户端里安装,因为secureCRT这个软件已经集成了,所以我们也可以不装了,所以让大家用secureCRT这个软件进行远程登录也有它的道理,因为它的集成功能比较多,我们在开发中使用起来也比较方便。

嵌入式环境搭建之zmodem

 

如图,所以,通过zmodem这个软件的介绍我们以后不管在什么环境下开发就比如图中红色四边形为一台服务器圆圈是Windows机器。即使服务器在很远的地方,我们只有在Windows的机器上用secureCRT这个软件去登录,就可以利用它已经集成好的zmodem这样的一个客户端或服务端像服务器去发送或接收文件。

 

所以,这样通过这样的命令安装,我们以后的发送接收应该是非常方便的。