[{"data":1,"prerenderedAt":231},["ShallowReactive",2],{"article-nvidia-graphic-card-virtualization-in-pve":3},{"title":4,"article":5,"hot_article":17,"month_arch":80,"cover":228},"pve显卡虚拟化 - 独孤影的博客",{"id":6,"title":7,"uri":8,"author":9,"tags":10,"created_at":14,"view_count":15,"content":16},85,"pve显卡虚拟化","nvidia-graphic-card-virtualization-in-pve","duguying",[11,12,13],"pve","显卡","虚拟化","2022-11-29 09:11:29",2133,"\u003Cp>家里闲置一段时间了的x79洋垃圾被我安装pve当做服务器了，但是它上面插了一张 nvidia GTX1060 6G 显卡，一直没用上，最近看到云游戏架构介绍之后，了解到显卡也可以虚拟化，决定自己动手将这张显卡用起来，在pve上虚拟化，这样一来可以在linux系统使用同时也可以在windows系统使用，让显卡发挥它的作用，以免浪费。\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>环境介绍\u003C\u002Fstrong>：\u003C\u002Fp>\n\n\u003Cul>\n\u003Cli>pve: 7.3\u003C\u002Fli>\n\u003Cli>显卡: nvidia GTX1060 6G\u003C\u002Fli>\n\u003Cli>主机平台: x79 E5 双路, 64G内存\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Cp>一开始我参考\u003Ca href=\"https:\u002F\u002Ffoxi.buduanwang.vip\u002Fvirtualization\u002F1683.html\">这篇\u003C\u002Fa>文章，\u003Cstrong>首先在宿主机上安装必须软件以及显卡驱动\u003C\u002Fstrong>。注意其中显卡驱动和\u003Ccode class=\"inline-code\">mdevctl\u003C\u002Fcode>是核心服务软件。\u003C\u002Fp>\n\n\u003Cpre style=\"color:#e6edf3;background-color:#0d1117;white-space:pre-wrap;word-break:break-word;\">\u003Ccode>\u003Cspan style=\"display:flex;\">\u003Cspan>apt update \u003Cspan style=\"color:#ff7b72;font-weight:bold\">&amp;&amp;\u003C\u002Fspan> apt install dkms  git build-essential pve-kernel-5.15 pve-headers-5.15 dkms cargo jq uuid-runtime -y\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>wget -P \u002Fopt\u002F http:\u002F\u002Fftp.br.debian.org\u002Fdebian\u002Fpool\u002Fmain\u002Fm\u002Fmdevctl\u002Fmdevctl_0.81-1_all.deb\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>dpkg -i \u002Fopt\u002Fmdevctl_0.81-1_all.deb\n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>然后，配置内核\u003C\u002Fp>\n\n\u003Cpre style=\"color:#e6edf3;background-color:#0d1117;white-space:pre-wrap;word-break:break-word;\">\u003Ccode>\u003Cspan style=\"display:flex;\">\u003Cspan>echo vfio &gt;&gt; \u002Fetc\u002Fmodules \n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>echo vfio_iommu_type1 &gt;&gt; \u002Fetc\u002Fmodules \n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>echo vfio_pci &gt;&gt; \u002Fetc\u002Fmodules \n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>echo vfio_virqfd &gt;&gt; \u002Fetc\u002Fmodules\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>echo  \u003Cspan style=\"color:#a5d6ff\">&#34;blacklist nouveau&#34;\u003C\u002Fspan> &gt;&gt; \u002Fetc\u002Fmodprobe.d\u002Fblacklist.conf\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>echo \u003Cspan style=\"color:#a5d6ff\">&#34;options kvm ignore_msrs=1&#34;\u003C\u002Fspan> &gt; \u002Fetc\u002Fmodprobe.d\u002Fkvm.conf \n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#8b949e;font-style:italic\"># 更新 initramfs\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>update-initramfs -k all -u\n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>\u003Cstrong>配置引导\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cpre style=\"color:#e6edf3;background-color:#0d1117;white-space:pre-wrap;word-break:break-word;\">\u003Ccode>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#8b949e;font-style:italic\">#编辑grub，请不要盲目改。根据自己的环境，选择设置\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>nano \u002Fetc\u002Fdefault\u002Fgrub \n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#8b949e;font-style:italic\">#在里面找到：\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#79c0ff\">GRUB_CMDLINE_LINUX_DEFAULT\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#a5d6ff\">&#34;quiet&#34;\u003C\u002Fspan> \n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#8b949e;font-style:italic\">#然后修改为：\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#79c0ff\">GRUB_CMDLINE_LINUX_DEFAULT\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#a5d6ff\">&#34;quiet intel_iommu=on&#34;\u003C\u002Fspan> \n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#8b949e;font-style:italic\">#如果是amd cpu请改为：\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#79c0ff\">GRUB_CMDLINE_LINUX_DEFAULT\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#a5d6ff\">&#34;quiet amd_iommu=on&#34;\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#8b949e;font-style:italic\">#更新引导\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>update-grub\n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>\u003Cstrong>重启宿主机一次\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>检查\u003Ccode class=\"inline-code\">iommu\u003C\u002Fcode>是否开启成功\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cpre style=\"color:#e6edf3;background-color:#0d1117;white-space:pre-wrap;word-break:break-word;\">\u003Ccode>\u003Cspan style=\"display:flex;\">\u003Cspan>出现有如下iommu group说明成功\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>root@pve3:~# dmesg |grep iommu\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    0.000000\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> Command line: \u003Cspan style=\"color:#79c0ff\">BOOT_IMAGE\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u002Fboot\u002Fvmlinuz-5.11.22-7-pve \u003Cspan style=\"color:#79c0ff\">root\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u002Fdev\u002Fmapper\u002Fpve-root ro quiet \u003Cspan style=\"color:#79c0ff\">iommu\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>pt \u003Cspan style=\"color:#79c0ff\">intel_iommu\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>on\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    0.075784\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> Kernel command line: \u003Cspan style=\"color:#79c0ff\">BOOT_IMAGE\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u002Fboot\u002Fvmlinuz-5.11.22-7-pve \u003Cspan style=\"color:#79c0ff\">root\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u002Fdev\u002Fmapper\u002Fpve-root ro quiet \u003Cspan style=\"color:#79c0ff\">iommu\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>pt \u003Cspan style=\"color:#79c0ff\">intel_iommu\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>on\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    0.352588\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> iommu: Default domain type: Passthrough \u003Cspan style=\"color:#ff7b72;font-weight:bold\">(\u003C\u002Fspan>set via kernel command line\u003Cspan style=\"color:#ff7b72;font-weight:bold\">)\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373583\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:00.0: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">0\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373592\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:02.0: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">1\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373605\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:14.0: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">2\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373613\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:17.0: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">3\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373623\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:1c.0: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">4\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373637\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:1d.0: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">5\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373647\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:1d.2: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">6\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373656\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:1d.3: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">7\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373675\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:1f.0: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">8\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373683\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:1f.2: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">8\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373691\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:1f.3: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">8\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373699\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:1f.4: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">8\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373707\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:00:1f.6: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">9\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373717\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:01:00.0: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">10\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373726\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:03:00.0: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">11\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.373735\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> pci 0000:05:00.0: Adding to iommu group \u003Cspan style=\"color:#a5d6ff\">12\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>    1.656483\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan>     \u003Cspan style=\"color:#79c0ff\">intel_iommu\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>on\n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>注意，上面日志中必须出现\u003Ccode class=\"inline-code\">iommu group\u003C\u002Fcode>相关内容，否则是\u003Ccode class=\"inline-code\">iommu\u003C\u002Fcode>开启失败，具体原因很可能是机器的bios中没有开启或者没有完全开启\u003Ccode class=\"inline-code\">VT-d\u003C\u002Fcode>，请将\u003Ccode class=\"inline-code\">VT-d\u003C\u002Fcode>及相关bios选项设置为\u003Ccode class=\"inline-code\">enabled\u003C\u002Fcode>状态，重启机器后再执行上述\u003Ccode class=\"inline-code\">dmesg\u003C\u002Fcode>命令查看日志是否正常。\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>安装驱动\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cpre style=\"color:#e6edf3;background-color:#0d1117;white-space:pre-wrap;word-break:break-word;\">\u003Ccode>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#8b949e;font-style:italic\"># 将驱动下载至\u002Fopt目录\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>wget https:\u002F\u002Ffoxi.buduanwang.vip\u002Fpan\u002Ffoxi\u002FVirtualization\u002FvGPU\u002FNVIDIA-Linux-x86_64-460.73.01-grid-vgpu-kvm-v5-5.15.run -P \u002Fopt\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#8b949e;font-style:italic\"># 给驱动添加可执行权限\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>chmod +x \u002Fopt\u002FNVIDIA-Linux-x86_64-460.73.01-grid-vgpu-kvm-v5-5.15.run\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#8b949e;font-style:italic\"># 安装\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>sh -c \u002Fopt\u002FNVIDIA-Linux-x86_64-460.73.01-grid-vgpu-kvm-v5-5.15.run \n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>安装过程可以参考上文中所指出的引用文章\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>配置 vgpu_unlock\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp>vgpu_unlock 是为消费级显卡虚拟化功能解锁，nvidia消费级显卡默认是不能开启vgpu虚拟化的，想要专业的支持虚拟化的显卡，需要购买 nvidia Tesla 等型号的显卡。我们这里是 GTX1060 所以需要使用 vgpu_unlock 进行 vpgu 解锁。\u003C\u002Fp>\n\n\u003Cpre style=\"color:#e6edf3;background-color:#0d1117;white-space:pre-wrap;word-break:break-word;\">\u003Ccode>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#8b949e;font-style:italic\"># 下载vgpu_unlock-rs版本\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>cd \u002Fopt\u002F \u003Cspan style=\"color:#ff7b72;font-weight:bold\">&amp;&amp;\u003C\u002Fspan> git clone https:\u002F\u002Fgithub.com\u002Fmbilker\u002Fvgpu_unlock-rs.git \n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#8b949e;font-style:italic\"># 编译\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>cd \u002Fopt\u002Fvgpu_unlock-rs \u003Cspan style=\"color:#ff7b72;font-weight:bold\">&amp;&amp;\u003C\u002Fspan> git checkout v2.0.1 \u003Cspan style=\"color:#ff7b72;font-weight:bold\">&amp;&amp;\u003C\u002Fspan> cargo build --release\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#8b949e;font-style:italic\"># 安装 vgpu_unlock\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>cp \u002Fopt\u002Fvgpu_unlock-rs\u002Ftarget\u002Frelease\u002Flibvgpu_unlock_rs.so \u002Flib\u002Fnvidia\u002Flibvgpu_unlock_rs.so\n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>\u003Cstrong>重启宿主机一次\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp>验证显卡驱动及 vgpu_unlock 是否成功。重启之后，使用nvidia-smi 确认是否如下，显示GPU信息。\u003C\u002Fp>\n\n\u003Cpre style=\"color:#e6edf3;background-color:#0d1117;white-space:pre-wrap;word-break:break-word;\">\u003Ccode>\u003Cspan style=\"display:flex;\">\u003Cspan>➜  ~ nvidia-smi\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>Tue Nov \u003Cspan style=\"color:#a5d6ff\">29\u003C\u002Fspan> 09:31:35 \u003Cspan style=\"color:#a5d6ff\">2022\u003C\u002Fspan>       \n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>+-----------------------------------------------------------------------------+\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>| NVIDIA-SMI 460.73.01    Driver Version: 460.73.01    CUDA Version: 11.2     |\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>|-------------------------------+----------------------+----------------------+\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>| Fan  Temp  Perf  Pwr:Usage\u002FCap|         Memory-Usage | GPU-Util  Compute M. |\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>|                               |                      |               MIG M. |\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>|\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>+\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>+\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>|\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>|   \u003Cspan style=\"color:#a5d6ff\">0\u003C\u002Fspan>  GeForce GTX 106...  On   | 00000000:03:00.0 Off |                  N\u002FA |\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>| 10%   53C    P8     9W \u002F 120W |   4084MiB \u002F  6143MiB |      0%      Default |\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>|                               |                      |                  N\u002FA |\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>+-------------------------------+----------------------+----------------------+\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>                                                                               \n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>+-----------------------------------------------------------------------------+\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>| Processes:                                                                  |\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>|        ID   ID                                                   Usage      |\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>|\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>\u003Cspan style=\"color:#ff7b72;font-weight:bold\">=\u003C\u002Fspan>|\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>|  No running processes found                                                 |\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>+-----------------------------------------------------------------------------+\n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>使用mdevctl types 验证是否出现mdev设备\u003C\u002Fp>\n\n\u003Cpre style=\"color:#e6edf3;background-color:#0d1117;white-space:pre-wrap;word-break:break-word;\">\u003Ccode>\u003Cspan style=\"display:flex;\">\u003Cspan>➜  ~ mdevctl types\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>0000:03:00.0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-156\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-2B\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=4, frl_config=45, framebuffer=2048M, max_resolution=5120x2880, max_instance=12\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-215\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-2B4\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=4, frl_config=45, framebuffer=2048M, max_resolution=5120x2880, max_instance=12\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-241\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-1B4\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=4, frl_config=45, framebuffer=1024M, max_resolution=5120x2880, max_instance=24\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-283\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-4C\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=4096M, max_resolution=4096x2160, max_instance=6\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-284\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-6C\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=6144M, max_resolution=4096x2160, max_instance=4\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-285\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-8C\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=8192M, max_resolution=4096x2160, max_instance=3\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-286\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-12C\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=12288M, max_resolution=4096x2160, max_instance=2\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-287\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-24C\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=24576M, max_resolution=4096x2160, max_instance=1\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-46\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-1Q\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=4, frl_config=60, framebuffer=1024M, max_resolution=5120x2880, max_instance=24\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-47\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-2Q\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=4, frl_config=60, framebuffer=2048M, max_resolution=7680x4320, max_instance=12\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-48\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-3Q\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=4, frl_config=60, framebuffer=3072M, max_resolution=7680x4320, max_instance=8\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-49\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-4Q\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=4, frl_config=60, framebuffer=4096M, max_resolution=7680x4320, max_instance=6\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-50\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-6Q\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=4, frl_config=60, framebuffer=6144M, max_resolution=7680x4320, max_instance=4\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-51\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-8Q\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=4, frl_config=60, framebuffer=8192M, max_resolution=7680x4320, max_instance=3\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-52\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-12Q\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=4, frl_config=60, framebuffer=12288M, max_resolution=7680x4320, max_instance=2\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-53\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-24Q\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=4, frl_config=60, framebuffer=24576M, max_resolution=7680x4320, max_instance=1\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-54\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-1A\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=1024M, max_resolution=1280x1024, max_instance=24\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-55\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 10\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-2A\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=2048M, max_resolution=1280x1024, max_instance=12\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-56\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-3A\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=3072M, max_resolution=1280x1024, max_instance=8\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-57\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-4A\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=4096M, max_resolution=1280x1024, max_instance=6\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-58\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-6A\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=6144M, max_resolution=1280x1024, max_instance=4\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-59\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-8A\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=8192M, max_resolution=1280x1024, max_instance=3\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-60\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-12A\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=12288M, max_resolution=1280x1024, max_instance=2\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-61\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-24A\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=1, frl_config=60, framebuffer=24576M, max_resolution=1280x1024, max_instance=1\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>  nvidia-62\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Available instances: 0\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Device API: vfio-pci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Name: GRID P40-1B\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>    Description: num_heads=4, frl_config=45, framebuffer=1024M, max_resolution=5120x2880, max_instance=24\n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>如果上面两个验证不正常，请检查 \u003Ccode class=\"inline-code\">nvidia-vgpud\u003C\u002Fcode> 服务和 \u003Ccode class=\"inline-code\">nvidia-vgpu-mgr\u003C\u002Fcode> 服务的日志输出，命令如下\u003C\u002Fp>\n\n\u003Cpre style=\"color:#e6edf3;background-color:#0d1117;white-space:pre-wrap;word-break:break-word;\">\u003Ccode>\u003Cspan style=\"display:flex;\">\u003Cspan>journalctl -u  nvidia-vgpud\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>journalctl -u  nvidia-vgpu-mgr\n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>请根据日志错误自行谷歌，然后尝试修复。\u003C\u002Fp>\n\n\u003Cp>配置 vgpu 参数，即前面安装的 vgpu_unlock-rs 的配置文件，路径 \u003Ccode class=\"inline-code\">\u002Fetc\u002Fvgpu_unlock\u002Fprofile_override.toml\u003C\u002Fcode>。内容如下\u003C\u002Fp>\n\n\u003Cpre style=\"color:#e6edf3;background-color:#0d1117;white-space:pre-wrap;word-break:break-word;\">\u003Ccode>\u003Cspan style=\"display:flex;\">\u003Cspan>\u003Cspan style=\"color:#f85149\">➜\u003C\u002Fspan>  \u003Cspan style=\"color:#f85149\">~\u003C\u002Fspan> cat \u003Cspan style=\"color:#f85149\">\u002F\u003C\u002Fspan>etc\u003Cspan style=\"color:#f85149\">\u002F\u003C\u002Fspan>vgpu_unlock\u003Cspan style=\"color:#f85149\">\u002F\u003C\u002Fspan>profile_override.toml\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>[profile.nvidia-55]\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>num_displays = \u003Cspan style=\"color:#a5d6ff\">1\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>display_width = \u003Cspan style=\"color:#a5d6ff\">1920\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>display_height = \u003Cspan style=\"color:#a5d6ff\">1080\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>max_pixels = \u003Cspan style=\"color:#a5d6ff\">2073600\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>cuda_enabled = \u003Cspan style=\"color:#a5d6ff\">1\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>frl_enabled = \u003Cspan style=\"color:#a5d6ff\">0\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>注意：\u003Ccode class=\"inline-code\">framebuffer\u003C\u002Fcode>，\u003Ccode class=\"inline-code\">pci_id\u003C\u002Fcode>，\u003Ccode class=\"inline-code\">pci_device_id\u003C\u002Fcode> 这三个选项不要配置，因为这三个参数的值你拿不准，会导致后续创建虚拟机虚拟显卡后，虚拟机无法启动，常见报错如下\n注意：我这里选择 \u003Ccode class=\"inline-code\">nvidia-55\u003C\u002Fcode> 这个虚拟显卡，它显存是2G，我6G显卡可以虚拟出3个这个型号的显卡，你也可以选择其他显卡，具体显卡对应参数，参见上面\u003Ccode class=\"inline-code\">mdevctl types\u003C\u002Fcode>的输出内容。\u003C\u002Fp>\n\n\u003Cpre style=\"color:#e6edf3;background-color:#0d1117;white-space:pre-wrap;word-break:break-word;\">\u003Ccode>\u003Cspan style=\"display:flex;\">\u003Cspan>Input\u002Foutput error Verify all devices in group 29 are bound to vfio-&lt;bus&gt; or pci-stub and not already in use\n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>具体配置可以参考 vgpu_unlock-rs 项目\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmbilker\u002Fvgpu_unlock-rs\">主页\u003C\u002Fa>。\u003C\u002Fp>\n\n\u003Cp>接下来就可以在pve-web上创建虚拟显卡了，首先设备选择 \u003Ccode class=\"inline-code\">GTX 1060\u003C\u002Fcode>\u003C\u002Fp>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fimage.duguying.net\u002F2022\u002F11\u002F0of8azqz.webp\" alt=\"0of8azqz\" \u002F>\u003C\u002Fp>\n\n\u003Cp>然后 \u003Ccode class=\"inline-code\">MDev\u003C\u002Fcode> 选择前面 \u003Ccode class=\"inline-code\">vgpu_unlock\u002Fprofile_override.toml\u003C\u002Fcode> 里配置的 \u003Ccode class=\"inline-code\">nvidia-55\u003C\u002Fcode>\u003C\u002Fp>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fimage.duguying.net\u002F2022\u002F11\u002Feshvg6wq.webp\" alt=\"eshvg6wq\" \u002F>\u003C\u002Fp>\n\n\u003Cp>显卡创建完毕，虚拟机开机，windows系统中设备管理器可以看到未知的显示设备，安装驱动，从\u003Ca href=\"https:\u002F\u002Ffoxi.buduanwang.vip\u002Fpan\u002Ffoxi\u002FVirtualization\u002FvGPU\u002Fguestdrivers\u002F\">这里\u003C\u002Fa>下载，选择\u003Ccode class=\"inline-code\">grid_win10\u003C\u002Fcode>原生驱动即可，也可以去NVIDIA官网下载grid驱动，但是据说虚拟机里的驱动版本不能比宿主机驱动版本高，具体我没验证。安装完毕如下\u003C\u002Fp>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fimage.duguying.net\u002F2022\u002F11\u002F2wc85256.webp\" alt=\"2wc85256\" \u002F>\u003C\u002Fp>\n\n\u003Cp>接下来我们在我们的 \u003Ccode class=\"inline-code\">ubuntu-20.04\u003C\u002Fcode> 虚拟机上也添加一个显卡，添加步骤相同，看结果\u003C\u002Fp>\n\n\u003Cpre style=\"color:#e6edf3;background-color:#0d1117;white-space:pre-wrap;word-break:break-word;\">\u003Ccode>\u003Cspan style=\"display:flex;\">\u003Cspan>root@ubuntu-gpu:~# lspci\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC \u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>Natoma\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> \u003Cspan style=\"color:#ff7b72;font-weight:bold\">(\u003C\u002Fspan>rev 02\u003Cspan style=\"color:#ff7b72;font-weight:bold\">)\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA \u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>Natoma\u002FTriton II\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE \u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>Natoma\u002FTriton II\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB \u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>Natoma\u002FTriton II\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> \u003Cspan style=\"color:#ff7b72;font-weight:bold\">(\u003C\u002Fspan>rev 01\u003Cspan style=\"color:#ff7b72;font-weight:bold\">)\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>00:01.3 Bridge: Intel Corporation 82371AB\u002FEB\u002FMB PIIX4 ACPI \u003Cspan style=\"color:#ff7b72;font-weight:bold\">(\u003C\u002Fspan>rev 03\u003Cspan style=\"color:#ff7b72;font-weight:bold\">)\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>00:02.0 VGA compatible controller: Device 1234:1111 \u003Cspan style=\"color:#ff7b72;font-weight:bold\">(\u003C\u002Fspan>rev 02\u003Cspan style=\"color:#ff7b72;font-weight:bold\">)\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>00:03.0 Unclassified device \u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>00ff\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan>: Red Hat, Inc. Virtio memory balloon\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>00:05.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>00:10.0 VGA compatible controller: NVIDIA \u003Cspan style=\"color:#f85149\">C\u003C\u002Fspan>orporation GP102GL \u003Cspan style=\"color:#ff7b72;font-weight:bold\">[\u003C\u002Fspan>Tesla P40\u003Cspan style=\"color:#ff7b72;font-weight:bold\">]\u003C\u002Fspan> \u003Cspan style=\"color:#ff7b72;font-weight:bold\">(\u003C\u002Fspan>rev a1\u003Cspan style=\"color:#ff7b72;font-weight:bold\">)\u003C\u002Fspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>00:12.0 Ethernet controller: Red Hat, Inc. Virtio network device\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>00:1e.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>00:1f.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"display:flex;\">\u003Cspan>01:01.0 SCSI storage controller: Red Hat, Inc. Virtio SCSI\n\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>可以看到我们的NVIDIA显卡，表示虚拟显卡添加正常，驱动可以自己去官网下载安装Grid驱动。\u003C\u002Fp>\n\n\u003Cp>可惜的是，显卡虚拟化成功了，但是需要买 nvidia 的 License 才能在虚拟机中用。老黄的刀法，不得不服啊……😅\u003C\u002Fp>\n",{"title":18,"list":19},"最热文章",[20,26,32,38,44,50,56,62,68,74],{"id":21,"title":22,"uri":23,"author":9,"created_at":24,"view_count":25},28,"docker容器目录与主机目录同步","\u002Farticle\u002Fdocker容器目录与主机目录同步","2014-12-31 12:34:08",15570,{"id":27,"title":28,"uri":29,"author":9,"created_at":30,"view_count":31},21,"beego中使用fis","\u002Farticle\u002Fbeego中使用fis","2014-12-03 10:47:56",9250,{"id":33,"title":34,"uri":35,"author":9,"created_at":36,"view_count":37},20,"用github登录，oauth开发","\u002Farticle\u002F用github登录，oauth开发","2014-11-23 13:33:37",9113,{"id":39,"title":40,"uri":41,"author":9,"created_at":42,"view_count":43},18,"windows服务注册工具nssm","\u002Farticle\u002Fwindows服务注册工具nssm","2014-10-31 21:34:39",9047,{"id":45,"title":46,"uri":47,"author":9,"created_at":48,"view_count":49},49,"用latex排版中文书籍","\u002Farticle\u002F用latex排版中文书籍","2016-10-31 11:12:02",8634,{"id":51,"title":52,"uri":53,"author":9,"created_at":54,"view_count":55},19,"texlive中文书签乱码","\u002Farticle\u002Ftexlive中文书签乱码","2014-11-15 02:54:01",8461,{"id":57,"title":58,"uri":59,"author":9,"created_at":60,"view_count":61},6,"Windows上的软件包管理器chocolatey","\u002Farticle\u002FWindows上的软件包管理器chocolatey","2014-08-10 15:55:22",8009,{"id":63,"title":64,"uri":65,"author":9,"created_at":66,"view_count":67},3,"利用开源和免费资源搭建CI环境","\u002Farticle\u002F利用开源和免费资源搭建CI环境","2014-07-04 16:54:58",7732,{"id":69,"title":70,"uri":71,"author":9,"created_at":72,"view_count":73},16,"php-fpm网站目录权限配置","\u002Farticle\u002Fphp-fpm网站目录权限配置","2014-10-18 01:36:10",7274,{"id":75,"title":76,"uri":77,"author":9,"created_at":78,"view_count":79},27,"sublime text 2插件开发，外部修改文件无法重新加载","\u002Farticle\u002Fsublime text 2插件开发，外部修改文件无法重新加载","2014-12-26 20:24:13",7054,{"title":81,"list":82},"按月归档",[83,87,90,93,96,99,102,106,110,113,116,119,123,126,129,133,136,139,142,146,149,152,155,158,161,164,167,170,173,176,179,182,185,188,191,194,197,200,203,206,210,213,216,219,222,225],{"title":84,"uri":85,"view_count":86},"2026年7月","\u002Farchive\u002F2026\u002F7\u002F1","[1]",{"title":88,"uri":89,"view_count":86},"2026年1月","\u002Farchive\u002F2026\u002F1\u002F1",{"title":91,"uri":92,"view_count":86},"2025年4月","\u002Farchive\u002F2025\u002F4\u002F1",{"title":94,"uri":95,"view_count":86},"2024年6月","\u002Farchive\u002F2024\u002F6\u002F1",{"title":97,"uri":98,"view_count":86},"2024年5月","\u002Farchive\u002F2024\u002F5\u002F1",{"title":100,"uri":101,"view_count":86},"2024年4月","\u002Farchive\u002F2024\u002F4\u002F1",{"title":103,"uri":104,"view_count":105},"2023年12月","\u002Farchive\u002F2023\u002F12\u002F1","[6]",{"title":107,"uri":108,"view_count":109},"2023年11月","\u002Farchive\u002F2023\u002F11\u002F1","[2]",{"title":111,"uri":112,"view_count":86},"2023年10月","\u002Farchive\u002F2023\u002F10\u002F1",{"title":114,"uri":115,"view_count":86},"2023年7月","\u002Farchive\u002F2023\u002F7\u002F1",{"title":117,"uri":118,"view_count":109},"2023年6月","\u002Farchive\u002F2023\u002F6\u002F1",{"title":120,"uri":121,"view_count":122},"2023年5月","\u002Farchive\u002F2023\u002F5\u002F1","[3]",{"title":124,"uri":125,"view_count":109},"2023年4月","\u002Farchive\u002F2023\u002F4\u002F1",{"title":127,"uri":128,"view_count":109},"2023年3月","\u002Farchive\u002F2023\u002F3\u002F1",{"title":130,"uri":131,"view_count":132},"2023年2月","\u002Farchive\u002F2023\u002F2\u002F1","[5]",{"title":134,"uri":135,"view_count":86},"2023年1月","\u002Farchive\u002F2023\u002F1\u002F1",{"title":137,"uri":138,"view_count":109},"2022年12月","\u002Farchive\u002F2022\u002F12\u002F1",{"title":140,"uri":141,"view_count":132},"2022年11月","\u002Farchive\u002F2022\u002F11\u002F1",{"title":143,"uri":144,"view_count":145},"2022年10月","\u002Farchive\u002F2022\u002F10\u002F1","[4]",{"title":147,"uri":148,"view_count":105},"2022年9月","\u002Farchive\u002F2022\u002F9\u002F1",{"title":150,"uri":151,"view_count":132},"2022年8月","\u002Farchive\u002F2022\u002F8\u002F1",{"title":153,"uri":154,"view_count":86},"2019年7月","\u002Farchive\u002F2019\u002F7\u002F1",{"title":156,"uri":157,"view_count":86},"2019年2月","\u002Farchive\u002F2019\u002F2\u002F1",{"title":159,"uri":160,"view_count":86},"2018年9月","\u002Farchive\u002F2018\u002F9\u002F1",{"title":162,"uri":163,"view_count":86},"2018年8月","\u002Farchive\u002F2018\u002F8\u002F1",{"title":165,"uri":166,"view_count":86},"2017年11月","\u002Farchive\u002F2017\u002F11\u002F1",{"title":168,"uri":169,"view_count":86},"2017年8月","\u002Farchive\u002F2017\u002F8\u002F1",{"title":171,"uri":172,"view_count":86},"2017年5月","\u002Farchive\u002F2017\u002F5\u002F1",{"title":174,"uri":175,"view_count":86},"2017年4月","\u002Farchive\u002F2017\u002F4\u002F1",{"title":177,"uri":178,"view_count":86},"2016年11月","\u002Farchive\u002F2016\u002F11\u002F1",{"title":180,"uri":181,"view_count":86},"2016年10月","\u002Farchive\u002F2016\u002F10\u002F1",{"title":183,"uri":184,"view_count":109},"2016年9月","\u002Farchive\u002F2016\u002F9\u002F1",{"title":186,"uri":187,"view_count":86},"2016年8月","\u002Farchive\u002F2016\u002F8\u002F1",{"title":189,"uri":190,"view_count":109},"2016年7月","\u002Farchive\u002F2016\u002F7\u002F1",{"title":192,"uri":193,"view_count":132},"2016年6月","\u002Farchive\u002F2016\u002F6\u002F1",{"title":195,"uri":196,"view_count":86},"2015年12月","\u002Farchive\u002F2015\u002F12\u002F1",{"title":198,"uri":199,"view_count":86},"2015年10月","\u002Farchive\u002F2015\u002F10\u002F1",{"title":201,"uri":202,"view_count":109},"2015年2月","\u002Farchive\u002F2015\u002F2\u002F1",{"title":204,"uri":205,"view_count":86},"2015年1月","\u002Farchive\u002F2015\u002F1\u002F1",{"title":207,"uri":208,"view_count":209},"2014年12月","\u002Farchive\u002F2014\u002F12\u002F1","[8]",{"title":211,"uri":212,"view_count":109},"2014年11月","\u002Farchive\u002F2014\u002F11\u002F1",{"title":214,"uri":215,"view_count":132},"2014年10月","\u002Farchive\u002F2014\u002F10\u002F1",{"title":217,"uri":218,"view_count":122},"2014年9月","\u002Farchive\u002F2014\u002F9\u002F1",{"title":220,"uri":221,"view_count":122},"2014年8月","\u002Farchive\u002F2014\u002F8\u002F1",{"title":223,"uri":224,"view_count":122},"2014年7月","\u002Farchive\u002F2014\u002F7\u002F1",{"title":226,"uri":227,"view_count":109},"2013年9月","\u002Farchive\u002F2013\u002F9\u002F1",{"url":229,"title":230},"https:\u002F\u002Fimage.duguying.net\u002F2022\u002F09\u002Fij6x8o4s.webp","老家 摄于2020年秋",1790062261198]