用Virt-manager安装带有gvt-g的win虚拟机
因为某些国内厂商的问题,一直无法完全使用Linux,还是需要一个win虚拟机来跑win下的软件,(不要说用什么wine,wine跑起来真的是依托答辩!)
尝试了vbox和vmware的win7虚拟机但性能一直无法很好,比如没办法有一个显卡,显示性能不佳。(
最终,我们选择了使用qemu/kvm作为跑win虚拟机的软件,并且直通了Inrel核显。
环境
操作系统:Arch Linux
核显:Intel WhiskeyLake-U GT2 [UHD Graphics 620]
虚拟机软件:Virt-manager(libvirt的gui前端)
……
Virt-manager的安装
1 |
|
virt-manager简单配置
- 在
/etc/libvirt/libvirt.conf
加入1
2unix_sock_group = 'libvirt'
unix_sock_rw_perms = '0770' - 在
/etc/libvirt/qemu.conf
加入1
2
3
4
5
6vram = [
"/usr/share/ovmf/x64/OVMF_CODE.fd:/usr/share/ovmf/x64/OVMF_VARS.fd"
]
user = "username"
group = "username"
username
是你的用户名!!!
开启并自启
libvirtd
服务1
systemctl enable libvirtd --now
将用户添加到
libvirt
组1
2sudo usermod -a -G libvirt $(whoami)
reboot
编译qemu
因为我在使用qemu的过程中,如果直接用arch的qemu会有很多错误,所以我选择自己编译一个。在选定好编译参数后,用不了多少时间。
下载qemu源码:
1
2git clone https://mirrors.bfsu.edu.cn/git/qemu.git
cd qemu选择编译参数
我们只编译x86-64的qemu,其它架构全部舍弃:
configure参数脚本看这!
只要跑这个所只要直通要的东西,其他架构舍弃,若有需要,请自行添加
如果有spice参数依赖报错下载:
sudo pacman -S spice spice-gtk spice-protocol
- 编译qemu这里的
1
2make -j8
sudo make install-j8
依你的CPU而定
如果你跑qemu-system-x86_64 --version
输出类似:
1 |
|
就证明qemu已经安装了!
启动GVT-g
添加内核参数
编辑/etc/default/grub
在GRUB_CMDLINE_LINUX_DEFAULT
添加intel_iommu=on i915.enable_guc=0
注意空格与引号!!!启动内核模块
编辑/etc/modules-load.d/kvm.conf
添加:1
2
3kvmgt
vfio-mdev
vfio-iommu-type1添加内核模块参数
编辑/etc/modprobe.d/gvt-g.conf
添加:1
options i915 enable_gvt=1
然后重启系统
查询显卡GUID
1
lspci -D -nn
找到显卡的GUID,类似
0000:00:02.0
以后出现的
0000:00:02.0
就是这个GUID请不一样的自行修改查看mdev支持的类型
1
2ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/
i915-GVTg_V5_4 i915-GVTg_V5_8如果出现文件夹就说明启动成功了!
如果没有文件,那就再重试一遍吧看看是不是哪里漏了还是我写错了……
创建一个虚拟显卡
1 |
|
输出如:5e85791a-76ae-4e8d-a855-2ae2621dbfb3
记住输出的内容以后要用
创建设备,如用i915-GVTg_V5_4
:
1 |
|
注:
这里切换成su是因为用sudo我这里显示权限不够……
创建虚拟机
在virt-manager内创建一个win10虚拟机
硬盘选择virtio
win的virtio驱动下载:
1 |
|
其保存在/var/lib/libvirt/images/virtio-win.iso
新建一个CD加入这个即可获得virtio硬盘驱动,否则win安装程序无法加载硬盘
引导选择uefi
显卡选择VGA
…………
添加虚拟显卡
安装完成后在xml下在<devices>
元素中添加:
1 |
|
显示设置
在<graphics type='spice'>
下添加:
1 |
|
把<domain type='kvm'>
修改为:
1 |
|
在上面添加:
1 |
|
添加 IVSHMEM 设备
1 |
|
32使用1080p分辨率
安装显卡驱动
到Intel官网找吧,到这一步相信你可以的!!!
安装完后应该能在任务管理器看到GPU0了
安装virtio driver驱动
之前挂了个virtio的CD,去里面下载就好了
安装spice tools
下载spicetools包
1 |
|
镜像保存在:/usr/share/spice-guest-tools/spice-guest-tools.iso
挂载后安装就好了
安装virtiofs
到https://github.com/winfsp/winfsp下载个msi安装程序,然后在win下安装
- 启动服务
打开cmd输入:到服务那里去把这个服务设置成自动即可1
sc create VirtioFsSvc binpath="C:\Program Files\Virtio-Win\VioFS\virtiofs.exe"
然后virt-manager添加一个叫文件系统的硬件
就完成共享文件夹啦!
自启虚拟显卡
编辑 /etc/libvirt/hooks/qemu
1 |
|
加入如下内容,注意GUID和虚拟机名称(win10)
最终效果: