主机与vmware虚拟客户机的串口通讯
VC++编写简单串口上位机程序
VC++编写简单串口上位机程序
ﻫ2010年4月13日10:23:40
ﻫ串口通信,MCU跟PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境等不少,VB、C#、LABVIEW等等,我会的语言很少,C语言用得比较多,但是还
没有找到如何用C语言来写串口通信上位机程序的资料,在图书管理找到了用VC++编写串口上位机的资料,参考书籍,用自己相当蹩脚的C++写出了一个简单的串口上位机程序,分享一
下,体验一下单片机和PC通信的乐趣。
编译环境:VC++6.0ﻫ操作系统:VMWare虚拟出来的Windows XP
ﻫ程序实现功能:ﻫ1、 PC初始化COM1口,使用n81方式,波特率57600与单片机通信。P
C的COM口编号可以通过如下方式修改:ﻫ
当然也可以通过上位机软件编写,通过按钮来选择COM端口号,但是此次仅仅是简单的例程,就没有弄那么复杂了。COM1口可用的话,会提示串口初始化完毕。否则会提示串口已经打开Port already open,表示串口已经打开,被占用了。ﻫ
ﻫ2、点击开始转换,串口会向单片机发送0xaa,单片机串口中断接收到0xaa后启动ADC
转换一次,并把转换结果ADCL、ADCH共两个字节的结果发送至PC,PC进行数值转换后在
窗口里显示。(见文章末尾图)
3、为防止串口被一只占用,点击关闭串口可以关闭COM1,供其它程序使用,点击后按钮变
为打开串口,点击可重新打开COM1。
程序的编写:ﻫ1、打开VC++6.0建立基于对话框的MFC应用程序Test,ﻫ
ﻫ
ﻫ
ﻫ2、在项目中插入MSComm控件:工程->增加到工程->Components and Controls->双击Registered ActiveX Controls->选择Microsoft Communications Cont rol, version 6.0->Insert,按默认值添加,你会发现多了个电话图标,这是增加后
在VMware虚拟机中使用主机USB接口、虚拟机共享USB接口、设置虚拟机USB接口的方法
在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 Service
2、在服务列表中选中"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接口的方法
VMware软件虚拟机如何和PLC通讯
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这些硬件设备!
在电脑上安装虚拟机,对电脑有什么危害???
虚拟机指的是在自己当前使用的操作系统(2000,XP)基础上安装并利用专门的虚拟机软件(常用的有VMWARE和Microsoft的VPC)虚拟出若干台计算机,这些虚拟的多台计算机每台有各自的CPU、内存、硬盘、光驱、软驱、网卡、声卡、键盘、鼠标、串口、并口、USB口等“硬件”设备,当然这些硬件都是虚拟的,实质上它们还是用你计算机中相应的硬件。这些虚拟的计算机可以独立运行,安装各自的操作系统,应用软件、杀毒软件等等,就好像平时用你的计算机一样使用它们。也可以让它们连成一个网络。你的真实计算机称为物理机,虚拟出来的计算机称为虚拟机。物理机上的OS称为HOST OS,可以是2K/XP/2K3,在98下就别想用虚拟机了,但现在还有几个人还在用98?各台虚拟机上各自安装的独立的OS称为GUEST OS,可以是DOS,也可以是WIN各种版本,甚至可以是UNIX/LINUX、MAC OS等等。一台物理机上能虚拟出多少台虚拟机取决于物理机的硬盘容量,你为一台虚拟机分配4G的硬盘空间,可以一次就为其分配4G的物理硬盘空间供其使用,也可以让虚拟机根据当前需要逐步增大对物理硬盘空间的占用,即随着虚拟机中硬盘中装的软件逐步增多而逐步增大对物理硬盘空间的占用。你甚至可以在创建虚拟机后根据需要增加一个虚拟硬盘,还可以增加其它硬件设备,如虚拟机中的光驱、网卡等等,还可以调整内存容量。能同时开机的虚拟机数量取决于你的物理机硬件配置,主要是CPU和内存,尤其是内存。因为虚拟机的CPU、内存这两个关键硬件资源都是使用物理机的CPU和内存,所以同时运行越多台虚拟机,对物理机的C PU和内存消耗也越大,速度越慢。我的HP台机AMD 闪龙3200+ CPU,1G双通道内存,HOST OS为2K,可同时运行3台虚拟机,其OS分别为2K、XP PROF和XP PROF,再加上物理机本身,相当于同时开启了4台计算机。几年前的旧台机和本本上只是PIII 800左右的CPU,256M内存,HOST OS为2K,其上也还可运行一到二台虚拟机,GUEST OS为2K或XP,但是速度会慢点。所以大家不要担心自己的机器配置
虚拟机网络配置中的跨主机通信解决方案(十)
虚拟机之间的跨主机通信对于构建复杂网络环境或者进行分布式计算任务来说是非常关键的。在虚拟机网络配置中,有许多不同的解决方案可以实现跨主机通信。本文将讨论几种常见的解决方案,并探讨它们的优缺点。
一、虚拟局域网(VLAN)
虚拟局域网是一种将多台虚拟机连接到同一个虚拟局域网中的方法。每台虚拟机可以被分配到不同的VLAN,并通过交换机来实现跨VLAN通信。这种方法的优点是可以实现逻辑上的隔离和较好的性能。然而,VLAN需要物理设备的支持,且配置相对复杂。
二、虚拟交换机
虚拟交换机是一种软件定义的网络设备,它通过模拟物理交换机的功能来进行数据包转发和虚拟机之间的通信。虚拟交换机通常由虚拟化平台(如VMware、Hyper-V)提供。这种方法的好处是可以灵活配置虚拟机之间的连接方式,并且无需额外的物理设备。但是,虚拟交换机的性能可能会受到虚拟化平台的限制。
三、虚拟路由器
虚拟路由器是一种可以在虚拟化环境中提供路由功能的软件。虚拟路由器可以连接不同的虚拟局域网(如VLAN),并实现虚拟机之间的通信。虚拟路由器通常具有比虚拟交换机更高级别的功能,如路由协议支持和防火墙功能。虚拟路由器的配置和管理可能需要一定的技术知识。
四、虚拟专用网(VPN)
虚拟专用网是一种通过公共网络建立私密连接的方法,可以用于
实现虚拟机之间的跨主机通信。虚拟专用网使用加密和隧道技术,确
保数据在跨网络传输时的安全性和私密性。虚拟专用网的不足之处是
需要额外的服务器和配置,而且可能影响网络性能。
五、软件定义网络(SDN)
软件定义网络是一种通过软件方式对网络进行配置和管理的方法。SDN将网络控制平面和数据平面进行分离,使得网络管理和配置变得更灵活和可定制。虚拟机之间的跨主机通信也可以通过SDN来实现。SDN
linux虚拟机多对多并行外网通信的研究与实现
1. 1问题提出
用户通过云平台使用虚拟机资源的过程 中,很多情况下需要为虚拟机添加多块网卡, 并为每块网卡分配内网IP。当用户需要进行 内网IP与外网通信时,则会为每个内网IP都 分配浮动IP并做DNAT。然而默认情况下虽 然DNAT能做成功,但只能是一个浮动IP有效, 不能保证从外面可以访问每一个浮动IPo
Linux系统默认情况下存在多张路由表, 通过使用ip rule可以查看及管理高级路由,以 实现不同条件路由的转发。高级路由是把信息 从源穿过网络到达目的地的行为,包括两个动 作:确定最佳路径和传输信息,前者可以釆用 手工指定和自动学习方式,后者则包括隧道传 输和流量整形。在虚拟化平台下,为了提高虚 拟机资源的网络通信高效灵活性,可以通过使 用高级路由(策略路由)设定一些策略来实现。
Network World •网络天地
Linux虛拟机多对多并行外网通信的研究与实现
文/熊梦"贺忠堂"于伟“莫展鹏“
本文在掌握计畀虚拟化和网 摘 络虚拟化的相关关键技术基础上, 要 对Linux虚拟机多对多并行外网
VMware 7.1 两台Ubuntu10.10虚拟机通信
VMware 7.1 两台Ubuntu10.10虚拟机通信
Ubuntu10.10 基于Vmware7.1.3
添加一个串口之后,分析configurarion文件,发现serial0.fileType = "thinprint" ,也就是串口0作为打印端口被使用了;再往下找关键字serial来到:
serial1.present = "TRUE"
serial1.fileType = "pipe"
serial1.fileName = \\.\pipe\com_1
serial1.pipe.endPoint = "client"
串口1才是我们要用到的。
为虚拟机添加串口
首先要保证虚拟机处于关机(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,进入如下界面:
在vmware虚拟机上调试内核
安装系统(在创建一个新的虚拟机时一定要用IDE硬盘)
1、在vmware上安装一个linux虚拟机(我用的软件版本:vmware 5.5, fedora 6)
从Internet下载源代码
1、linux-2.6.16
2、kgdb-2.6.16
编译内核
1、将kgdb-2.6.16补丁打到Linux内核源码里。
2、编译内核(make menuconfig, make, make modules_install, make install)
在内核配置菜单的Kernel hacking选项中选择kgdb调试项,例如:
[*] KGDB: kernel debugging with remote gdb
[*] KGDB: Console messages through gdb
Method for KGDB communication (KGDB: On generic serial port (8250)) --->
< > KGDB: On ethernet
[*] Simple selection of KGDB serial port
(115200) Debug serial port baud rate
(0) Serial port number for KGDB
3、修改grub.conf
例如:
title Fedora Core (2.6.16)
root (hd0,0)
kernel /vmlinuz-2.6.16 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.16_debug.img
连接vmware虚拟串口
连接vmware虚拟串口
vmware设置
(点小图查看大图)
named pipe设置
(点小图查看大图)
vspm设置
(点小图查看大图)
系统设置vi /etc/inittab添加7:2345:respawn:/sbin/agetty -L 9600 ttyS0 vt100vi /etc/securetty添加ttyS7也就是com6vi
/boot/grub/grub.conf
添加serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1terminal
--timeout=10 serial console default=2timeout=20在kernel一行的后面添加 console=tty0 console=ttyS0,9600(kernel的信息将显示在串口和虚拟终端上,初始化系统信息显示在串口上。如果两个console换一个位置则表示kernel的信息将显示在串口上,初始化系统信息显示在虚拟终端上。)注:这些信息让系统在起启动的时候能够把开机选单等信息显现在putty上
(点小图查看大图)
通过虚拟机Linux实现物理串口远程共享
通过虚拟机Linux实现物理串口远程共享
介绍
MiniCOM是Linux系统的字符界面串口通信工具,Debian软件包的名称为minicom,使用“apt-get install minicom”命令即可下载安装,在使用MiniCOM时,需要Root权限。本文讲解Linux MiniCOM串口设置方法,主要是为了解决串口远程问题,在日常测试中,往往会遇到话机出现故障,需提供现场,供研发远程协助查看话机,一般有两种方法:
1、故障话机存在IP地址,研发可利用SSH ROOT KEY直接远程话机后台,优点是快捷方便,缺点是无法远程观察到话机重启时段的Log,一些操作存在局限性。
2、故障话机无IP地址,此时可通过构建Linux虚拟机,使Linux主机直接使用宿主(Windows)的物理串口,由研发直接SSH远程Linux主机,并使用Linux主机中的串口工具远程查看话机系统。此方法优点在于远程效果与本地串口一致,不受话机IP影响,缺点是需要构建Linux虚拟机,并安装和配置串口参数。
注意:VMware安装Linux时,务必将网络设置为桥接。
虚拟机配置物理串口
虚拟机配置物理串口前,建议先关闭宿主串口工具,确保即将配置的串口不被宿主占用,配置步骤如下:1、启动VMware,保持Linux虚拟机处于关闭状态,如下图所示,依次点击“编辑虚拟机设置→添加→串行端口→下一步”进入硬件添加向导。
2、如下,设置串口端口类型为“使用主机上的物理串行端口”,点击“下一步”。
3、物理串行端口一般保持自动检测即可,若自动检测无法使用,则正确指定电脑上的物理串口,勾选串口“启动时连接”,并完成设置。
开发板USB连接虚拟机设置
WIN7 虚拟机的连接设置
问题1.首先是笔记本没有串口的输出线,需要用USB转串口,在这里,要保证虚拟机能识
别USB口,而我的虚拟机找不到USB的标记,如图所示:。所以不知道如何把USB显示到虚拟机里面,我的系统是win7,虚拟机是ubuntu是10.10的系统解决方案:
具体步骤:
1.点击开始->运行,在对话框中输入"services.msc",确定,打开windows服务管理器。
2.在服务列表中选中"VMware USB Arbitration Service",双击打开属性对话框,再选择"启动",就能启动VMware USB Arbitration Service服务了。如图所示:
3.关闭VMware软件,并重新打开,启动一个虚拟机,进入系统之后VMware就会提示发现USB设备。如果要在虚拟机中使用这些USB设备(以USB摄像头为例),在VMware的菜单栏中选择VM->Removable Devices->Pixart Imaging CIF Single Chip->Connect (Disconnect form host) ,就可以了。当然,这样USB设备在连接到虚拟机的同时会断开同主机(一般为Windows系统)的连接。如果想重新在主机上使用USB设备,则在VMware菜单栏中选择VM->Removable Devices->Pixart Imaging CIF Single Chip->Disconnect (Connect to host) 。另外补充一点:如果是AMD平台的机器,有可能会出现无法启动VMware USB Arbitration Service服务,这是AMD主板驱动中的"USB过滤器"所导致的。
两台虚拟机串口通信
动手实践永远是学习任何软件开发的最好方法,学习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角色互换再试一次,若都成功的话,恭喜你,虚拟串口线的配置算是完成了
ARM嵌入式Linux开发——串口设置和开发
ARM嵌入式Linux开发
——串口设置和开发
1.串口设置及测试
串口是常用的通信接口,在Linux操作系统中还是主要的系统调试和操作接口,早期的UNIX 计算机就是通过串口(附加了调制解调器提供远距离传输能力)连接终端与主机实现多用户操作的,因此继承了UNIX特点的Linux操作系统对于串口的支持非常丰富详细。串口比网络接口的使用更加简单可靠(不需要复杂的驱动和设置,只需要确定波特率、数据位数、停止位数、校验位模式等几个重要参数即可使用),可用于网络环境尚未搭建完善以及网络出现故障情况下对设备的操作控制,通常交换机等缺乏显示和输入的设备均采用串口作为基本操作手段,此外在控制领域串口也是常用的通信形式。
1.1.物理主机中安装Virtual Serial Port Driver
为了便于串口程序开发的调试,可以在物理主机上安装虚拟串口模拟软件,在本机模拟串口,实现脱离真实物理设备的串口通信开发调试,提高开发环境的灵活性和开发效率。
本例中采用Virtual Serial Port Driver软件,简称VSPD,安装在物理主机的Windows操作系统中,可通过端口映射提供给虚拟机使用。安装过程如下:
在Manage ports选项页中,点击“Add pair”按钮,添加一对Virtual ports串口对。
设置成交叉对,即两接口的输入和输出交叉互连,实现自闭环通信。
在物理主机中分别启动串口调试助手软件2次,打开2个软件操作窗口,每个软件窗口分别对
应一个串口,即一个软件的串口设置为COM1,另一个软件的串口设置为COM2,并将波特率、校验位、数据位、停止位等参数设置为相同的值,互相发送数据,检查串口间的通信情况,确认其连通正常。
计算机基础测试题
1、Diameter协议可以基于哪些协议传输?(A、C)
A.U p
B.以上都可以
C.S CTP
D.T CP
2、下列有关计算机性能的描述中,正确的是?(B、C、D)
A.计算机的性能好不好,主要看主频是不是高
B.内存的存取周期也是计算机性能的一个指标
C.内存容量越大,处理能力就越强
D.一般而言,主频越高,速度越快
3、云计算是对()技术的发展与运用(A、B、C)
A.网格计算
B.分布式计算
C.并行计算
D.对等计算
4、关于VMware虚拟机的外设,下列说法正确的是哪两项?(A、B)
A.虚拟机只能使用主机连接的并口或串口外部设备。不能使用vSphere Clien的并口或串口设备
B.虚拟机可以使用物理主机或vSphere Client端连接的USB接口的外设
C.虚拟机不能使用并口、串口等外部设备
D.USB或串口、并口连接的设备可以同时在虚拟机或客户端(或主机)使用
5、以下关于DNS的描述,正确的是(A、B、D )
A.DNS采用的是server-client模型
B.域名结构有若干分量组成,分量间以“.”隔开
C.域名可以反映出计算机的物理位置
D.DNS是联机分布式数据操作系统
6、可以通过以下哪些命令查看文件内容(A、B、C、D、E)
A.less
B.more
C.cat
D.tail
E.head
7、常见数据访问的级别有()(A、D)
A.文件级(gilelevel)
B.异构级(NFSlevel)
C.通用级(UFSlevel)
D.块级(blocklevel)
8、关于虚拟机迁移,下列说法正确的是哪两项?(A、D)
ProxmoxVEQemuKVM虚拟机设置要求
ProxmoxVEQemuKVM虚拟机设置要求
Qemu(Quick Emulator 的缩写)是⼀种模拟物理计算机的开源虚拟机管理程序。从运⾏ Qemu 的主机系统的⾓度来看,Qemu 是⼀个⽤户程序,它可以访问许多本地资源,如分区、⽂件、⽹卡,然后将这些资源传递给模拟计算机,模拟计算机将它们视为真实设备.
在模拟计算机中运⾏的来宾操作系统访问这些设备,并像在真实硬件上运⾏⼀样运⾏。例如,您可以将 ISO 映像作为参数传递给 Qemu,在模拟计算机中运⾏的操作系统将看到插⼊ CD 驱动器的真实 CD-ROM。
Qemu 可以模拟从 ARM 到 Sparc 的多种硬件,但 Proxmox VE 只关注 32 位和 64 位 PC 克隆模拟,因为它代表了绝⼤多数服务器硬件。由于处理器扩展的可⽤性,当模拟架构与主机架构相同时,PC 克隆的仿真也是最快的之⼀。
您有时可能会遇到术语KVM(基于内核的虚拟机)。这意味着 Qemu 通过 Linux KVM 模块在虚拟化处理器扩展的⽀持下运⾏。
在 Proxmox VE 的上下⽂中,Qemu和 KVM可以互换使⽤,因为 Proxmox VE 中的 Qemu 将始终尝试加载 KVM 模块。
Proxmox VE 中的 Qemu 作为根进程运⾏,因为这是访问块和 PCI 设备所必需的。
仿真设备和半虚拟化设备
Qemu 模拟的 PC 硬件包括主板、⽹络控制器、SCSI、IDE 和 SATA 控制器、串⾏端⼝(完整列表可以在kvm(1)⼿册页中看到),所有这些都在软件中进⾏了模拟。所有这些设备都是与现有硬件设备完全等效的软件,如果来宾中运⾏的操作系统具有适当的驱动程序,它将像在真实硬件上运⾏⼀样使⽤这些设备。这允许 Qemu 运⾏未经修改的操作系统。
《在中职计算机教学中妙用虚拟机》
《在中职计算机教学中妙用虚拟机》摘要:本文通过总结虚拟pc这一应用软件作为一种新的教学辅助手段在中职计算机类课程教学中的实践应用,来揭示出虚拟pc
软件强大的虚拟功能;这一功能既丰富了教师的教学环境,也为学生提供了一种真实而又无损坏的实验环境,使学生能够得到完全逼真的动手锻炼。
关键词:计算机教学虚拟机 virtual pc vmware 操作系统
1.前言
随着科学技术的进步与发展,计算机硬件与软件的发展日新月异。由于计算机技术发展的迅猛,许多中职学校的计算机学科教学与实践出现了发展需求与现实设备不相匹配的矛盾,主要表现在计算机硬件资源与操作系统更新相比速度滞后,计算机专业的实践教学也因此受到较大影响,这是国内众多中职学校面临的问题。中职学校的计算机专业学生迫切需要动手能力的训练,实践性很强。课程内容会涉及计算机硬件系统的安装与调试维修、软件系统的安装与维护、常用维护工具软件的使用、网络设置等。其中,在软件系统安装和常用维护工具软件使用等的教学中,需要给同学们提供真实的演练过程,让学生直观形象的学习实践技能,传统的操作方法是教师在一台裸机上执行完整的操作过程以给学生提供真实的实
践指导,当然这样对于计算机软件系统而言,每次实验指导时,教
师的演示操作势必彻底的破坏了教师机的系统环境从而使教学环境受到了极大的制约,同时也人为的增加了机房的维护难度。因此一机多用、一机多能,充分发挥机器的作用,提高机器利用率是最直接的解决矛盾与问题的思路。而虚拟机技术则正好是解决此问题的一个技术途径。目前最普及的虚拟机软件分别是virtual pc和vmware,下面主要就virtual pc这一简单易用的虚拟机软件进行说明。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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