windows-server-2012 – windows server 2012解决方案与vga的困境

我有两个Windows虚拟机,Windows Server 2012和Windows Server 2008.两者都使用kvm和libvirt.我最近决定增加屏幕分辨率选项,这需要从默认的“cirrus”视频卡更改为“vga”选项.这对我的Windows Server 2008 VM来说就像一个魅力,给我几个分辨率选项,从800×600到2560×1600.但是,这对Windows Server 2012不起作用.

这是我的xml模板中与视频卡有关的代码:

<视频>
  < model type ='vga'vram ='9216'heads ='1'/>
  < address type ='pci'domain ='0x0000'bus ='0x00'slot ='0x02'function ='0x0'/>
< /视频>

我怀疑这是一个驱动程序问题.我试图弄清楚哪些驱动程序与KVM的仿真VGA卡兼容,但我发现的所有卡片都是“带有Bochs VESA扩展的虚拟VGA卡”并且谷歌搜索加上“驱动程序”没有任何用处.

在我的Windows 2008 vm中,驱动程序是一个“标准VGA图形适配器”,它看起来像是窗口的通用驱动程序,可以解释为什么我不需要下载任何新内容来使vga卡适用于Windows 2008.但是,在Windows 2012中驱动程序只是显示为“Microsoft基本显示适配器”和尝试驱动程序更新导致窗口告诉我一切都是最新的.在这个驱动程序下,我只得到1024×768的分辨率,这比使用卷云更糟,至少达到了1280×1024.

基于这个问题,我理解VGA卡的不良行为是基本显示适配器的基本功能的结果:
Stuck at low resolution: Monitor as well as display adaptor not recognized in Windows Server 2012

据我所知,我需要两件事之一. A)更好的驱动程序,可以为虚拟卡提供更好的分辨率支持. B)具有更高功能的新型虚拟卡(KVM可以这样做吗?)

最后一种可能性是C)http://support.microsoft.com/kb/2855505表明这可能是因为我的GPU不支持directx9,但我不知道如何检查.

任何帮助将不胜感激.

最佳答案
在Windows客户机中安装SPICE Guest Tools以获取(几乎)所有各种virtio驱动程序. (如果失败,请改为从virtio-win包中安装它们.)

然后关闭VM并重新配置它,以便它使用SPICE通道和QXL视频.

相应的XML是:

<controller type='virtio-serial' index='0'>
  <alias name='virtio-serial0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</controller>
<channel type='spicevmc'>
  <target type='virtio' name='com.redhat.spice.0'/>
  <alias name='channel0'/>
  <address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<video>
  <model type='qxl' ram='65536' vram='65536' heads='1'/>
  <alias name='video0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>

重新启动后,转到“设备管理器”,选择“Microsoft基本显示适配器”和“更新驱动程序”.指向the latest QXL WDDM driver.

虽然安装驱动程序会将分辨率重置为1024×768,但您可以更改分辨率并以任何分辨率使用完整的桌面体验,最高可达2560×1600.

您甚至可以使用VGA驱动程序执行以前无法做到的事情…就像观看YouTube一样.

转载注明原文:windows-server-2012 – windows server 2012解决方案与vga的困境 - 代码日志