‘壹’ 如何配置VirtualBox中的虚拟机的串口
1、VirtualBox的设置,
端口编号是指在VirtualBox中的WinXP中串口的符号;
端口模式选择Host Device,表示VirtualBox和主机Ubuntu共用同一个物理串口;
端口位置/dev/ttyS0表示虚实共用的物理端口在Host OS Ubuntu中的设备号
———这样VirtualBox中的端口1就成功设定了
2、 进入Guest OS WinXP后的动作:
(1)虽然在VirtualBox中已经为Guest OS WinXp 设定了串口设备,但是进入WinXP后却无法在设备管理器中看见,于是,进入控制面板-->添加硬件,选择 “是,我已经连接了此硬件” --> "添加新的硬件设备" --> "搜索并自动安装硬件",有时这样即可自动检测出COM1并安装;
(2)如果此处并未自动搜索出COM设备,则需要手动选择“端口(com和LPT)”-->"标准端口类型"-->"通讯端口",不过这样不会得到COM1而是COM3设备,并且没有正确地被驱动; 在设备管理器中,右键选择COM3-->属性-->资源-->手动配置,这里其实无须改动什么,直接确定即可,然后系统会提示重启,重启后,COM3就能构正常使用了;
重启后,如果不喜欢COM3而仍然想用COM1,此时也很容易了,设备管理器中卸载COM3设备,然后重复上述(1)的过程,肯定会自动检测出COM1。
这样,就可以在VirtualBox中和主机一样的直接正常使用物理串口了~~~~~~
-
此文,目的在于,将VirtualBox官网中,关于如何配置串口方面的配置的英文解释:
Serial ports
翻译为中文,并且截图演示,如何对应的去配置。
翻译之前,写截个图,说明一下,对于普通的VirtualBox中的虚拟机,默认配置情况下,是没有开启对应的串口的,其配置对应的是这样的:
(此处以VirtualBox中的某个XP虚拟机为例)
关于VirtualBox中的虚拟机,为何还需要使用到串口的部分,就不翻译了。
直接翻译,和配置串口有关的内容:
配置串口的方式
可以通过VirtualBox的图形界面或者命令行工具VBoxManage去配置对应的串口。
图形界面:就是上述截图中的 虚拟机配置->串口->端口1,直接去设置即可;
VBoxManage:此处不多解释,有兴趣的自己去看:VBoxManage modifyvm,对应所需工具去这里下载:VMWare Serial Line Gateway
串口数目的限制
每个虚拟机,最多可以支持2个串口,即上述截图中的,端口1,和端口2.
由于多数人都用不到串口,所以默认情况下,两个端口都是没有开启的。
配置串口的步骤
设置串口编号
即,用哪个COM。
默认情况下,有4种,分别是:
COM1: I/O base 0x3F8, IRQ 4
COM2: I/O base 0x2F8, IRQ 3
COM3: I/O base 0x3E8, IRQ 4
COM4: I/O base 0x2E8, IRQ 3
对应着,图形界面中的,端口编号:
设置端口的类型(模式)
目前支持4种模式:
未连接
设置成未连接,那么虚拟机内看到就是,有串口,但是物理上没有连接。
对应设置最简单了:
主机管道
把串口设置成主机上的一个管道pipe(pipe是个软件上的概念)
如何设置:
Windows系统中:名字必须为
\\.\pipe\<name>
其中name自己随便起一个(当然,应该起一个,和你的虚拟机所对应的,有意义的名字)
Mac/Linux/Soloris:本地域内的一个socket(local domain socket)。同时,需要保证虚拟机有对应的访问权限。其中比较常用的是 /tmp,然后再用对应的工具,比如socat去管理和操作
此处,即可如下设置:
主机设备
说白了就是,和你主机,对应着真实的电脑中的串口。
比如你电脑中有一个COM1,那么此处就是设置为对应的 主机设备,并且对应的端口写成
Windows系统:COM1
Linux类系统:类似于/dev/ttyS0
此处,对于XP虚拟机来说,就应该这样设置:
裸文件
将串口输出,放到一个文件里面去。
具体设置,就很简单了,比如我在对应的虚拟机磁盘.vdi路径下,随便创建一个文件:
D:\tmp\tmp_dev_root\virutalbox\xp\deepin_xp_com1.txt
然后再去设置为 裸文件,同时填上上述文件:
即可。
一些注意事项
很容易想到,如果使用了两个串口,那么最好不要设置为同一个COM,比如两个都设置为COM1,那么就容易有问题。因为两者共享同一个中断。
另外,如果用了两个串口,那么最好是COM1和COM2,而不是COM1和COM3,因为COM1和COM2。
其原理,从最开始的COM1到COM4的配置,即可看出。尽量使得两个串口,不要在资源使用上有冲突即可。
‘贰’ 如何在VirtualBox中直接使用本机物理串口
v方法/步骤1右击XP系统点击设置出现设置界面2首先我们先了解串口配置的方式可以通过VirtualBox的图形界面或者命令行工具VBoxManage去配置对应的串口。图形界面:就是上述截图中的虚拟机配置->串口->端口1,直接去设置即可;3串口数目的限制每个虚拟机,最多可以支持2个串口,即上述截图中的,端口1,和端口2.由于多数人都用不到串口,所以默认情况下,两个端口都是没有开启的。4配置串口的步骤即,用哪个COM。默认情况下,有4种,分别是:COM1:I/Obase0x3F8,IRQ4COM2:I/Obase0x2F8,IRQ3COM3:I/Obase0x3E8,IRQ4COM4:I/Obase0x2E8,IRQ3对应着,图形界面中的,端口编号:如下图所示5设置端口的类型(模式)目前支持4种模式:6如果我们设置成未连接,那么虚拟机内看到就是,有串口,但是物理上没有连接。7下拉选项找到主机管道把串口设置成主机上的一个管道pipe(pipe是个软件上的概念)Windows系统中:名字必须为\\.\pipe\(name表示一个名字可以随便)Mac/Linux/Soloris:本地域内的一个socket(localdomainsocket)。同时,需要保证虚拟机有对应的访问权限。其中比较常用的是/tmp,然后再用对应的工具,比如socat去管理和操作8向下拉找到主机设备主机设备说白了就是,和你主机,对应着真实的电脑中的串口。比如你电脑中有一个COM1,那么此处就是设置为对应的主机设备,并且对应的端口写成9继续下拉找到裸文件裸文件将串口输出,放到一个文件里面去。具体设置,就很简单了,比如我在对应的虚拟机磁盘.vdi路径下,随便创建一个文件:D:\tmp\tmp_dev_root\virutalbox\xp\deepin_xp_com1.txt然后再去设置为裸文件,同时填上上述文件:
‘叁’ vmware虚拟机如何使用串口
如何开启VMware串口
先前在玩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
‘肆’ 本人现在使用的是VM7,现在需要物理机和虚拟机之间通过串口通讯。
物理机有4个串口的话,把3和4交叉对等链接,
虚拟机
设置串口类型直接引用物理串口。
‘伍’ windows下Vmware虚拟机里的“232串口”怎么和本机232串口通信
配置一下虚拟机系统的配置文件
在选项卡中选中需要配置串口的虚拟机,再打开菜单栏-VM(虚拟机)-setting(设置)
在虚拟机配置窗口中,选中Serial Port(串口)-然后在右边栏的Connection(连接)中,点选Use physical serial port(使用物理串口),在其下拉列表中选择当前主板的串口就可以实现虚拟机直接使用主板串口了。
有个要注意的问题就是,最高波特率只能到9600波特率,再高就经常错误了。
‘陆’ 怎么实现在虚拟机实现对物理机的共享!
虚拟机和物理主机要共享文件的话,要分2步:
第1:在vmware workstation界面,先选择收藏夹里你要共享文件的那个虚拟机,再点右边的“编辑虚拟机设置”,再选择“常规”里的“共享文件夹”; 然后添加(会有向导)。根据提示设置好本地要共享的文件后(记得点确定,设置完后你还可以再看看,如果正确的话,你会在该界面看到共享文件夹的名字及路径)再启动虚拟机。
第2:在虚拟机系统里右键“我的电脑”,选择“映射网络驱动器”,在“文件夹”那选择“浏览”,这时候会出现画面“整个网络”;你选择“vmware shared folders”-----"\\.hosts"---"\\.host\shared folders",就能看到你开始在物理主机里共享的那个文件夹了,点击确定后你再打开“我的电脑”,就能看到映射的那个网络驱动器就是你的共享文件夹了。。。
‘柒’ 如何将物理机与虚拟机的串口相联
虚拟机的接口跟物理主机的是共享的
你的意思是虚拟机使用母机的串口吗?
安装vmtools工具就可以将所有的物理端口映射到虚拟机上
‘捌’ 虚拟机与主机用串口传输
看样子你windows是host linux是client, 但是我不明白为什么用com2 获取和发送内容。 因为你的client ttyS0 明显是第一个串口。
虚拟机设置串口 可以用pipe,文件或者物理串口。
你在host上访问虚拟串口的时候是和这些管道交互,或者你可以下载一个name pipe tcp proxy 把虚拟串口的内容重定向到 网络端口上 然后telnet访问 希望对你有所帮助!