Vmware+Virtualbox+Ubuntu+debian+USB转串口+kermit

当前的环境是:在Win7笔记本主机上安装VirtualBox+Ubuntu12_04,串口使用USB转串口

如果使用的虚拟机是VirtualBox:

 

Vmware+Virtualbox+Ubuntu+debian+USB转串口+kermit_第1张图片

 

如果使用的虚拟机是Vmware:

Vmware+Virtualbox+Ubuntu+debian+USB转串口+kermit_第2张图片

 

执行这步后,主机的设备管理器下的COM设备会自动消失,同时会自动在虚拟机的/dev下创建一个名为ttyUSB0或者ttyUSB1(可以自己到/dev下去看一下到底是ttyUSB0还是ttyUSB1)的设备结点(注:/dev/ttyUSB0表示使用usb转串口的连接线接开发板,如果是只用用串口线连接主机的话,需要设置为/dev/ttyS0)。

如果不想在虚拟机下面使用串口了,可以先将kermit退出,再将COM设备从虚拟机下面转到主机下面,方法还是按照上面那两张截图的步骤,再点击一下即可(虚拟机的/dev下面的ttyUSBx会自动消失,主机的设备管理器中会自动出现COM设备)。

Vmware可以设置虚拟机上电时自动将主机的COM设备导到虚拟机下:

Vmware+Virtualbox+Ubuntu+debian+USB转串口+kermit_第3张图片

安装kermit:

sudo apt-get install ckermit

配置:

在家目录下创建名为 .kermrc的文件,输入如下内容:

set line /dev/ttyUSB0

set speed 115200

set carrier-watch off

set handshake none

set flow-control none

robust

set file type bin

set file name lit

set rec pack 1000

set send pack 1000

set window 5

c

这里,kermit在启动时会查找~/.kermrc文件,调用里面的命令来初始化kermit。只要将你所需的命令写到~/.kermrc文件里,启动后就不用手动敲这些命令配置了。 

 

注:建议不要在家目录下创建 .kermrc配置文件,而是去修改/etc/kermit/kermrc配置文件,原因如下:

因为在/dev下面的ttyS0以及ttyUSB0的权限都是他组用户没有任何权限,如下所示:

 

如果要运行kermit,在不修改这两个设备的权限管理时,必须使用sudo,即以root身份运行,如果以root身份运行,kermit会到/root目录下去找 .kermrc文件,为了省事,我们直接修改/etc/kermit/kermrc配置文件配置文件(将上面的配置粘贴到/etc/kermit/kermrc配置文件中),在运行时采用命令sudo kermit。

*运行的时候直接进入命令模式: 

$sudo kermit 

这里没-c就进入默认的命令模式了(需要修改配置文件,把最后一行的c去掉)。 

 

*运行的时候,直接进入非命令模式: 

$sudo kermit -c 

这里,加上-c表示进入非命令模式,相当于在命令模式下面运行了connect或者c.在连接好了板子之后,这样就可以连接到串口上面了,当然不要忘记将设备打开,否则你敲入东西的时候是没有反应的。 (注意:在配置文件的最后一行我加了一个c,即如果执行sudo kermit 时,会自动进行连接,跟执行sudo kermit -c是同样的效果)

 

*进入命令模式,步骤如下: 

1)输入"[Ctrl]\". 

2)输入"c". 

这样进入kermit的命令模式可以进行各种命令(支持TAB补全),例如HELP可以查看帮助,输入"?"列出所有命令。 

 

*从命令模式退回com终端: 

输入"connect". 

或输入"c". 

这样又切换会了串口界面(例如在uboot下面)。 

 

*在命令模式下查看当前主机目录文件: 

输入"ls". 

 

*在命令模式下查看当前路径: 

输入"pwd". 

 

*在命令模式下进入指定的主机目录/home/test: 

输入"cd /home/test". 

 

*传输文件file到板子的flash上面: 

输入"send file". 

这里,在命令行下的发送命令就是send。如果之前在Uboot下使用了loadb 0xc0008000进入的命令模式,那么发送的文件将会被放在了这个地址上面。 

 

*退出串口程序: 

输入"exit". 

当然,这里指的是在命令行下面。 

 

[其他] 

*一个简单的完整例子: 

启动板子uboot之后,我想传一个文件/root/test.sh到地址0xc0008000 

步骤如下: 

1)$kermit -c 

这样,就连接到串口上面了。 

2)输入"loadb 0xc0008000" 

3)输入"[Ctrl]\" 

4)输入"c" 

这样进入命令模式. 

5)输入"send /root/test.sh" 

6)输入"connect". 

这样就传完了。ckermit好像只支持kermit协议。 

你可能感兴趣的:(VirtualBox)