实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
-
- 帖子: 5
- 注册时间: 2014-08-03 5:44
实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
kvm在内核提供了vfio-vga功能后,也可以让虚拟机可以直接控制显卡了。那样虚拟机就会有(接近)原生的3d性能,也就是说可以玩任何的3d游戏。
其实这个功能xen早就提供了(pci-back模块好像是),只不过xen的dom0主机上不能装vmware的module,因为dom0就是在hypervisor上的,主机的内核并不是真正直接和硬件通信的。
前提:
* 两个显卡
* 两套键盘鼠标
* 支持iommu的主板和cpu
* 有一个非btrfs的分区
大概流程
* 更新kernel和驱动,有些驱动需要打补丁
* 启动时将需要passthrough的显卡绑定到pci-stub,以避免显卡驱动绑定显卡。
* 然后吧显卡绑定到vfio的驱动,就可以启动kvm了。
暂时坑还是很多,例如虚拟机不能重启,只能关机。虚拟机关机后,主机要sleep一次来reset显卡,否则重启虚拟就就会让主机的内核死掉。
详细教程在这里:
https://bbs.archlinux.org/viewtopic.php?id=162768
有什么问题我可以尝试一下解答。
其实这个功能xen早就提供了(pci-back模块好像是),只不过xen的dom0主机上不能装vmware的module,因为dom0就是在hypervisor上的,主机的内核并不是真正直接和硬件通信的。
前提:
* 两个显卡
* 两套键盘鼠标
* 支持iommu的主板和cpu
* 有一个非btrfs的分区
大概流程
* 更新kernel和驱动,有些驱动需要打补丁
* 启动时将需要passthrough的显卡绑定到pci-stub,以避免显卡驱动绑定显卡。
* 然后吧显卡绑定到vfio的驱动,就可以启动kvm了。
暂时坑还是很多,例如虚拟机不能重启,只能关机。虚拟机关机后,主机要sleep一次来reset显卡,否则重启虚拟就就会让主机的内核死掉。
详细教程在这里:
https://bbs.archlinux.org/viewtopic.php?id=162768
有什么问题我可以尝试一下解答。
-
- 帖子: 183
- 注册时间: 2013-05-22 22:29
- 系统: Ubuntu14.04
- zhw2101024
- 帖子: 1849
- 注册时间: 2009-03-28 16:10
- 系统: Arch debian win7
- 联系:
Re: 实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
标记一下,等以后稳定了就可以抛弃virtualbox了
为什么我的问题总是没有人回答?
金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖
金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖
-
- 帖子: 5
- 注册时间: 2014-08-03 5:44
Re: 实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
其实过了一年,已经很稳定了。就是例如nvidia的patch还没有进入upstream,以及虚拟机reset显卡会有问题。我反正是买了ssd和键盘鼠标来玩这个了。zhw2101024 写了:标记一下,等以后稳定了就可以抛弃virtualbox了
- jobinson99
- 帖子: 1169
- 注册时间: 2007-04-28 15:14
- 系统: NixOS+虚拟机各种系统
- 联系:
Re: 实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
这个好,记下了。
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
- 嘧涅咓^_^
- 帖子: 22
- 注册时间: 2014-01-10 13:53
- 系统: 啊嚏Linux~
- 来自: 帝都
Re: 实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
MS这个对显卡是有要求的...
前几天照那个帖子的方法试了,启动qemu时老是报 no iommu_group for device ~~~>_<~~~
明明intel_iommu=on, lsmod看vfio也一切正常,pcistub也表示绑定显卡了...
然后维基了一下...http://en.wikipedia.org/wiki/List_of_IO ... g_hardware,俺家显卡不在里面...
PS 支持列表里面满满的A卡有木有,用A卡的孩纸你们是幸福的...
前几天照那个帖子的方法试了,启动qemu时老是报 no iommu_group for device ~~~>_<~~~
明明intel_iommu=on, lsmod看vfio也一切正常,pcistub也表示绑定显卡了...
然后维基了一下...http://en.wikipedia.org/wiki/List_of_IO ... g_hardware,俺家显卡不在里面...
PS 支持列表里面满满的A卡有木有,用A卡的孩纸你们是幸福的...
谦虚恭谨,不要装X
---论如何优雅地服用Linux
---论如何优雅地服用Linux
-
- 帖子: 5
- 注册时间: 2014-08-03 5:44
Re: 实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
楼主有sudo么?我之前也有这个错误了,忘记是什么了,有可能是vfio-bind那步出错了。可以试试手动来看sysfs里面的显卡是否bind到了vfio驱动那里。嘧涅咓^_^ 写了:MS这个对显卡是有要求的...
前几天照那个帖子的方法试了,启动qemu时老是报 no iommu_group for device ~~~>_<~~~
明明intel_iommu=on, lsmod看vfio也一切正常,pcistub也表示绑定显卡了...
然后维基了一下...http://en.wikipedia.org/wiki/List_of_IO ... g_hardware,俺家显卡不在里面...
PS 支持列表里面满满的A卡有木有,用A卡的孩纸你们是幸福的...
而且如果另一张卡是n卡,驱动要打个补丁的。 编译后33mb 放不上来。。
我的显卡也不在列表上。没有写上去而已。
代码: 全选
diff -Naur NVIDIA-Linux-x86_64-331.38-no-compat32/kernel/nv.c NVIDIA-Linux-x86_64-331.38-no-compat32/kernel/nv.c
--- kernel/nv.c 2014-01-09 03:49:24.000000000 +0100
+++ kernel/nv.c 2014-07-28 21:47:48.025541267 +0200
@@ -2993,12 +2993,12 @@
pci_set_master(dev);
-#if defined(CONFIG_VGA_ARB)
-#if defined(VGA_DEFAULT_DEVICE)
- vga_tryget(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK);
-#endif
- vga_set_legacy_decoding(dev, VGA_RSRC_NONE);
-#endif
+//#if defined(CONFIG_VGA_ARB)
+//#if defined(VGA_DEFAULT_DEVICE)
+// vga_tryget(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK);
+//#endif
+// vga_set_legacy_decoding(dev, VGA_RSRC_NONE);
+//#endif
if (NV_IS_GVI_DEVICE(nv))
{
diff -Naur NVIDIA-Linux-x86_64-331.38-no-compat32/kernel/nv-linux.h NVIDIA-Linux-x86_64-331.38-no-compat32/kernel/nv-linux.h
--- kernel/nv-linux.h 2014-01-09 03:49:25.000000000 +0100
+++ kernel/nv-linux.h 2014-07-28 21:47:30.521541666 +0200
@@ -127,9 +127,9 @@
#error "struct file_operations compile test likely failed!"
#endif
-#if defined(CONFIG_VGA_ARB)
-#include <linux/vgaarb.h>
-#endif
+//#if defined(CONFIG_VGA_ARB)
+//#include <linux/vgaarb.h>
+//#endif
#if defined(NV_VM_INSERT_PAGE_PRESENT)
#include <linux/pagemap.h>
- 嘧涅咓^_^
- 帖子: 22
- 注册时间: 2014-01-10 13:53
- 系统: 啊嚏Linux~
- 来自: 帝都
Re: 实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
sudo有的,不过patch没打,俺现在再试试看吧dongping_xie 写了:楼主有sudo么?我之前也有这个错误了,忘记是什么了,有可能是vfio-bind那步出错了。可以试试手动来看sysfs里面的显卡是否bind到了vfio驱动那里。嘧涅咓^_^ 写了:MS这个对显卡是有要求的...
前几天照那个帖子的方法试了,启动qemu时老是报 no iommu_group for device ~~~>_<~~~
明明intel_iommu=on, lsmod看vfio也一切正常,pcistub也表示绑定显卡了...
然后维基了一下...http://en.wikipedia.org/wiki/List_of_IO ... g_hardware,俺家显卡不在里面...
PS 支持列表里面满满的A卡有木有,用A卡的孩纸你们是幸福的...
而且如果另一张卡是n卡,驱动要打个补丁的。 编译后33mb 放不上来。。
我的显卡也不在列表上。没有写上去而已。
代码: 全选
diff -Naur NVIDIA-Linux-x86_64-331.38-no-compat32/kernel/nv.c NVIDIA-Linux-x86_64-331.38-no-compat32/kernel/nv.c --- kernel/nv.c 2014-01-09 03:49:24.000000000 +0100 +++ kernel/nv.c 2014-07-28 21:47:48.025541267 +0200 @@ -2993,12 +2993,12 @@ pci_set_master(dev); -#if defined(CONFIG_VGA_ARB) -#if defined(VGA_DEFAULT_DEVICE) - vga_tryget(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK); -#endif - vga_set_legacy_decoding(dev, VGA_RSRC_NONE); -#endif +//#if defined(CONFIG_VGA_ARB) +//#if defined(VGA_DEFAULT_DEVICE) +// vga_tryget(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK); +//#endif +// vga_set_legacy_decoding(dev, VGA_RSRC_NONE); +//#endif if (NV_IS_GVI_DEVICE(nv)) { diff -Naur NVIDIA-Linux-x86_64-331.38-no-compat32/kernel/nv-linux.h NVIDIA-Linux-x86_64-331.38-no-compat32/kernel/nv-linux.h --- kernel/nv-linux.h 2014-01-09 03:49:25.000000000 +0100 +++ kernel/nv-linux.h 2014-07-28 21:47:30.521541666 +0200 @@ -127,9 +127,9 @@ #error "struct file_operations compile test likely failed!" #endif -#if defined(CONFIG_VGA_ARB) -#include <linux/vgaarb.h> -#endif +//#if defined(CONFIG_VGA_ARB) +//#include <linux/vgaarb.h> +//#endif #if defined(NV_VM_INSERT_PAGE_PRESENT) #include <linux/pagemap.h>
谦虚恭谨,不要装X
---论如何优雅地服用Linux
---论如何优雅地服用Linux
-
- 帖子: 5
- 注册时间: 2014-08-03 5:44
Re: 实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
还有就是i家的芯片组好像在grub启动那里要加上什么 unsafe_interrupt 之类的,我是a家的,所以没有试过。嘧涅咓^_^ 写了:
sudo有的,不过patch没打,俺现在再试试看吧
然后还有一点就是显卡不只有一个设备的(显卡是一个设备,显卡上的声卡又是一个),同一组的两个设备必定都要Bind到pcistub上的,然后再同时bind到vfio上。
- 自由建客
- 帖子: 13468
- 注册时间: 2008-07-30 23:21
- 系统: Debian stable AMD64
Re: 实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
独占显卡吗?要是双显卡的机器是不是可只分配一块呢?
- langyxxl
- 帖子: 443
- 注册时间: 2012-01-17 22:17
Re: 实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
等再成熟点就能了。。
我现在APU+A卡独显,貌似没法进行
我现在APU+A卡独显,貌似没法进行
- 嘧涅咓^_^
- 帖子: 22
- 注册时间: 2014-01-10 13:53
- 系统: 啊嚏Linux~
- 来自: 帝都
Re: 实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
嘧涅咓^_^ 写了:sudo有的,不过patch没打,俺现在再试试看吧dongping_xie 写了:楼主有sudo么?我之前也有这个错误了,忘记是什么了,有可能是vfio-bind那步出错了。可以试试手动来看sysfs里面的显卡是否bind到了vfio驱动那里。嘧涅咓^_^ 写了:MS这个对显卡是有要求的...
前几天照那个帖子的方法试了,启动qemu时老是报 no iommu_group for device ~~~>_<~~~
明明intel_iommu=on, lsmod看vfio也一切正常,pcistub也表示绑定显卡了...
然后维基了一下...http://en.wikipedia.org/wiki/List_of_IO ... g_hardware,俺家显卡不在里面...
PS 支持列表里面满满的A卡有木有,用A卡的孩纸你们是幸福的...
而且如果另一张卡是n卡,驱动要打个补丁的。 编译后33mb 放不上来。。
我的显卡也不在列表上。没有写上去而已。
代码: 全选
diff -Naur NVIDIA-Linux-x86_64-331.38-no-compat32/kernel/nv.c NVIDIA-Linux-x86_64-331.38-no-compat32/kernel/nv.c --- kernel/nv.c 2014-01-09 03:49:24.000000000 +0100 +++ kernel/nv.c 2014-07-28 21:47:48.025541267 +0200 @@ -2993,12 +2993,12 @@ pci_set_master(dev); -#if defined(CONFIG_VGA_ARB) -#if defined(VGA_DEFAULT_DEVICE) - vga_tryget(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK); -#endif - vga_set_legacy_decoding(dev, VGA_RSRC_NONE); -#endif +//#if defined(CONFIG_VGA_ARB) +//#if defined(VGA_DEFAULT_DEVICE) +// vga_tryget(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK); +//#endif +// vga_set_legacy_decoding(dev, VGA_RSRC_NONE); +//#endif if (NV_IS_GVI_DEVICE(nv)) { diff -Naur NVIDIA-Linux-x86_64-331.38-no-compat32/kernel/nv-linux.h NVIDIA-Linux-x86_64-331.38-no-compat32/kernel/nv-linux.h --- kernel/nv-linux.h 2014-01-09 03:49:25.000000000 +0100 +++ kernel/nv-linux.h 2014-07-28 21:47:30.521541666 +0200 @@ -127,9 +127,9 @@ #error "struct file_operations compile test likely failed!" #endif -#if defined(CONFIG_VGA_ARB) -#include <linux/vgaarb.h> -#endif +//#if defined(CONFIG_VGA_ARB) +//#include <linux/vgaarb.h> +//#endif #if defined(NV_VM_INSERT_PAGE_PRESENT) #include <linux/pagemap.h>
N卡patch打了,unsafe_interrupt也加了,还是不行
网上转了一圈,貌似还是俺显卡不支持...
PS 俺配置:i7-4700MQ+GT750M
谦虚恭谨,不要装X
---论如何优雅地服用Linux
---论如何优雅地服用Linux
- langyxxl
- 帖子: 443
- 注册时间: 2012-01-17 22:17
Re: 实测,用qemu-kvm直接控制显卡获得接近原生的3D性能,终于可以玩游戏了
笔记本不行,听别人说在同一个桥上,没法给虚拟机的吧
- lanni654321
- 帖子: 17
- 注册时间: 2010-10-26 21:21
- 系统: ubuntu
- 联系:
- jinhongchao@gmail.com
- 帖子: 286
- 注册时间: 2008-06-24 21:00