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

如果使用的虚拟机是VirtualBox:

如果使用的虚拟机是Vmware:

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

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

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

安装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文件里,启动后就不用手动敲这些命令配置了。 

为了避免每次插拔玩USB转串口线后,下次再插的话系统自动创建的设备节点跟前一次不同,需要修改配置文件的问题,我写了一个简单的脚本。将这个脚本赋予科科执行权限,在使用kermit的时候,执行我这个脚本就可以了。

下载地址:http://files.cnblogs.com/files/pengdonglin137/mykermit.tar.gz

下面是脚本内容:

#!/bin/bash

i=
uart_list=""
count= for i in {..}
do
if [ -e /dev/ttyUSB${i} ]; then
uart_list="${uart_list} /dev/ttyUSB${i}"
let count++
fi
done if [ $count -ge ]; then
select Port in ${uart_list}
do
break
done
uart_list=`echo ${Port}`
else
uart_list=`echo ${uart_list}`
fi cat > ~/.mykermrc <<EOF
set line ${uart_list}
set speed
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack
set send pack
set window
c
EOF if [ ! -w ${uart_list} ]; then
sudo chmod a+r+w ${uart_list}
fi kermit

注:建议不要在家目录下创建 .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协议。 

最新文章

  1. JAVA编程思想(第四版)学习笔记----4.8 switch(知识点已更新)
  2. java四种内部类
  3. 【CodeVS 2822】爱在心中
  4. 快速界面:QML。
  5. Mac 如果一定要写个锁屏程序的话就这样
  6. Codeforces Round #209 (Div. 2)
  7. 【转】Notepad++插件NppProject发布
  8. rman全库恢复到不同主机,不同实例名,不同目录下
  9. boost::asio 连接管理11 如何关闭连接
  10. 我拖拖拖--H5拖放API基础篇
  11. Tuxedo:Tuxedo支持的分布式通信方式
  12. Redis的复制是如何实现的?
  13. python实现获取身份证号码的方法
  14. 深度学习框架caffe/CNTK/Tensorflow/Theano/Torch的对比
  15. 【tp5】ThinkCMF5框架,配置使其支持不同终端PC/WAP/Wechat能加载不同配置和视图
  16. [UE4]机器人射击逻辑行为树
  17. jQuery文档就绪事件
  18. Nmap扫描教程之网络基础服务DHCP服务类
  19. 软件申请获取root权限
  20. python 模块被引用多次但是里面的全局表达式总共只会执行一次

热门文章

  1. abstract 与interface区别
  2. 【LuoguP1169 bzoj1057】[ZJOI2007]棋盘制作
  3. [转]如何整理Linux磁盘碎片,竟与Windows的方式大不同 返回操作系统首页
  4. urlparse获取url后面的参数
  5. POJ1236 (强连通分量缩点求入度为0和出度为0的分量个数)
  6. pandas 读写sql数据库
  7. go语言中的json
  8. Tortoise svn 冲突解决主要办法
  9. 计算器(丑陋版 and 加法专用版)
  10. ORM-老师信息系统