igd bios阶段初始化

IGD assign已经写入了Qemu的文档,是否就已经很稳定了?由于项目需要,我做了一系列测试,发现坑还是很多,很多!
首先,我们梳理一下,为了实现IGD assign我们需要做哪些工作:
虚拟设备准备阶段。看过Qemu源码的同学都会有这样的印象,Qemu启动分为两个阶段,第一,虚拟设备建立阶段,包括vCPU初始化,machine初始化,mem初始化,一系列外围bus初始化,bus上的device初始化。Qemu需要先将IGD虚拟成一个pci device。这里主要用的是vt-d技术,vfio remap IGD的相关资源,让Guest能够访问。
第二,bios阶段对IGD初始化,这是最头大的地方。现在IGD的bios初始化包括两种方式:老的VBIOS方式,新的GOP方式。目前,Qemu给出的只是VBIOS方式,这就导致测试新平台的时候各种问题。
第三,Guest OS启动后,安装显卡驱动。最新的Win10系统已经集成了比较新的IGD驱动,但是似乎不能用,不知道是否是用老的VBIOS导致的,使用老一点的显卡驱动就可以正常使用。

总结起来,IGD的使用的坑还是集中在legacy,其实GPU passthrough的坑也是在legacy,后来用了OVMF就跳过了这个legacy的坑,IGD也可以通过OVMF跳过这个legacy的坑吗?

总感觉IGD assign是个坑,IGVT是不是好一些?毕竟有Intel的全力支持。

VBIOS参考一
VBIOS参考二
GOP参考一

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • virtio Virtio是IO虚拟化中的一个优化方案,属于para-virtulization的一种实现,即Gu...
    goldhorn阅读 9,058评论 2 10
  • KVM与QEMU 网络虚拟化属于IO虚拟化,KVM模块本身不提供任何设备模拟,模块在初始化的时候会创建特殊设备文件...
    cb9e58ff5a37阅读 1,810评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • 一、KVM简介 KVM的全称是Kernel Virtual Machine,翻译过来就是内核虚拟机。它是一个 Li...
    爱吃土豆的程序猿阅读 9,462评论 0 13
  • 转载声明:本文虽然不是本人100%原创,但也是辛辛苦苦整理的,可以转载,但请注明出处 这篇文章是关于折腾Windo...
    SOMCENT阅读 8,133评论 3 37