【pve】
pve
- 下载显卡的BIOS
- 稳定版 (Stable) VirtIO 驱动镜像
- 下载pve镜像
- 进入pve系统
- 去除PVE无有效订阅提示
- 备份文件
- 修改文件
- 修改 GRUB 启动参数(开启PVE直通功能)
- 🔍 参数解析
- 指定系统启动时自动加载的内核模块
- 更新上述配置信息并重启PVE:
- 验证是否已开启iommu:
- 查看可直通设备列表
- 将宿主机的物理 PCI 设备直接分配给虚拟机使用。
- 直通蓝牙(USB 设备直通)
- **(1)找到蓝牙的 USB 设备 ID**
- **(2)编辑虚拟机配置文件**
- 关机
- ✅ 终极解决方案
- 强制绑定 VFIO 驱动(必需步骤)
- 更新 initramfs 并重启
下载显卡的BIOS
win+r
输入dxdiag
根据查询信息得出RX 5700 XT 标准版
下载5700xt对应版本bios
稳定版 (Stable) VirtIO 驱动镜像
下载稳定版VirtIO 驱动镜像
下载pve镜像
下载pve镜像
进入pve系统
去除PVE无有效订阅提示
备份文件
cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak
修改文件
nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
搜索 res.data.status.toLowerCase() !== ‘active’,并修改为:
if (false) { // 原判断条件被替换为 false,阻止弹窗
修改 GRUB 启动参数(开启PVE直通功能)
nano /etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction initcall_blacklist=sysfb_init video=vesa:off video=vesafb:off video=efifb:off video=simplefb:off"
🔍 参数解析
参数 | 作用 | 适用场景 |
---|---|---|
quiet | 抑制启动时的内核日志输出,仅显示关键信息 | 启动界面更清爽 |
amd_iommu=on | 启用 AMD IOMMU 功能 | AMD虚拟化环境,需要进行 PCI 设备直通时。 |
iommu=pt | 启用“直通”模式。IOMMU 仅对需要直通的设备进行地址转换 | 对宿主机操作系统使用的设备保持身份映射,减少性能开销。 |
pcie_acs_override=downstream,multifunction | 强制拆分 PCIe 设备组,解决直通冲突 | 多 GPU/多设备直通 |
initcall_blacklist=sysfb_init | 屏蔽系统帧缓冲初始化,避免宿主机占用GPU | GPU 直通 |
video=vesa:off video=vesafb:off video=efifb:off video=simplefb:off | 禁用所有帧缓冲驱动,释放显卡 | 避免宿主机占用 GPU |
pcie_port_pm=off | 禁用 PCIe 端口电源管理,避免设备意外休眠 | 解决 GPU/USB 直通后设备掉线 |
disable_idle_d3=1 | 阻止 PCIe 设备进入 D3 低功耗状态 | 防止直通设备唤醒失败 |
指定系统启动时自动加载的内核模块
nano /etc/modulesvfio
vfio_iommu_type1
vfio_pci
更新上述配置信息并重启PVE:
update-grub
update-initramfs -u -k all
reboot
验证是否已开启iommu:
dmesg | grep iommu
查看可直通设备列表
lspci
将宿主机的物理 PCI 设备直接分配给虚拟机使用。
nano /etc/pve/qemu-server/100.conf
找到以 hostpci0 和 hostpci1 开头的行,将它们修改为以下内容:# 修改(正确的设备地址):
hostpci0: 0000:08:00.0,pcie=1,romfile=AMD.RX5700XT.8192.190616.rom,x-vga=1
hostpci1: 0000:08:00.1cpu: host,hidden=1
直通蓝牙(USB 设备直通)
由于蓝牙模块通常是 USB 设备,不能直接 PCI 直通,但可以通过 USB Passthrough(USB 直通) 方式传递给虚拟机。
(1)找到蓝牙的 USB 设备 ID
lsusb
找到类似:
Bus 001 Device 002: ID 8087:07dc Intel Corp. Bluetooth wireless interface
记录 ID 8087:07dc
(厂商ID:设备ID)。
(2)编辑虚拟机配置文件
假设虚拟机 ID 是 100
:
nano /etc/pve/qemu-server/100.conf
在文件末尾添加:
usb0: host=8087:07dc
8087:07dc
替换为你的蓝牙 USB 设备 ID
关机
qm stop 100
✅ 终极解决方案
强制绑定 VFIO 驱动(必需步骤)
nano /etc/modprobe.d/vfio.conf
# 强制 vfio-pci 驱动绑定到 RX 5700 XT 和其音频控制器
options vfio-pci ids=1002:731f,1002:ab38 disable_vga=1# 阻止宿主机加载冲突驱动
blacklist amdgpu
blacklist radeon
blacklist snd_hda_intel# 确保 vfio-pci 优先于宿主机驱动加载
softdep amdgpu pre: vfio-pci
softdep snd_hda_intel pre: vfio-pci
更新 initramfs 并重启
update-initramfs -u -k all
reboot
✅ 验证是否生效
重启后运行:
lspci -nnk -d 1002:731f