主机与vmware虚拟客户机的串口通讯
- 格式:pdf
- 大小:218.34 KB
- 文档页数:6
VMware是很受欢迎的虚拟机,在我们平时的工作中需要经常用到,此文简单总结了平时使用的三种网络配置方式,具体的原理没有去深究。
虚拟机系统安装的是Linux系统。
首先,我们在本机上查看所有网络配置连接,使用命令:ipconfigJava代码isconnected33.34.Ethernet adapter VirtualBox Host-Only Network:35.36. Connection-specific DNS Suffix . :37. IP Address. . . . . . . . . . . . : 192.168.154.138. Subnet Mask . . . . . . . . . . . : 255.255.255.039. Default Gateway . . . . . . . . . :40.41.C:\Documents and Settings\user>Microsoft Windows XP [版本5.1.2600](C) 版权所有1985-2001 Microsoft Corp.C:\Documents and Settings\user>ipconfigWindows IP ConfigurationEthernet adapter VMware Network Adapter VMnet8:Connection-specific DNS Suffix . :IP Address. . . . . . . . . . . . : 192.168.74.1Subnet Mask . . . . . . . . . . . : 255.255.255.0Default Gateway . . . . . . . . . :Ethernet adapter VMware Network Adapter VMnet1:Connection-specific DNS Suffix . :IP Address. . . . . . . . . . . . : 192.168.2.1Subnet Mask . . . . . . . . . . . : 255.255.255.0Default Gateway . . . . . . . . . :Ethernet adapter 无线网络连接:Connection-specific DNS Suffix . :IP Address. . . . . . . . . . . . : 192.168.1.209Subnet Mask . . . . . . . . . . . : 255.255.255.0Default Gateway . . . . . . . . . : 192.168.1.1Ethernet adapter 本地连接:Media State . . . . . . . . . . . : Media disconnectedEthernet adapter VirtualBox Host-Only Network:Connection-specific DNS Suffix . :IP Address. . . . . . . . . . . . : 192.168.154.1Subnet Mask . . . . . . . . . . . : 255.255.255.0Default Gateway . . . . . . . . . :C:\Documents and Settings\user>上面内容中,我们可以看到本地连接及其它虚拟连接,其中VMware Network Adapter VMnet8、VMware Network Adapter VMnet1和本地连接是我们在各种模式下要使用的不同连接网络配置。
VMware软件虚拟机如何和PLC通讯现在虚拟机应该说主流的用的比较多的还是使用VMware软件做虚拟机,所以我就以VMware软件虚拟机应该如何和PLC通讯做一个简单的说明!首先我用的VMware软件版本是VMware® Workstation 14 Pro。
虚拟机里的软件要和外部硬件通讯,一般还是分为串口通讯和网络通讯,来分别说一下。
如果虚拟机要以串口线通讯的方式访问外部硬件,当然现在都是USB接口的串口线了,所以虚拟机中的设置,应该是要检查如下的2个地方:1,要启动USB设备的自动连接,如下图:这里只是决定了你的虚拟机可以发现,USB2.0或者3.0的设备,当你打开虚拟机的时候,会有一个提示,算是询问你要连接主机还是连接虚拟机?这个图是我打开一个XP 系统的虚拟机后我插入了一个USB-232的串口线,出现的提示!此时,如果我要连接要虚拟机而不是主机的话,就要去做第2个检查:2,选择USB是连接到虚拟机,断开和主机的连接:这个图片上可以看到QinHeng USB这个设备现在已经连接到虚拟机,而Chicony USB是可以选择断开与主机的连接,进而和虚拟机连接的。
总之,连接到虚拟机之后,同样硬件管理里边就会出现一个新的串口,供你去和PLC通讯了!如果是以以太网,网口的形式和PLC或者触摸屏通讯,那么就更简单了。
通常我的虚拟机设置是不和主机使用同样的IP,而是选择桥接的方式,如下图:这里选好桥接模式,然后在虚拟机里边设置一个固定的IP,比如100.100.1.20, 然后在主机里边也设置一个100.100.1.50的静态IP,这两个只要能相互的ping通,那么不论的主机还是虚拟机均可以通过网络可以访问到PLC这些硬件设备!所以说,网络通讯的话虚拟机的设置要简单一些!就说这么多了,应该说VMware虚拟机的软件设置应该都差不多,可能版本不同会稍微有点差别,但是像网络桥接这样都是一样的!。
三种简单有效的vmware虚拟机传输文件方法
在VMware虚拟机中,有三种简单有效的传输文件的方法:
1. 安装VMware Tools:安装VMware Tools后,可以实现虚拟机和主机之间的剪贴板共享,这样就可以方便地复制和粘贴文件。
然而,这种方法在处理中文目录、中文文件和带空格的路径时可能会出现问题。
2. 网络共享文件:将虚拟机的网络设置为NAT方式,然后使用Feiq等文件传输工具进行文件传输。
只要主机和虚拟机之间的网络是互通的,这种方法就可以使用。
3. 共享文件夹:给虚拟机添加共享文件夹,并指向一个本机的文件夹。
通过这个共享文件夹,可以方便地拷贝文件。
启用共享文件夹后,为虚拟机添加网上邻居,会发现一个路径指向本机文件。
以上方法仅供参考,具体操作可能会因不同的操作系统和VMware版本而有所不同。
如需更多信息,建议咨询专业人士。
在VMware虚拟机中使用主机USB接口、虚拟机共享USB接口、设置虚拟机USB接口的方法在VMware虚拟机中使用主机USB接口、虚拟机共享USB接口、设置虚拟机USB接口的方法作者:chenshijie2012发布于:2014-6-17 15:23 Tuesday 分类:大势至电脑USB端口禁用软件相关在网络管理中,我们经常会用到虚拟机,有时候在虚拟机里面运行一些程序需要用到U盘、U盾等USB设备,那么如何将主机的USB 接口共享给虚拟机呢,也就是在主机的USB接口插入USB设备之后,可以在虚拟机里面被识别到呢?本文提供了一种方法:在“主机”里面操作需要执行以下操作:1、点击开始->运行,在对话框中输入"services.msc",确定,打开windows服务管理器。
图:找到VMware USB Arbitration Service2、在服务列表中选中"VMware USB Arbitration Service",双击打开属性对话框,再选择"启动",就能启动VMware USB Arbitration Service服务了。
图:启动VMware USB Arbitration Service服务3、关闭VMware软件,并重新打开,启动一个虚拟机,进入系统之后VMware就会提示发现USB设备。
如果要在虚拟机中使用这些USB设备(以U盘为例),在VMware的菜单栏中选择VM->Removable Devices->Pixart Imaging CIF Single Chip->Connect (Disconnect form host) ,就可以了。
如下图所示:图:在虚拟机里面使用Usb接口的方法图:将usb设备从主机转移到虚拟机使用4、当然,这样USB设备在连接到虚拟机的同时会断开同主机(一般为Windows系统)的连接。
配置VirtualBox中虚拟机使用串口图文教程时间:2014-03-22 来源:服务器之家投稿:root 点击:328次此文,目的在于,将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 4COM2: I/O base 0x2F8, IRQ 3COM3: I/O base 0x3E8, IRQ 4COM4: I/O base 0x2E8, IRQ 3对应着,图形界面中的,端口编号:设置端口的类型(模式)目前支持4种模式:未连接设置成未连接,那么虚拟机内看到就是,有串口,但是物理上没有连接。
对应设置最简单了:主机管道把串口设置成主机上的一个管道pipe(pipe是个软件上的概念)如何设置:此处,即可如下设置:主机设备说白了就是,和你主机,对应着真实的电脑中的串口。
虚拟机与实机之间文件交互8种方法<VM篇>VM是常用的虚拟机软件,也是我们封装系统的利器。
但经常碰到有朋友在坛子里问关于VM和实机之间交互文件的方法,区区不才,使用VM时间也不长,但稍微有一点经验,抛砖引玉,供大家讨论一下。
有写错或者不完整的地方还请不吝指正。
1.映射虚拟磁盘。
映射虚拟磁盘是VM提供的一种功能,可以将虚拟机中的分区映射为实机中的分区。
映射虚拟磁盘只能在虚拟机关闭的状态下应用,所以文件交互也只能在实机上进行。
1)选择“文件--映射虚拟磁盘或与虚拟磁盘断开连接”。
2)弹出的窗口中选择“映射”:3)依次选择需要载入的虚拟机相关文件(.vmdk)、是否只读模式打开、和映射到实机的盘符:4)确定以后,即可在实机上操作虚拟机中的分区:*映射虚拟磁盘只能在虚拟机关闭的时候才能使用*如果需要更改虚拟机内的文件,别忘了去掉只读的勾勾。
*这个功能有时候好像不太稳定B设备(U盘、移动硬盘)共享。
虚拟机可以接管实机上的USB设备,这样我们就可以用USB设备(U盘、移动硬盘)当中转来交换文件。
1)在虚拟机开机的状态下,插入新USB设备,VM会弹出安装VM专用的USB驱动安装界面:2)将驱动安装路径指向VM安装文件夹下的vmusb.sys驱动文件。
3)安装好驱动后在VM软件右下角的设备状态栏中就会出现USB设备相对应的图标,在图标上点击右键,选择连接。
虚拟机就会接管实机上的USB设备,同时实机上USB设备卸除:4)虚拟机使用完USB设备后,仍然右键点击右下角的USB设备图标,选择断开。
虚拟机就会卸除USB设备,同时实机接管USB设备。
*需要虚拟机有USB控制器的存在(默认有,没有的话可在编辑虚拟机设置中添加)。
*摄像头等USB设备也可以用此方法互动。
*彻底不需要USB设备时,只要在实机上点击卸除即可。
3.DISKGEN.DISKGEN(原名DISKMAN)是一款功能强大的国产磁盘分区及数据恢复软件。
动手实践永远是学习任何软件开发的最好方法,学习Linux 设备驱动也不例外。
因此,您最好有一块可以实际练手的电路板来构造嵌入式开发环境。
如果您暂时没有,则可以用VmWare搭建两台虚拟机,两台虚拟机上都运行Linux 操作系统,一台作为开发主机,另一台作为目标机。
目前的PC上往往只有1 个串口,但是调试要求主机和目标机之间使用串口通信,这要求2 个串口。
在虚拟机中我们可以用管道虚拟串口。
1、安装两台虚拟机,设置串口
在主机端设置“终端是客户机”,并选择“其他终端是一个虚拟机”。
在目标机端设置“终端是服务器”,同样选择“其他终端是一个虚拟机”,但是要启用轮询。
主机和目标机的串口设置分别如图1 和图2所示。
图1 主机端串口设置
图2 目标机端串口设置
2、设置串口
stty ispeed 115200 ospeed 115200 -F /dev/ttyS0
(但是这一步,我没做?)
3、测试两台虚拟机串口是否能通信
在A上输入cat /dev/ttyS0
在B上输入echo hello > /dev/ttyS0
如果在A的终端上可以弹出hello的消息的话,证明B→A连通了。
将A、B角色互换再试一次,若都成功的话,恭喜你,虚拟串口线的配置算是完成了。
解决虚拟机上网问题要保证虚拟机系统可以上网,得先解决虚拟机和真实主机的连接关系。
VMware给出3种模式,我们常用的有“bridge(桥接)”和“Net(网络地址转换)”方式。
设置方法:单击“虚拟机”→“设置”→“以太网,然后选择连接方式。
1.bridge(桥接):将虚拟机网卡(本地连接)的IP地址和真实主机要设在同一IP段,其余与主机相同:例如主机ip是10.70.54.31,设置虚拟机ip为10.70.54.22。
netmask,broadcast,gateway,dns 都与主机相同即可实现虚拟机<--->主机;虚拟机<---->互联网通信。
这种情况适合局域网,而且网内没有特别限制的情形下使用,也适合与真实主机或局域网内主机进行网络共享。
如果ADSL单机拨号用户使用这个模式的话,要登录互联网,先得断开真实主机的ADSL连接,再在虚拟机系统建立ADSL拨号连接,并使用ADSL线路的帐号和密码登录才可以上网。
即虚拟机与真实主机不能同时上网。
即:主机和虚拟机桥接共享式上网VMware虚拟机桥接方式与真实主机共享上网1、安装虚拟机,网络连接方式选择“桥接”2、在VMware菜单里,选择“编辑”---“虚拟网络设置”---“主机虚拟网络映射”---“VMnet0”,选择一个真实的网络适配器进行桥接(不要自动选择)3、在真实主机上,“网上邻居”右键属性,找到上一步选择的网络适配器相应的网络连接,更改其IP地址为“192.168.0.1”,子网掩码“255.255.255.0”,其他为空即可4、在虚拟机上更改本地连接的IP地址为“192.168.0.2”,子网掩码“255.255.255.0”,,网关“192.168.0.1”,DNS服务器“202.102.224.68”5、在主机上将用来上互联网的连接共享即可实现虚拟机通如果想让虚拟主机拨号主机共享,就把3、4两步在虚拟机对调设置2.nat :这种模式下虚拟机系统经过虚拟机网络的特别转换,共享真实主机的IP上网。
主机+虚拟机+开发板互相ping通(折腾我老久的问题了)以下是我的IP设置:
本机本地连接 IP: 192.168.1.23
子网掩码:255.255.255.0
默认网关:192.168.1.1
首选DNS:202.96.128.86
开发板地址 IP: 192.168.1.230
子网掩码:255.255.255.0
默认网关:192.168.1.1
首选DNS:202.96.128.86
虚拟机Ubuntu IP: 192.168.1.108
子网掩码:255.255.255.0
默认网关:192.168.1.1
首选DNS:202.96.128.86
1.用桥接方式,在虚拟机VMWARE里面:edit->Vitual Network Editor,选择VMnet0
里面的bridge设置里面要选定自己的本地网卡(之前我让它自动选择,导致可能选到无线网卡了,因此虚拟机一直不能Ping通开发板 - -!)。
如下图:
2.分别主机、虚拟机、开发板要设置静态的IP,要处于同一个网段,也就是比如
192.168.1.* (*后面是不一样的),其他的子网掩码,网关,DNS都设置相同。
3.把开发板网线和主机相连,然后ping下就可以互相通了哈~如下图:
主机ping通开发板
主机ping通虚拟机
虚拟机ping通开发板
参考了下:/view/121b69669b6648d7c1c746c8.html。
虚拟机之间的跨主机通信对于构建复杂网络环境或者进行分布式计算任务来说是非常关键的。
在虚拟机网络配置中,有许多不同的解决方案可以实现跨主机通信。
本文将讨论几种常见的解决方案,并探讨它们的优缺点。
一、虚拟局域网(VLAN)虚拟局域网是一种将多台虚拟机连接到同一个虚拟局域网中的方法。
每台虚拟机可以被分配到不同的VLAN,并通过交换机来实现跨VLAN通信。
这种方法的优点是可以实现逻辑上的隔离和较好的性能。
然而,VLAN需要物理设备的支持,且配置相对复杂。
二、虚拟交换机虚拟交换机是一种软件定义的网络设备,它通过模拟物理交换机的功能来进行数据包转发和虚拟机之间的通信。
虚拟交换机通常由虚拟化平台(如VMware、Hyper-V)提供。
这种方法的好处是可以灵活配置虚拟机之间的连接方式,并且无需额外的物理设备。
但是,虚拟交换机的性能可能会受到虚拟化平台的限制。
三、虚拟路由器虚拟路由器是一种可以在虚拟化环境中提供路由功能的软件。
虚拟路由器可以连接不同的虚拟局域网(如VLAN),并实现虚拟机之间的通信。
虚拟路由器通常具有比虚拟交换机更高级别的功能,如路由协议支持和防火墙功能。
虚拟路由器的配置和管理可能需要一定的技术知识。
四、虚拟专用网(VPN)虚拟专用网是一种通过公共网络建立私密连接的方法,可以用于实现虚拟机之间的跨主机通信。
虚拟专用网使用加密和隧道技术,确保数据在跨网络传输时的安全性和私密性。
虚拟专用网的不足之处是需要额外的服务器和配置,而且可能影响网络性能。
五、软件定义网络(SDN)软件定义网络是一种通过软件方式对网络进行配置和管理的方法。
SDN将网络控制平面和数据平面进行分离,使得网络管理和配置变得更灵活和可定制。
虚拟机之间的跨主机通信也可以通过SDN来实现。
SDN通常需要专门的硬件和软件支持,配置和维护相对复杂。
综上所述,虚拟机网络配置中的跨主机通信解决方案有很多种选择。
在选择解决方案时,需要根据网络环境的需求、资源的可用性和管理的复杂程度来进行综合考虑。
vmware 串口调试
下载地址:VMWareGateway /91.php
在系统内核开发中,经常会用到串口调试,利用VMware的Virtual Machine更是为调试系统内核如虎添翼。
那么怎么搭建串口调试环境呢?因为最近工作涉及到这方面,利用强大的google搜索和自己一点摸索也算是有点收获,总结出来和大家分享。
Virtual Machine 主要有三种串口调试技术,可以在serial port的配置界面找到:
1. Use physical serial port 即使用物理机串口,当用串口线盒另一台电脑连接时,就用这种方式
2. Use output file 即把串口数据输出到宿主机某文件中,当只需要看输出结果的时候可以用这种方式,简单方便
3. Use named pipe 把串口输出到命名管道,命名管道可读可写,也就可以交互,进行一些debug 工作,而不是简单的看结果
因为前两种相对简单易用就不具体介绍了,这里主要说第三种用命名管道调试方法。
命名管道,在Linux 中是进程间通信(IPC)的一种方式,两个进程可以通过读写管道来交换数据。
这里就是运用了这种技术,通过把串口绑定一个有名管道,对有名管道的读写交换串口数据。
也有两种方式:1. 宿主机与虚拟机之间,2. 在同一宿主机上,两虚拟机间通过绑定同一个宿主机上的有名管道。
问题的关键在于如何把虚拟机串口绑定到宿主机的某一有名管道,而第一种方式则需要找到一种方式使得主机如何读写有名管道来交互,经过一阵Google终于找到分别在Linux和Windows分别试验成功的工具。
在Windows中有名管道式通过路径\\.\pipe\namedpipe来创建的,当然你可以指定到其他机子如
\\192.168.1.10\pipe\namedpipe,而在Linux中,/tmp/mypipe就可以了。
创建好有名管道后,就是如何和管道交互了。
目前,无论是Windows还是Linux,似乎都没有一款工具可以直接读写有名管道的,而我找到的两个工具都是通过把有名管道和Socket绑定,通过读写Socket来间接读写管道。
下面我就简要介绍一下在Windows和Linux下如何配置:
Linux Host:
Host ~ Virtual Machine
a. add hardware -> Serial port
b. using named pipe
c. /tmp/isocket
d. this end is server & far end is application
e. check Yield CPU on poll
f. start Virtual Machine
2. socat /tmp/isocket tcp4-listen:9001 &
/tmp/socket: VMware call it 'named piped', actually it is Unix Daemon Socket, so you shouldn't use pipe:/tmp/socket
3. telnet 127.0.0.1 9001
Trouble Shoot: 有时候会遇到错误Connection closed by foreign host,或者telnet一开,socat就能退出,很可能是你没power on虚拟机,有名管道还没创建,你就socat,这样也会创建一个名为isocket的文件但只是普通文件。
具体的细节请看socat help
start Virtual Machine first, than run the socat, and telnet
(Note you must have permission to all resource, /tmp/socket, VM and so on)
Vritual Machine ~ Virtual Machine
1. configure VM
a. add hardware -->serial port
b. Using named pipe, configure /tmp/isocket
c. this end is server & far end is Virtual Machine
d. check Yield CPU on poll
e. start VM
a. add hardware --> Serial Port
b. Using named pipe, configure /tmp/isocket
c. this end is client & far end is Virtual Machine
d. check Yield CPU on poll
e. start VMs
Windows Host:
Host ~ Virtual Machine
1. configure VM
a. add hardware --> serial port
b. using named pipe
c. \\.\pipe\vmwaredebug
d. this end is client & far end is application
e. check Yield CPU on poll
2. using 3rd-party tool to communicate with named pipe
a. down the tool
b. install service
cmd>vmwaregateway.exe /r
c. start service
c:\> net start vmwaregateway
d. telnet 127.0.0.1 567
3. start Virtual Machine
如果你使用的是vmwaregateway.exe这个小工具,这里的管道名就必须是vmwaredebug,除非你把它的源代码download下来自己改改。
Vritual Machine ~ Virtual Machine
1. configure VM
a. add hardware -->serial port
b. Using named pipe, \\.\pipe\vmwaredebug
c. this end is server & far end is Virtual Machine
d. check Yield CPU on poll
e. start VM
2. Another VM
a. add hardware --> Serial Port
b. Using named pipe, \\.\pipe\vmwaredebug
c. this end is client & far end is Virtual Machine
d. check Yield CPU on poll
e. start VMs
以上方式,在Linux(Ubuntu 8.04/9.10), Windows (XP, 2003)上,VMware player3.0, VMware Server 2.0上试过,基本上都是可以工作的,虽然用户体验还是Windows上好。
VM对VM的方式是比较容易实现的,就是你得同时打开两个虚拟机,而在windows上client VM是Linux又用GTKterm与串口相连,得跑到client VM的图形界面上去操作,略显麻烦。
本文来自CSDN博客,转载请标明出处:/happinux/archive/2009/12/11/4986127.aspx。