虚拟机Vmware连接设备.doc_第1页
虚拟机Vmware连接设备.doc_第2页
虚拟机Vmware连接设备.doc_第3页
虚拟机Vmware连接设备.doc_第4页
虚拟机Vmware连接设备.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

虚拟机VmwareWorkstation使用手册翻译之连接设备作者:wlang转贴自:点击数:69371目录:下列各部分描述如何在虚拟机中使用各种不同的设备:使用并行端口单向端口双向端口缺省配置在客户操作系统中安装疑难解答在Linux主机上配置双向并行端口对Iomega Zip Drive的特别的注释使用串行端口在主机上使用串行端口在主机上使用一个文件连接主机上的一个应用程序到虚拟机连接两台虚拟机对高级用户的特别配置选项用法情况:遍及虚拟串行端口除错在Linux主机上的键盘映射快速答案漫长的历史V-Scan代码表在虚拟机中使用USB设备在4版中有关USB支持的注释激活和禁用USB控制器连接USB设备在Windows主机上使用USB在Linux主机上使用USB谁控制一个USB设备?从虚拟机断开USB设备人性化接口设备连接到一个Generic SCSI设备在Windows主机操作系统上的Generic SCSI在Linux主机操作系统上的Generic SCSI使用并行端口VMware Workstation支持两种类型的虚拟并行端口设备:单向端口(SPP)和一个双向PS/2风格端口的部分仿真。双向端口在所有的Windows主机上被支持。单向端口在所有的Linux版本中被支持。双向端口在Linux内核2.2.5版或以后的版本中被支持。在Linux主机上,VMware Workstation要求并行端口PC-style选项(CONFIG_PARPORT_PC)被建造并加载为一个内核模块(也就是说,它必须被设置成 m)。如果CONFIG_PARPORT_PC被直接建造 (编译)进内核,VMware Workstation不能够使用双向并行端口设备。这个限制存在因为CONFIG_PARPORT_PC没有正确地输出它的符号。单向端口单向端口支持向后兼容。他们被典型地用于连接到打印机或发送打印机输出到一个文件。对于打印文本速度通常是足够的, 但是当打印图像时等待长时间延迟。在Linux主机上,主机单向端口设备的路径名典型地为/dev/lp0,/dev/lp1 等。双向端口双向端口被多种设备使用-例如,打印机,扫描仪,dongles和磁盘机。现在, VMware Workstation只提供PS/2硬件的部分仿真。明确地,一个连接到物理端口的设备的中断请求不被传给虚拟机。还有,客户操作系统不能够使用DMA(直接内存存取)移动数据到端口或从端口移动数据。由于这个原因,不是所有附到并行端口的设备都能保证正确地工作。下面是已知工作设备的部分列表。如果你试的设备不在列表上,请让VMware知道。双向仿真快于单向仿真慢于本地存取,因此,双向模式被推荐,当可能时,当连接到端口的设备是单向时 (例如,一台打印机)。缺省配置当在Windows主机上建立并行端口时,他们缺省是双向的。他们的缺省基址是,按顺序,0x3bc, 0x378和0x278。没有端口有一个被分配的IRQ或DMA通道。缺省情况下,端口不存在。当在Linux主机上建立并行端口时, 缺省情况下,在使用内核2.2或更高版本的Linux主机上他们是双向的。否则,他们是单向的。他们的缺省基址是,按顺序,0x3bc, 0x378和0x278。没有端口有一个被分配的IRQ或DMA通道。缺省情况下,端口不存在。在客户操作系统中安装如果虚拟机使用并行端口配置,大多数客户操作系统在安装时自动检测并安装必需的驱动。一些操作系统, 包括Linux,Windows NT和Windows 2000,在引导时自动检测端口。其它的,像Windows 9x,不这样做。要添加并行端口到虚拟机配置中,在虚拟机关闭的情况下采取这些步骤。Windows主机1、打开虚拟机控制面板。编辑虚拟机设置2、点击“添加”启动新硬件向导。3、选择并行端口, 然后点击“下一步”。4、作出适当的选择来使用物理并行端口或连接虚拟并行端口到一个文件。如果你想要并行端口输出到一个文件, 输入路径和文件名或浏览到文件的位置。点击“完成”。Linux 主机1、打开虚拟机控制面板。编辑虚拟机设置2、点击并行端口旁的+符号扩展设备列表。3、选择一个被显示为没有安装的设备。4、从类型下拉列表,选择设备连接到主机上的一个物理并行端口或发送输出到一个文件。5、在路径字段中,输入你使用的设备或文件的路径。主机双向并行端口设备的路径名通常是/dev/parport0,/dev/portport16,/dev/parport32 等。如果他们不存在,VMware Workstation安装器创建这些设备。他们也可以使用mknod手工创建。例如, 使用这个命令创建第二个并行端口(parport16) :mknod /dev/parport16 c 99 166、点击“安装”,安装虚拟并行端口,然后点击“确定”保存配置并关闭虚拟机控制面板。在Windows 9x客户中,当你从单向端口改变到双向端口或相反时,你必须使用设备管理器(开始设置控制面板系统设备管理器)删除那个端口设备驱动并添加一个新的。当一个新端口被增加时,添加一个新的驱动也是必需的。在这两种情况下,使用客户操作系统的“添加新硬件向导(开始设置控制面板添加新硬件)”并让Windows检测新设备。手工从一个列表选择设备可能导致一个不正确的配置。疑难解答如果在开机时一个错误消息出现说在主机上的并行端口没有ECR(扩展控制寄存器), 很可能硬件支持它但在BIOS中被禁用了。在这种情况下,重新启动你的主机, 进入虚拟机BIOS控制面板(典型地在BIOS执行早期通过按下Delete键),找到并行端口字段,并激活ECP模式(或包括ECP模式的其他组合)。大多数现代的计算机应该支持ECP模式。在Linux主机上配置双向并行端口双向并行端口要在一个客户机中正确工作, 必须首先在主机上被正确配置。大多数有关并行端口功能的问题是主机配置的一个后果。检查这些相关区域:你的Linux内核版本,你的设备访问许可和必需的模块。双向并行端口和Linux2.2.x内核支持双向并行端口的2.2.x内核使用parport,parport_pc和vmppuser模块。还有,确定PC Style硬件(CONFIG_PARPORT_PC)被作为一个模块加载,就象这部分一开始关于“使用并行端口”中提到的。vmppuser模块被VMware Workstation提供给虚拟机对并行端口一个用户级的访问。要查看是否这些模块被安装和运行在你的系统上,作为根用户运行lsmod命令。这三个模块应该被包含在运行的模块列表中。你也可以对相同的列表看/proc/modules文件。装载适当的模块,运行这个命令:insmod -k 如果列出的并行端口模块没有运行,使用这个命令:insmod -k parport_pc这会插入双向并行端口需要的三个模块。如果你继续发现问题,很可能地,lp模块正在运行。如果是,虚拟机不能够正确地使用并行端口。要删除lp模块,作为根用户运行这个命令:rmmod lplp模块只对单向并行端口是必需的。你也应该确定在/etc/modules.conf或/etc/conf.modules文件中提及lp模块的行被删除或在此行开始处插入一个#成为注释行。配置文件的名字依赖于你正在使用的Linux发行版。当你在删除这行后重新启动主机时,配置文件不再启动lp模块。为了确保在引导时为双向并行端口的适当模块被装载, 把这行加入/etc/modules.conf或/etc/conf.modules文件:alias parport_lowlevel parport_pc双向并行端口和Linux2.4.x内核确定PC Style硬件(CONFIG_PARPORT_PC)被作为一个模块加载,就象这部分一开始关于“使用并行端口”中提到的。如果你正在使用一个2.4.x内核,提供双向并行端口功能的模块是parport,parport_pc和ppdev。要查看是否这些模块被安装和运行在你的系统上,作为根用户运行lsmod命令。这三个模块应该被包含在运行的模块列表中。你也可以对相同的列表看/proc/modules文件。装载适当的模块,运行这个命令:insmod -k 如果列出的并行端口模块没有运行,使用这个命令:insmod -k parport_pc这会插入双向并行端口需要的三个模块。如果你继续发现问题,很可能地,lp模块正在运行。如果是,虚拟机不能够正确地使用并行端口。要删除lp模块,作为根用户运行这个命令:rmmod lplp模块只对单向并行端口是必需的。你也应该确定在/etc/modules.conf或/etc/conf.modules文件中提及lp模块的行被删除或在此行开始处插入一个#成为注释行。配置文件的名字依赖于你正在使用的Linux发行版。当你在删除这行后重新启动主机时,配置文件不再启动lp模块。为了确保在引导时为双向并行端口的适当模块被装载, 把这行加入/etc/modules.conf或/etc/conf.modules文件:alias parport_lowlevel parport_pc2.4.x系列的Linux内核也使用一个允许对并行端口硬件访问的特别判优器。如果并行端口正在主机中使用,客户机不能够使用它。如果虚拟机正在使用并行端口,主机和任何访问主机的用户不能对设备给予访问。VMware Workstation把一个锁放在设备上,而且这个锁限制访问以便只有虚拟机能使用端口。你可以选择“编辑可移动设备”将并行端口从虚拟机断开并重新连接它。设备许可一些Linux发行版缺省不允许虚拟机对lp和parport设备的访问。在大多数这些情形中,设备的所有者是根,而且关联组是lp。要允许VMware用户访问设备,把用户加入关联组。要查看设备的所有者和组,运行这个命令:ls -la /dev/parport0第三和第四列输出分别显示所有者和组。要把用户加入设备组,编辑/etc/group文件。在以lp开始的行上,它定义lp组,增加VMware Workstation用户的用户名。你必须作为根用户作这个变化。下面的行为一个用户名是userj的用户提供一个例子。lp:7:daemon,lp,userj下次用户登录到主机上,改变生效。对Iomega Zip驱动的特别注释在Windows 9x上,对Iomega Zip驱动使用较旧的驱动可能引起客户操作系统在引导时或在客户操作系统的安装期间间歇地锁上。最新的Iomega驱动在我们的测试中能可靠地工作。他们可在/software/index.html.上得到。 NextPage使用串行端口一个VMware Workstation虚拟机能建立最多四个虚拟串行端口。虚拟串行端口可以以几种方法来配置。你可以连接虚拟串行端口到主机上的物理串行端口。你可以连接虚拟串行端口到主机上的一个文件。你可以在两台虚拟机之间或在虚拟机和一个运行在主机上的应用程序之间直接建立连接。当你打开虚拟机时,你也可以选择是否连接虚拟串行端口。注意:串行端口的实现在这个发行版中是新的并且不赞成在虚拟机中使用TTY类型的虚拟串行端口。在主机上使用串行端口你可以在虚拟机中建立虚拟串行端口来使用主机上的物理串行端口。这是有用的,例如,如果你想在虚拟机中使用一个外置调制解调器或手持设备。要安装一个连接到主机上物理串行端口的虚拟串行端口,采取下列各步骤:1、打开虚拟机控制面板(编辑虚拟机设置)。2、点击“增加”启动“添加硬件向导”。3、选择“串行端口”, 然后点击“下一步”。 screen.width*0.7) this.resized=true; this.width=screen.width*0.7; this.alt=点击查看全图; border=04、选择在主机上使用物理串行端口,然后点击“下一步”。 screen.width*0.7) this.resized=true; this.width=screen.width*0.7; this.alt=点击查看全图; border=05、对这个串行连接选择你想使用的主机上的端口。缺省情况下,设备状态设置是在开机时连接。如果你愿意,你可以退选这个设置。如果你要配置这个串行端口使用poll模式,点击“高级”。这个选项主要对正在使用串行连接进行通信的排错工具的开发者来说是很有趣的。更多信息,见“对高级用户的特殊配置选项”。6、点击“完成”,然后点击“确定”关闭虚拟机控制面板。7、打开虚拟机电源。在主机上使用文件你可以在虚拟机中建立虚拟串行端口发送它的输出到主机上的一个文件。这是有用的,例如,如果你想捕获在虚拟机中运行的一个程序数据发送到虚拟串行端口或者如果你需要一个快捷方法从客户机到主机转移一个文件。要安装一个连接到主机上一个文件的虚拟串行端口,采取下列各步骤:1、打开虚拟机控制面板(编辑虚拟机设置)。 2、点击“增加”启动“添加硬件向导”。3、选择“串行端口”, 然后点击“下一步”。 screen.width*0.7) this.resized=true; this.width=screen.width*0.7; this.alt=点击查看全图; border=0NextPage4、选择输出到文件, 然后点击“下一步”。 screen.width*0.7) this.resized=true; this.width=screen.width*0.7; this.alt=点击查看全图; border=05、浏览到在主机上你要使用的文件来存储虚拟串行端口的输出。缺省情况下,设备状态设置是“在开机时被连接”。如果你愿意,你可以退选这个设置。如果你想配置这个串行端口使用poll模式,点击“高级”。这个选项主要对正在使用串行连接进行通信的排错工具的开发者来说是很有趣的。更多信息,见“对高级用户的特殊配置选项”。6、点击“完成”,然后点击“确定”关闭虚拟机控制面板。7、打开虚拟机。连接主机上的一个应用程序到虚拟机你可以在虚拟机中建立虚拟串行端口连接到主机上的一个应用程序。这是有用的,例如,如果你想要使用主机上的一个应用程序捕获从虚拟机串行端口发送的排错信息。要安装一个在主机上的一个应用程序和虚拟机之间的直接串行连接,采取以下各步骤:Windows主机1、打开虚拟机控制面板(编辑虚拟机设置)。 2、点击“添加”启动“添加硬件向导”。3、选择串行端口, 然后点击“下一步”。 screen.width*0.7) this.resized=true; this.width=screen.width*0.7; this.alt=点击查看全图; border=04、选择输出到已命名管道, 然后点击“下一步”。 screen.width*0.7) this.resized=true; this.width=screen.width*0.7; this.alt=点击查看全图; border=05、使用缺省管道名,或输入你选择的另外的一个管道名。管道名必须依照形式.pipe-也就是说, 它必须以.pipe开始。6、挑选出来的这端是服务器或这端是客户。通常,如果你计划先启动这端的连接选择这端是服务器。7、选择另一端是一个应用程序。8、缺省情况下,设备状态设置在开机时连接。如果你愿意,你可以退选这个设置。如果你想配置这个串行端口使用poll模式,点击“高级”。这个选项主要对正在使用串行连接进行通信的排错工具的开发者来说是很有趣的。更多信息,见“对高级用户的特殊配置选项”。9、点击“完成”,然后点击“确定”关闭虚拟机控制面板。 10、在你的主机上,配置与虚拟机通讯的应用程序使用相同的管道名。11、打开虚拟机。Linux 主机1、打开虚拟机控制面板(编辑虚拟机设置)。 2、点击“添加”启动“添加硬件向导”。3、选择串行端口, 然后点击“下一步”。4、选择输出到已命名管道, 然后点击“下一步”。5、在路径字段中,输入/tmp/或你选择的另一个Unix套接字名。6、选择“这端是服务器”或“这端是客户机”。通常,如果你计划先启动这端的连接选择这端是服务器。7、选择“另一端是一个应用程序”。8、缺省情况下,设备状态设置在开机时连接。如果你愿意,你可以退选这个设置。如果你想配置这个串行端口使用poll模式,点击“高级”。这个选项主要对正在使用串行连接进行通信的排错工具的开发者来说是很有趣的。更多信息,见“对高级用户的特殊配置选项”。9、点击“完成”。10、点击“确定”保存你的配置并关闭虚拟机控制面板。11、在你的主机上,配置与虚拟机通讯的应用程序使用相同的Unix套接字名。12、打开虚拟机。连接两台虚拟机你可以在两台虚拟机中建立虚拟串行端口使它们相互连接。这是有用的,例如,如果你想一台虚拟机中使用一个应用程序捕获从另一个虚拟机串行端口发送的排错信息。在两台虚拟机(一个服务器和一个客户机)之间安装直接串行连接,采取下列各项步骤:Windows主机在服务器虚拟机中1、打开虚拟机控制面板(编辑虚拟机设置)。 2、点击“添加”启动“添加硬件向导”。3、选择串行端口, 然后点击“下一步”。 screen.width*0.7) this.resized=true; this.width=screen.width*0.7; this.alt=点击查看全图; border=0NextPage4、选择输出到已命名管道, 然后点击“下一步”。 screen.width*0.7) this.resized=true; this.width=screen.width*0.7; this.alt=点击查看全图; border=05、使用缺省管道名,或输入你选择的另一个管道名。管道名必须依照形式 .pipe-也就是说,它必须以.pipe开始。6、选择“这端是服务器”。7、选择“另一端是虚拟机”。8、缺省情况下,设备状态设置是“在开机时连接”。如果你愿意,你可以退选这个设置。如果你想配置这个串行端口使用poll模式,点击“高级”。这个选项主要对正在使用串行连接进行通信的排错工具的开发者来说是很有趣的。更多信息,见“对高级用户的特殊配置选项”。9、点击“完成”,然后点击“确定”关闭虚拟机控制面板。在客户虚拟机中1、打开虚拟机控制面板(编辑虚拟机设置)。 2、点击“添加”启动“添加硬件向导”。3、选择串行端口, 然后点击“下一步”。 screen.width*0.7) this.resized=true; this.width=screen.width*0.7; this.alt=点击查看全图; border=04、选择使用已命名管道。5、使用缺省名字, 或输入你选择的另一个管道名。管道名必须依照形式 .pipe-也就是说,它必须以.pipe开始。管道名在服务器和客户机上必须是相同的。6、选择“这端是客户机”。7、选择“另一端是虚拟机”。8、缺省情况下,设备状态设置是“在开机时连接”。如果你愿意,你可以退选这个设置。如果你想配置这个串行端口使用poll模式,点击“高级”。这个选项主要对正在使用串行连接进行通信的排错工具的开发者来说是很有趣的。更多信息,见“对高级用户的特殊配置选项”。9、点击“完成”,然后点击“确定”关闭虚拟机控制面板。Linux 主机在服务器虚拟机中1、打开虚拟机控制面板(编辑虚拟机设置)。 2、点击“添加”启动“添加硬件向导”。3、选择串行端口, 然后点击“下一步”。4、选择输出到已命名管道, 然后点击“下一步”。5、在路径字段中,输入/tmp/或你选择的另一个 Unix套接字名。6、选择“这端是服务器”。7、选择“另一端是虚拟机”。8、缺省情况下,设备状态设置是“在开机时连接”。如果你愿意,你可以退选这个设置。如果你想配置这个串行端口使用poll模式,点击“高级”。这个选项主要对正在使用串行连接进行通信的排错工具的开发者来说是很有趣的。更多信息,见“对高级用户的特殊配置选项”。9、点击“完成”,然后点击“确定”关闭虚拟机控制面板在客户虚拟机中1、打开虚拟机控制面板(编辑虚拟机设置)。 2、点击“添加”启动“添加硬件向导”。3、选择串行端口, 然后点击“下一步”。4、选择输出到已命名管道, 然后点击“下一步”。5、在路径字段中,输入/tmp/或你选择的另一个Unix套接字名。管道名在服务器和客户机上必须是相同的。6、选择“这端是客户机”。7、选择“另一端是虚拟机”。8、缺省情况下,设备状态设置在开机时连接。如果你愿意,你可以退选这个设置。如果你想配置这个串行端口使用poll模式,点击“高级”。这个选项主要对正在使用串行连接进行通信的排错工具的开发者来说是很有趣的。更多信息,见“对高级用户的特殊配置选项”。9、点击“完成”,然后点击“确定”关闭虚拟机控制面板。对高级用户的特殊配置选项两个特殊的配置选项可用来在虚拟机和主机或在二台虚拟机之间的串行连接。这些选项主要对正在使用串行连接进行通信的排错工具的开发者来说是很有趣的。当排错时,提升CPU性能第一个选项必须在虚拟机控制面板中设置。当串行端口正在与中断模式相反的登记模式中被客户操作系统使用时,它是有用的。登记模式导致虚拟机消耗一个不成比例的CPU时间共享。这使主机和其他的客户运行缓慢。 screen.width*0.7) this.resized=true; this.width=screen.width*0.7; this.alt=点击查看全图; border=0要为主机上的应用程序恢复性能,在虚拟机控制面板中,选择虚拟串行端口, 并且检查“让CPU适应登记模式”复选框。如果被影响的虚拟机正在试着做的唯一事情是登记虚拟串行端口,这个配置选项强迫它适应处理器时间。改变串行连接的输入速度第二个选项-serial.pipe.charTimePercent = -应该作为一个新行被添加到你的虚拟机配置文件中(在编辑配置文件之前关闭虚拟机并关闭VMware Workstation窗口)。从一个管道上的串行连接挤出每个可能的速度位到虚拟机是有用的。没有在输出速度上的限制,这就是为何虚拟机经过虚拟串行端口发送数据很快。输出速度依赖于在管道另一端读取数据的应用程序返回到它的速度有多快。是串行端口号,从0开始。因此第一个串行端口是serial0。是任意正整数。它指定传输一个字符的时间,对于客户操作系统的串行端口设置表示成缺省速度的百分比。例如, 一个200的设置迫使端口取得每个字符的两倍,或以缺省速度的一半发送数据。一个50的设置迫使端口只取得每个字符的一半,或以缺省速度的两倍发送数据。你应该先使用客户操作系统为你正在虚拟机中运行的应用程序支持的最高设置配置串行端口。一旦串行端口速度在客户操作系统中被适当地设置,以这个设置作实验。以100的值开始并逐渐地减少它直到你找到你的连接能可靠工作的最高速度。用法情况:遍及虚拟串行端口排错你可以在虚拟机中使用Debugging Tools for Windows (WinDbg)或Kernel Debugger (KD)在一个虚拟串行端口上排错内核代码。你可以从Windows DDK网站/ddk 下载Debugging Tools for Windows。下列两个例子举例说明如何在虚拟机中使用虚拟串行端口排错内核代码:这里排错应用程序在VMware Workstation主机上(仅对Windows主机)这里排错应用程序是在相同的VMware Workstation主机上的另一台虚拟机中(在Linux主机上这是有用的, 但是也可以在Windows主机上这样做)使用这些方法中的任何一个允许你在一个系统上排错内核代码而不需要两台物理计算机、一个调制解调器或串行电缆。从Windows主机排错一个在虚拟机中的应用程序在这种情形中,你在虚拟机 (称为目标虚拟机) 中有要排错的内核编码并且在你的Windows主机上正在运行WinDbg或KD。准备目标虚拟机,对一个Windows主机按照在“连接主机上的一个应用程序到虚拟机”中的步骤做。确定按下列各项配置虚拟机的虚拟串行端口:选择“这端是服务器”在“I/O模式”下,选择“让CPU适应登记模式”复选框,即在目标虚拟机中的内核使用以登记模式使用虚拟串行端口,不使用中断模式。要准备主机, 确定你已经下载Debugging Tools for Windows的正确版本。你需要版,注明日期为2001年12月21日,因为它支持在管道上排错。注意:管道支持在WinDbg和KD产品内的帮助或微软的网站上没有文档说明。当你准备开始时,完成下列各项步骤:1、打开虚拟机。2、检查确定串行端口被连接。选择“选择编辑可移动设备”。如果串行端口没有被连接,选择虚拟串行端口,然后连接。3、在主机上,打开命令提示符窗口并做下列各项之一:如果你正在使用WinDbg,键入下列各项:windbg -k com:port=.pipe,pipe 如果你正在使用KD,键入下列各项:kd -k com:port=.pipe,pipe 然后按回车键开始排错。从另一台虚拟机排错虚拟机中的一个应用程序在这种情形中,你在虚拟机(称为目标虚拟机)中有要排错的内核代码并且在相同的主机上的另一台虚拟机(称为debugger虚拟机)中Debugging Tools for Windows(WinDbg)或Kernel Debugger(KD)正在运行。如果你正在Linux主机上运行VMware Workstation,这是有用的。debugger虚拟机必须在Windows客户操作系统中运行Debugging Tools for Windows (WinDbg)或Kernel Debugger (KD)。准备目标虚拟机,按照在“连接两台虚拟机”中对适当主机的服务器虚拟机的步骤操作。确定当你在配置你选择了“让CPU适应登记模式” 复选框的虚拟机的虚拟串行端口时,在目标虚拟机中的内核以登记模式而不是中断模式使用虚拟串行端口。要准备debugger虚拟机, 确定你已经下载了Debugging Tools for Windows。然后对于客户虚拟机按照在“连接两台虚拟机”中的步骤操作。当你准备开始时,完成下列各项步骤:1、把两台虚拟机都打开。2、检查确定串行端口被连接。选择“选择编辑可移动设备”。如果串行端口没有被连接,选择虚拟串行端口,然后连接。3、在debugger虚拟机中,通常使用WinDbg或KD排错。 NextPage在Linux主机上的键盘映射这部分致力于下面的问题并提供关于在Linux中键盘映射的附加细节:我的(语言-细节)键盘不被VMware Workstation支持。我的键盘上的一些键在虚拟机中不能正常工作。当我本地使用虚拟机时,键盘工作地很好,但是当我使用一个远程X服务器运行相同的虚拟机时键盘不工作。快速答案如果你的键盘使用本地X服务器工作正常,而且你正想使用一个远程X服务器(也是在一台PC上运行的XFree86服务器)需要相同的行为,关闭虚拟机并关闭VMware Workstation窗口,然后增加行xkeymap.usekeycodeMapIfXFree86 = true到虚拟机配置文件或到/.vmware/config。在主机上作出这个改变,是在你运行虚拟机的地方,不是在使用远程X服务器的机器上。如果你正在使用一个VMware Workstation不能识别的基于XFree86的服务器作为一个XFree86服务器,使用这行:xkeymap.usekey codeMap = true 如果你正在使用一个本地运行的XFree86服务器,而且键盘不正确地工作,请向VMware技术支持部门报告问题。漫长的历史不幸的是,对PC(虚拟的或其它的)键盘的支持是一个复杂的事情。公平而论,我们必须以一些背景信息开始-已经极大地简化。在PC键盘上按下一个键产生一个基于键位置的扫描码。例如,在一个德国键盘上的Z键产生一个和英文键盘上的Y键相同的代码,因为他们在键盘上位置相同。大多数键有一字节扫描代码,一些使用前缀0xe0的键有二字节扫描代码。在内部,VMware Workstation使用PC扫描代码的一个简化版本,这个扫描代码是一个单精度9位数值,叫做v-scan代码。一个v-scan代码被写成一个三个数字的十六进位数。第一个数字是0或1。例如,左侧的Ctrl键有一个一字节扫描代码(0x1d);它的v-scan代码是0x01d。右侧的Ctrl键扫描代码是二个字节(0xe0,0x1d);它的v-scan代码是0x11d。一个X服务器使用一个二级键编码。X键代码是一个一字节值。对键的键代码分配依赖X服务器实现和物理的键盘。结果,一个X应用程序通常不能直接使用键代码。而是,键代码被映射到有比如space、escape、x、和2名字的keysyms之内。那个映射被一个X应用程序由函数XChangeKeyboardMapping()或程序xmodmap控制。要研究键盘映射,你可以进入使用xev,对输入进它的窗口的键它显示键代码和keysyms。为了扼要重述,一个键代码大约对应一个实际的键,当keysym对应键上的符号时。例如,一个运行在PC上的XFree86服务器,在德国键盘上的Z键和在英文键盘上的 Y键有相同的键代码。然而,德国Z keysym,与英文的Z keysym相同,与英文的Y keysym不同。对于在一台PC上的一个XFree86服务器, 有一个从X键代码到PC扫描代码(或v-scan代码,它是VMware Workstation实际使用的)的一对一映射。VMware Workstation利用这个事实。当它正在本地主机上使用一个XFree86服务器时,它使用内建的从X键代码到v-scan代码的映射。这个映射是独立于键盘的而且应该对大部分,不是所有的,语言是正确的。在其他的情况(不是一个XFree86服务器或一个本地服务器),VMware Workstation必须把keysyms映射到v-scan代码,使用一组特定键盘表。键代码映射是简单的、自动的和笨人也会处理的。(Keysym映射更复杂,稍后描述)。然而,因为程序不能区别一个远程服务器正运行在一台PC上还是在一些其他类型的计算机上,它在安全方面犯错并且仅对本地X服务器使用键代码映射。这时常太保守的而且有不受欢迎的效果。幸运的是,与键代码映射相关的这个和其他行为可能通过关闭虚拟机并关闭VMware Workstation窗口被控制,然后使用一个文本编辑器来把配置设置添加到虚拟机配置文件。xkeymap.usekeycodeMapIfXFree86 = true如果使用一个XFree86服务器,使用键代码映射,即使它是远程的。xkeymap.usekeycodeMap = true总是使用键代码映射而不管服务器类型。xkeymap.nokeycodeMap = true从不使用键代码映射。xkeymap.keycode. = 如果使用键代码映射, 映射键代码到.在这个例子中, 必须是一个十进位数而且应该是一个C-语法十六进位数(例如,0x001)。要为一个键查找X键代码的最容易方法是运行xev或xmodmap -pk。大多数v-scan代码包含在V-scan代码表中。在下面描述的keysym映射表也是有帮助的。使用这个特性对那个映射作小的修改。例如, 交换左边的control和caps lock,使用下面的行:xkeymap.key code.64 = 0x01d # X Caps_Lock - VM left ctrlxkeymap.key code.37 = 0x03a # X Control_L - VM caps lock 这些配置行可能被添加到个别的虚拟机配置,加入你个人的VMware Workstation配置 (/.vmware/config),或主机范围(/etc/vmware/config)或(通常是/usr/local/lib/vmware/config)配置。当键代码映射没有被使用(或被禁用)时,VMware Workstation把keysyms映射到v-scan代码。这被做使用VMware Workstation安装中的xkeymap目录的表之一(通常是/usr/local/lib/vmware)。你应该使用哪一个表依赖键盘布局。对美国和许多欧洲国家和语言的PC键盘的正常发布包括表。而且对于这些的大部分,都有101-键(或102-键)和104 键(或105-键)变体。VMware Workstation通过检查当前的Xkeymap自动决定使用哪一张表。然而,它的试探法有时可能失效。除此之外,每个映射是固定的并且对任何既定键盘和X键代码到keysym映射不可能完全正确。例如,一个用户可能已经使用xmodmap交换了control和caps lock。当使用一个远程服务器 (keysym映射)时这意谓着键在虚拟机中被交换但是当使用一个本地服务器(键代码映射)时不交换。因此,keysym映射必然有缺点。要弥补这个缺点,配置设置可以改变大多数行为:xkeymap.language = 如果VMware Workstation在xkeymap中对你的键盘有一张表但是不能检测它,使用这个。必须是在xkeymap目录中的表之一。(位置见上面。)然而,要检测键盘的失效或许意谓着表对你是不完全正确的。xkeymap.keysym. = 如果你使用keysym映射, 映射keysym 到。 NextPage当你做的时候,必须是一个X keysym名字而且应该是一个C-语法十六进位数(例如,0x001)。找到一个键的keysym名字的最简单方法是运行xev或xmodmap -pk。X头文件/usr/X11R6/include/X11/keysymdef.h有一个完整的keysyms列表。(keysym的名字与它的使用XK_ 前缀的C常数相同)。大多数v-Scan代码在V-Scan代码表中。xkeymap表本身也是有帮助的。使用他们在已存在的映射中修改一些小错误。xkeymap.fileName = 在中使用keysym映射表。一张表是一个 = 形式的配置行次序,这里是一个X keysym 名字,是一个C-语法十六进位数(例如,0x001)。(关于找到你的键盘的keysyms和v-scan代码的技巧见上面的xkeymap.keysym的解释。)编译完整的keysym映射很难。最好从一张已存在的表开始并作一些小改变。V-Scan代码表这是104-key U.S.键盘的v-scan代码: (该表省略,具体见手册原版) 84-key键盘在数字小键盘上有一个Sys Req: Symbol Shifted symbol Location V-scan code Sys Req numeric pad 0x054 美式键盘以外的键盘通常有一个额外的键(通常是或 | )在左shift键的下面: Symbol Shifted symbol Location V-scan code 0x056 NextPage在虚拟机中使用USB设备VMware Workstation 4提供一个两端口的USB 1.1控制器。如果你的主机操作系统和客户操作系统都支持USB,在虚拟机中你最多能用两个USB设备。如果你的主机支持USB 2.0设备,你能在虚拟机中使用那些设备。注意:Windows NT和低于2.2.17的Linux内核不支持USB。虽然你的主机操作系统必须支持USB, 但是如果你只在虚拟机中使用那些设备,你不需要在主机操作系统中为你的USB设备安装特殊的设备驱动。在使用USB 2.0支持的Windows 2000主机上, 确定对于USB控制器你正在使用微软USB 2.0驱动。第三方USB 2.0驱动诸如由一些主板制造商提供的驱动不被支持。关于更换第三方驱动的注释,见“在Windows 2000主机上更换USB 2.0驱动”。在版本4中关于USB支持的注释我们已经用这个发行版测试了多种USB设备。通常,如果客户操作系统有适当的驱动, 你应该能够使用PDA,打印机,存储(磁盘)设备,扫描仪,MP3播放器,数字相机和记忆卡阅读器。调制解调器和某些流数据设备,比如扬声器和Web cams,不能正常工作。激活和禁用USB控制器虚拟机的USB端口缺省情况下是激活的。如果你在虚拟机中将不使用USB设备,你可以使用虚拟机控制面板禁用它的USB控制器。连接USB设备当虚拟机正在运行的时候, 它的窗口是活动的窗口而且一个USB设备被插入主机,设备自动地连接到客户机而不是主机。这个自动连接特性可能在虚拟机控制面板(编辑虚拟机设置)的USB控制器面板中被禁用。 如果当它正在试着自动连接到一个新设备时所有的虚拟机USB端口都已经被占据,一个对话框给你一个选择:你可以断开已存在的USB设备中的一个来释放它的端口,或者,无视新设备,允许设备连接到主机。选择“编辑可移动设备”连接指定的USB设备到你的虚拟机。你一次能连接达到两个USB设备。如果物理USB设备经过一个Hub被连接到主机,虚拟机只看见USB设备而不是Hub。对每个USB端口有一个菜单项目,移动鼠标到每一个项目上来看插入主机可以使用的设备的层叠菜单。要连接一个设备到虚拟机,点击它的名字。如果一个设备已经连接到那个端口, 点击新设备名释放前一个设备, 然后连接新设备。要释放一个被连接的设备,点击要连接的端口层叠菜单上的“None”。如果你实际插入一个新设备到主机内并且自动连接特性没有把它连接到虚拟机,设备初始化连接到主机。它的名字也被增加到“编辑可移动设备”菜单以便你能手工连接它到虚拟机。用Windows主机使用USB在Windows 2000、Windows XP和Windows Server 2003主机上,当一个特别的USB设备第一次被连接到虚拟机时,主机把它作为一个新的已命名VMware USB设备检测并安装适当的VMware驱动。在Windows XP或Windows Server 2003主机上,用户在“发现新硬件向导”确认是需要的。选择缺省动作-自动安装软件。一旦这个步骤完成,客户操作系统检测USB设备并搜索一个适当的驱动。当你正在第一次与虚拟机同步一个PDA诸如Palm handheld或Handspring Visor时,装载主机中的VMware USB设备驱动和装载客户机的PDA驱动必需的总时间可能超过设备的连接超时值。这导致在客户机使设备同步之前将它本身从计算机断开。如果这发生,让客户机完成安装PDA驱动,不考虑任何连接错误警告,然后试着再次同步PDA。第二个尝试应该成功。在Windows 2000主机上更换USB 2.0驱动要在一个有USB 2.0端口的Windows 2000主机上使用VMware Workstation 4,你必须在主机操作系统中使用对USB控制器的微软USB 2.0驱动。如果你的主机操作系统正在使用一个第三方驱动-例如,一个由你的主板制造商提供的驱动-你必须替换它。采取下列各项步骤检查你的驱动提供商,如果需要,替换它。1、到设备管理器。右击“我的电脑”,选择“属性”,点击硬件标签,然后点击设备管理器。2、扩展通用串行总线控制器列表。3、右击控制器列表并选择“属性”。4、点击驱动器标签。如果在那页上显示的驱动提供者是微软,你已经有正确的驱动。5、如果驱动提供者不是微软,点击更新驱动。6、在向导的第二个面板中,对我的设备的一个适当的驱动的搜索保持缺省选择并点击“下一步”。7、退选软盘和CD-ROM驱动器。选择微软Windows更新。点击“下一步”。8、向导搜索一个驱动。它应该找到一个微软驱动并报告它比现在计算机上的驱动更匹配。按照向导的指示安装新的驱动。用Linux主机使用USB在Linux主机上,VMware Workstation使用USB设备文件系统连接到USB设备。在大多数支持USB的Linux系统中,USB设备文件系统在/proc/bus/usb。如果对USB设备文件系统,你的主机操作系统使用不同的路径,你可以在虚拟机控制面板(编辑虚拟机设置USB)中改变它。 在标为usbdevfs的路径字段输入正确的路径。谁控制一个USB设备?只有一台计算机-主机或客户机-在任何一个时间能控制一个USB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论