经过一周的努力,我刚刚按我想要的方式配置了我的 WSL2 子系统:我启用了 ZFS 支持,我可以直接从 Ubuntu 命令行启动图形应用程序;我在 Ubuntu 中安装了 nvidia 驱动程序和 CUDA 库,最后我配置了 qemu/kvm 和 virt-manager,以便可以在 Ubuntu 上虚拟化 FreeBSD。现在,问题是:我如何“告诉”FreeBSD 使用我 PC 上的一个 GPU 运行 Xorg。实际上我的系统上有两个 GPU。我默认使用的 GTX 1060(已连接我的显示器)和通常用于传递到另一个操作系统的 RTX 2080 ti。当我使用 Linux 作为主机操作系统时,我想虚拟化 Windows,并使用 qemu-kvm 和 virt-manager 在 Windows 中传递 RTX 2080 ti;当我使用 FreeBSD 作为主机操作系统时,我想使用 bhyve 将 RTX 2080 ti 传递到 Linux 客户操作系统。但是当我使用 Windows 11 作为主机操作系统并使用 Ubuntu 作为客户操作系统时,如何使用 qemu-kvm 和 virt-manager 将我的 RTX 2080 ti 传递到 FreeBSD?下面您可以看到目前在 Ubuntu 22.04 中识别的所有 PCI 设备:
# lspci
0301:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
05c0:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
117a:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
242b:00:00.0 3D controller: Microsoft Corporation Basic Render Driver
4e53:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
5dc2:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
6164:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
6251:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
7c22:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
840d:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
94be:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
ad48:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
ae16:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
af96:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
baff:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
d5cc:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
d9a5:00:00.0 System peripheral: Red Hat, Inc. Virtio file system (rev 01)
de65:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio console (rev 01)
fd8d:00:00.0 3D controller: Microsoft Corporation Basic Render Driver
唯一可以使用的两个虚拟图形适配器如下:
242b:00:00.0 3D controller: Microsoft Corporation Basic Render Driver
fd8d:00:00.0 3D controller: Microsoft Corporation Basic Render Driver
我已经尝试在 FreeBSD 中配置 Xorg,在xorg配置文件我看到的唯一一张图形“卡片”,“00:01.0 VGA 兼容控制器 RedHat QXL 半虚拟显卡“ :
像这样 :
不幸的是它不被接受为有效的显卡:
我应该怎么做才能在 FreeBSD 上运行一个可用的图形环境?也许我应该尝试通过这两个图形适配器之一
242b:00:00.0 3D controller: Microsoft Corporation Basic Render Driver
fd8d:00:00.0 3D controller: Microsoft Corporation Basic Render Driver
在 virt-manager 中它们就像是物理显卡?我非常怀疑它是否可以这样工作。
无论如何,这些是我的系统上的物理 GPU:
两者都可以在 Windows 11 和 Ubuntu 上识别:
# nvidia-smi
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 536.40 Driver Version: 536.40 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce GTX 1060 3GB WDDM | 00000000:01:00.0 On | N/A |
| 57% 41C P2 25W / 120W | 710MiB / 3072MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
| 1 NVIDIA GeForce RTX 2080 Ti WDDM | 00000000:02:00.0 Off | N/A |
| 31% 40C P8 21W / 250W | 74MiB / 11264MiB | 0% |
+_________________________________________+______________________+______________________|
一些背景知识:
Windows 版本 = Windows 11 PRO 版本 10.0.22000.2176
WSL2 版本 = 1.3.11.0
内核版本 = 5.15.90.2-3-microsoft-standard
发行版 = Ubuntu 22.10
版本内核:5.15.90.2-3
版本 WSLg:1.0.54
版本 MSRDC:1.2.4240
版本 Direct3D:1.608.2-61064218
版本 DXCore:10.0.25880.1000-230602-1350.main