Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2476497
  • 博文数量: 293
  • 博客积分: 2660
  • 博客等级: 少校
  • 技术积分: 3632
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 17:50
文章分类

全部博文(293)

文章存档

2015年(13)

2014年(58)

2013年(73)

2012年(25)

2011年(30)

2010年(86)

2009年(8)

分类: 虚拟化

2013-12-22 20:25:09

http://cnblogs.com/image-eye/archive/2011/08/16/2141586.html

先前在玩GEC2410时,有个想法,就是在linux下进行调试,由于目标板上电或复位时会发送信息给PC机的串口,这已在windows下实现过,于是想在linux下看看效果,可是当时我在linux下设好串口后,发现一点反应都没有,当时以为是自己没有安装交叉编译环境,于是昨天晚上把嵌入式 linux下的交叉编译环境装好后,心想这下应该可以拉,没想到我上电目标板,linux下的串口一直没有反应,郁闷,怎么这样呢,既然不适交叉编译环境的原因,总得有个原因吧,于是我上网搜,先前我也够笨的,怎么就不知道上网查呢,呵呵,原来是我没有把VMware的串口打开,呵呵,马上关机[关虚拟机下的系统],在VM->Setting......->点击ADD,把串口加进来,呵呵设置时尽量不要用自动检测,要选中串口,反正即使你的虚拟系统启动后可以随便改的,同时要把串口设为启动时就连接拉,这样,linux下的串口在目标板上电或复位后收到和windows下一样的数据,哈哈,爽!

 

环境:


宿主机:Windows7   VMware7.1


虚拟机:Fedora12


 


VMware的串口:


一个虚拟机最多可以添加四个虚拟串口,有如下几个方法配置虚拟串口:


连接一个虚拟串口到宿主机的物理串口。


连接一个虚拟串口到宿主机上的一个文件。


在两个虚拟机之间建立一个直接的连接,或者将虚拟机的串口与宿主机的应用程序连接。


 


为虚拟机添加串口


首先要保证虚拟机处于关机(power off)状态,选择菜单中的VM -> Settings... ,在Hardware标签页中点击Add按钮,在Add Hardware Wizard对话框中选择Serial Port,点击next,如图:



 


 


然后要选择Serial port type,共有三种类型:



1.如果你要使用宿主机的物理串口设备,选择Use physical serial port on the host,然后点击next,选择你要使用的物理串口即可。


 


2.如果想要将串口数据输出到一个文件,选择 Output to file,然后next,选择输出文件,该文件是一个txt文本文件。启动虚拟机后做个测试,在命令行中执行:


echo "asdf" >> /dev/ttyS0,


然后打开输出文件,即可看到串口输出的字符串asdf。


 


3.使用named pipe可以实现两个虚拟机或虚拟机与宿主机的应用程序通过串口连接。选择Output to named pipe,点击next,进入如下界面:



输入管道名,对于windows宿主机,管道名格式为 //./pipe/  ,必须以 //./pipe/开头


输出调试信息到宿主机上的应用程序:


第一个下拉菜单选择This end is the server或This end isthe client,在第二个下拉菜单选择The other end is an application


输出调试信息到另一个虚拟机:


第一个下拉菜单选择This end is the server,第二个下拉菜单选择The other end is an application。


 






将两个虚拟机用串口连接:


在虚拟机上安装Fedora12和ubuntu10.04,为两个虚拟机添加串口,


Fedora12的串口设置为:



Ubuntu10.04的串口设置为:



这样设置后Fedora的串口为serial port 1,设备名为ttyS0,ubuntu的串口为serial port 2,设备名为ttyS1


测试:


在Fedora下执行:


cat < /dev/ttyS0


在ubuntu下执行:


echo hello > /dev/ttyS1


在Fedora里可以看到收到的字符串hello,说明ubuntu发送和Fedora接收正常,可以互换后做同样的测试。


 

语 法
statserial[必要参数][设备]

功 能
statserial 命令:显示各个接脚的状态,常用来判断串口是否正常,Ctrl+C退出
类似命令: stat

相似命令: linux命令

执行权限: 超级用户 普通用户

命令属性: 网络通讯



参数

必要参数
-n 不循环显示
-d 十进制显示
-x 十六进制显示

选择参数





范例


范例1:显示串口状态

[root@linux ~]# statserial /dev/tty1

范例2:只显示一次串口状态

[root@linux ~]# statserial -n /dev/tty1

阅读(2672) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~