跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(LCZ-Blue)
  • 不使用皮肤
  • LCZ-Green
  • LCZ-Blue
  • LCZ-Black
折叠
品牌标识

抡锤者

首页 版块 标签
硬件
装备秀
AI 广场 App
Kang BenyuanK

Kang Benyuan

@Kang Benyuan
取消关注 关注
关于
帖子
16
主题
1
分享
0
群组
0
粉丝
0
关注
0

帖子

最新 最佳 有争议的

  • 华南金牌X99-TF 2696V3 PVE直通7900XTX成功
    Kang BenyuanK Kang Benyuan
    AI硬件 x99 7900xtx 服务器

    首先感谢一下版主推荐了7900xtx,建议也很好都是个渐进的过程,小投入先玩玩看,有必要再砸钱。

    目标配置如下,显卡目前是7900xtx。
    序号 配件名称 型号 规格 备注 数量 价格
    1 cpu 2696V3 LGA2011-3 鸡血刷bios降压 1 0
    2 主板 华南金牌TF ATX 板U套装 1 958
    3 内存 DDR3服务器ecc 1600MHz 4 980
    4 机箱 旧机箱 nzxt p410 只有240水冷 0
    5 硬盘 1Tssd sata接口 0
    6 cpu水冷 240规格 1 295
    7 显卡 7900xtx蓝宝石超白金 咸鱼 6500
    8 电源 酷冷至尊(CoolerMaster)X Mighty 2000W 白金牌静音电源 2000w模组 1 2799
    e9a943af-3d77-4b15-912c-a843563ce403-image.jpeg

    分别在三块硬盘上安装了三个系统
    第一块1个256g的nvme安装了ubuntu24.04LTS, Qwen2.5的7B和Qwen3.8的27B,没有做深度测试仅仅是跑通。十几个token上下,没有做优化,显卡用的节能模式。
    第二块是个sata的120Gssd硬盘,安装了Win10
    第三块是sata的960G的ssd,安装了PVE。一个server2022虚拟机,一个ubuntu24.04加7900xtx直通。

    听了版主很多视频,一再强调x99够用,最好物理安装,虚拟机很麻烦会有各种问题,但是需求也很客观,我确实需要两个机器跑数据运算,切成两个虚拟机并直通一个是最合理的分配。一个跑数据库一个跑前端运算,核心和线程可以完全匹配全部利用起来,而且比网络传输数据可靠速度也更靠谱。

    PVE里面server2022虚拟机和ubuntu24.04各分配了60G内存8个核心,留给pve2个核心8G内存。折腾了一天,还没安装本地大模型,但是pve的显卡直通已经搞定了。先说重点后续补充其他信息。

    7900xtx 是可以pve直通的。我有另外一张geforce620的亮机卡,所以可能少走了很多弯路。
    一、x99 BIOS准备 ,用的官方鸡血bios,版本4.04 (注意bios版本,我并没有出现后关闭导致7900xtxCSM黑屏可能与bios版本有关)
    二、IOMMU和VT-D开启
    三、CSM关闭 关闭前确认显卡选项是EFI
    四、开启Above 4G
    五、Resize Bar 开启
    六、SR-IOV开启
    重点虚拟机先不要加上7900xtx,先把虚拟机安装好,之后用命令行去直通显卡。
    七、之后pve会面对多次开机锁死,解决方法是在pve开始菜单按e编辑grub,之后ctrl+x启动。 后续我会补充grub代码。PVE。一个server2022虚拟机,一个ubuntu24.04加7900xtx直通。
    八、进入pve之后会发现虚拟机无法启动,主要问题是x99太老,导致pcie的分配混乱导致冲突引起。需要写脚本固定。后续补充代码。
    九、重点这是重点中的重点,x99必须要作的,提取显卡的bios并存到pve的/usr/share/kvm目录,使用gpu-z提取

    十、这个年代肯定都是在AI的指导下复制粘贴,总共动用了三个,Deepseek网页版,gemini网页版,Qwen网页版。最靠谱的是Deepseek在他的指导下完成。不提vbios的都是刷流氓。Qwen幻觉有点严重。

    十一、很晚了先占个坑,回头测一下直通的大模型情况再来更新。初步验证了直通的可行性,实际大模型表现待确认


  • 华南金牌X99-TF 2696V3 PVE直通7900XTX成功
    Kang BenyuanK Kang Benyuan
    AI硬件 x99 7900xtx 服务器

    @terry

    1推荐的7900xtx
    2……内存便宜忍了
    3没拍……回头补上


  • 华南金牌X99-TF 2696V3 PVE直通7900XTX成功
    Kang BenyuanK Kang Benyuan
    AI硬件 x99 7900xtx 服务器

    X99 平台 Proxmox VE 直通 AMD RX 7900 XTX 完整实战指南

    适用平台:华南金牌 X99-TF + Intel Xeon E5 v3/v4(40 通道 CPU 最佳)
    目标显卡:Sapphire NITRO+ RX 7900 XTX Vapor-X(设备 ID 1002:744c,音频 ID 1002:ab30)
    PVE 版本:Proxmox VE 8.x / 9.x,内核 7.0.2-6-pve
    亮机卡:NVIDIA GeForce GT 620(10de:1049,用于宿主机显示输出)
    目标 Guest:Ubuntu 24.04 LTS

    写在前面:AMD 官方明确声明 RX 7900 XTX 的 PCI Passthrough 不在支持范围内,所有可用的方案均属于社区实践。本指南记录的是在 X99 平台上实际跑通的完整配置,但不保证在其他主板上完全复现。X99 平台存在 PCIe 根端口 AER 报错这一硬件级限制,需要在软件层面尽量规避。


    一、硬件准备

    设备 位置 用途
    RX 7900 XTX 离 CPU 最近的 PCIe x16 插槽(Port 1A) 直通给 Guest
    GT 620 第二条 x16 或 x4 插槽 PVE 宿主机显示输出
    显示器 接在 GT 620 上 用于 PVE 安装和救援

    关键原则:7900 XTX 必须插在直连 CPU 的插槽,保证 IOMMU 分组独立且 PCIe 带宽为 x16。GT 620 负责宿主机显示,两张卡在不同的 IOMMU 组(本例中 GT 620 在 Group 31,7900 XTX 在 Group 35)。


    二、BIOS 设置(华南金牌 X99-TF)

    进入 BIOS(Aptio Setup Utility),完成以下配置:

    2.1 IntelRCSetup 标签页

    进入 IIO Configuration,设置:

    选项 值
    Intel VT for Directed I/O (VT-d) [Enabled]
    ACS Control [Enabled]
    Interrupt Remapping [Enabled]
    Coherency Support (Non-Isoch) [Enabled]
    Coherency Support (Isoch) [Enabled]
    VTd Azalea Vcp Optimizations [Disable](保持默认)

    进入 IIO0 Configuration,确认两个全长插槽都是 x16:

    选项 值
    IOU0 (IIO PCIe Port 2) [x16]
    IOU1 (IIO PCIe Port 3) [x16]

    注意:X99-TF 的 BIOS 中没有独立的 Link Speed 选项(子菜单中也没有),速率由硬件自动协商为 Gen3。

    2.2 Advanced 标签页

    进入 PCI Subsystem Settings:

    选项 值
    Above 4G Decoding [Enabled]
    Re-Size BAR Support [Enabled](部分 BIOS 版本需关闭,见下方说明)
    SR-IOV Support [Enabled]

    进入 CSM Configuration:

    选项 值
    CSM Support [Disabled](使用 UEFI 引导)

    关于 Re-Size BAR 的取舍:如果直通后出现频繁 AER 报错或虚拟机启动不稳定,将 Re-Size BAR Support 改为 [Disabled] 再测试。这会牺牲少量性能,但能显著提升兼容性。

    2.3 关于板载显卡选项

    华南金牌 X99-TF 没有物理板载显卡,BIOS 中也没有 Onboard VGA Control 或 Primary Display 相关选项。直接使用 GT 620 作为宿主机显示输出即可,无需额外设置。

    保存退出:按 F10。


    三、PVE 宿主机配置

    3.1 安装 PVE

    用 U 盘安装 PVE 8.x 或 9.x。安装时显示器接在 GT 620 上。

    3.2 开启 IOMMU

    编辑 GRUB 配置:

    nano /etc/default/grub
    

    将 GRUB_CMDLINE_LINUX_DEFAULT 这一行完整替换为(注意:必须是一整行,不能有换行):

    GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pci=noaer video=efifb:off initcall_blacklist=sysfb_init"
    

    保存退出后执行:

    update-grub
    update-initramfs -u
    reboot
    

    重启后验证 IOMMU:

    dmesg | grep -e DMAR -e IOMMU
    

    应看到 DMAR: IOMMU enabled。

    3.3 获取显卡设备 ID

    lspci -nn | grep -i vga
    lspci -nn | grep -i audio
    

    本例输出:

    • 7900 XTX 显卡:05:00.0,ID 1002:744c
    • 7900 XTX 音频:05:00.1,ID 1002:ab30
    • GT 620:01:00.0,ID 10de:1049(不需要屏蔽)

    3.4 绑定 vfio-pci

    创建 VFIO 配置(不要加入 disable_vga=1,该参数会导致 X99 平台启动死锁):

    cat << EOF > /etc/modprobe.d/vfio.conf
    options vfio-pci ids=1002:744c,1002:ab30
    EOF
    

    拉黑宿主机 AMD 驱动:

    cat << EOF > /etc/modprobe.d/pve-blacklist.conf
    blacklist amdgpu
    blacklist radeon
    EOF
    

    让 PVE 开机自动加载 VFIO 模块:

    echo -e "vfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd" >> /etc/modules
    

    更新 initramfs 并重启:

    update-initramfs -u
    reboot
    

    3.5 验证 vfio-pci 接管成功

    lspci -nnk | grep -A 3 "VGA compatible controller"
    

    7900 XTX(05:00.0)下面应显示:

    Kernel driver in use: vfio-pci
    

    GT 620(01:00.0)下面应显示:

    Kernel driver in use: nvidiafb
    

    3.6 验证 IOMMU 分组独立

    for d in /sys/kernel/iommu_groups/*/devices/*; do n="${d#*/iommu_groups/*}"; n="${n%%/*}"; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done | grep -E "1002:744c|10de:1049"
    

    本例输出:

    IOMMU group 31 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF119 [GeForce GT 620 OEM] [10de:1049] (rev a1)
    IOMMU group 35 05:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900 GRE/7900M] [1002:744c] (rev c8)
    

    两张卡在不同 Group,说明分组干净,可以单独隔离。


    四、vBIOS 文件准备

    必须从自己这张显卡上提取,不要从网上下载第三方 vBIOS。

    1. 将 7900 XTX 装到一台 Windows 机器上。
    2. 用 GPU-Z 软件导出 vBIOS,保存为 7900xtx.rom。
    3. 上传到 PVE 宿主机 /usr/share/kvm/ 目录。
    4. 验证文件:
    ls -lh /usr/share/kvm/7900xtx.rom
    

    应显示约 2.0M 大小。


    五、创建 Ubuntu 虚拟机

    5.1 创建 VM

    在 PVE Web UI 中创建虚拟机,关键参数:

    项目 值
    VM ID 101
    名称 Ubuntu24.04
    BIOS OVMF (UEFI)
    Machine q35
    CPU host
    核心数 16
    内存 61440 MB
    磁盘 388G
    网络 virtio, bridge=vmbr0
    显示 默认(先用 QEMU 虚拟显卡)
    引导顺序 sata0;net0

    5.2 编辑虚拟机配置文件

    nano /etc/pve/qemu-server/101.conf
    

    当前跑通的配置内容:

    balloon: 0
    bios: ovmf
    boot: order=sata0;net0
    cores: 16
    cpu: host
    efidisk0: local-lvm:vm-101-disk-0,efitype=4m,ms-cert=2023k,pre-enrolled-keys=1,size=4M
    hostpci0: 0000:05:00,pcie=1,romfile=7900xtx.rom
    ide2: none,media=cdrom
    machine: q35
    memory: 61440
    meta: creation-qemu=11.0.0,ctime=1789626016
    name: Ubuntu24.04
    net0: virtio=BC:24:11:7B:0F:27,bridge=vmbr0,firewall=1
    numa: 0
    ostype: l26
    sata0: local-lvm:vm-101-disk-1,size=388G
    scsihw: virtio-scsi-single
    smbios1: uuid=e144b18b-b6fb-4350-bc4c-b1c9659bfe59
    sockets: 1
    vmgenid: afd026f7-60b3-4c56-a1ca-5d67d88245b7
    

    关键说明:

    • hostpci0: 0000:05:00,pcie=1,romfile=7900xtx.rom — 使用 pcie=1 启用 PCIe 直通,加载 vBIOS
    • 不要加 args: -fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=65536,X99 平台会因此触发 AER 报错
    • 不要加 disable_vga=1,会导致启动死锁
    • x-vga=1 可以视 Guest 内输出情况决定是否添加,本例最终未使用

    5.3 给虚拟机添加串口(调试用)

    qm set 101 -serial0 socket
    

    之后可以用 qm terminal 101 通过串口查看引导输出。


    六、安装 Ubuntu 24.04

    6.1 先不加直通,用虚拟显卡装完系统

    重要:先用最简配置完成 Ubuntu 安装,避免直通干扰安装流程。

    # 临时去掉直通
    qm set 101 -delete hostpci0
    

    挂载 Ubuntu ISO:

    ls /var/lib/vz/template/iso/
    qm set 101 -ide2 local:iso/你的ubuntu镜像.iso,media=cdrom
    qm set 101 -boot order=ide2;sata0;net0
    

    启动 VM:

    qm start 101
    

    通过 PVE Web UI → VM 101 → Console → noVNC 完成 Ubuntu 安装。

    6.2 安装时确认

    • 设置用户名(本例为 kby)和密码
    • 配置网络(DHCP 或静态 IP)
    • 安装过程中勾选 Install OpenSSH server

    安装完成后,记录 Guest 的 IP 地址(本例为 192.168.0.58)。

    6.3 在 Guest 内配置 SSH

    SSH 进 Guest:

    ssh [email protected]
    

    安装并启用 SSH:

    sudo apt update
    sudo apt install openssh-server -y
    sudo systemctl enable --now ssh
    sudo systemctl status ssh
    

    看到 active (running) 即可。


    七、加回直通并配置 Guest 显示

    7.1 在 PVE 宿主机加回直通

    qm set 101 -hostpci0 0000:05:00,pcie=1,romfile=7900xtx.rom
    

    重启 VM:

    qm stop 101
    qm start 101
    

    启动时可能出现以下警告:

    error writing '1' to '/sys/bus/pci/devices/0000:05:00.0/reset': Inappropriate ioctl for device
    failed to reset PCI device '0000:05:00.0', but trying to continue as not all devices need a reset
    

    这是正常警告,不会阻断启动,QEMU 会继续执行。

    7.2 Guest 内验证显卡识别

    SSH 进 Guest:

    ssh [email protected]
    lspci -nnk | grep -i vga -A3
    

    应看到:

    01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M] [1002:744c] (rev c8)
            Subsystem: Sapphire Technology Limited NITRO+ RX 7900 XTX Vapor-X [1da2:e471]
            Kernel driver in use: amdgpu
            Kernel modules: amdgpu
    

    以及 00:01.0 的 QEMU 虚拟显卡(bochs-drm)。

    7.3 检查 amdgpu 驱动加载日志

    sudo dmesg | grep -i amdgpu | tail -n 80
    

    关键成功标志:

    amdgpu: 24560M of VRAM memory ready
    [drm] Initialized amdgpu 3.64.0 for 0000:01:00.0 on minor 1
    

    可能出现的非致命报错:

    amdgpu: PCIe atomic ops is not supported
    amdgpu: [drm] Failed to setup vendor infoframe on connector HDMI-A-2: -22
    

    -22 是 HDMI infoframe 格式不合法,会影响 HDMI 音频通道建立,但不影响显示输出的核心功能。

    7.4 确认 /dev/dri 设备节点

    ls -l /dev/dri/
    

    应看到:

    card0(bochs 虚拟显卡)
    card1(7900 XTX)
    renderD128(7900 XTX 渲染节点)
    

    八、强制 Xorg 使用 7900 XTX 作为主 GPU

    这一步是关键:Ubuntu 默认把 card0(bochs 虚拟显卡)当作主显示输出,导致 7900 XTX 虽然驱动加载成功,但拿不到 GDM 的显示绑定。

    8.1 创建 Xorg 配置文件

    在 Guest 内:

    sudo nano /etc/X11/xorg.conf
    

    填入:

    Section "ServerLayout"
        Identifier     "Layout0"
        Screen      0  "Screen0"
    EndSection
    
    Section "Device"
        Identifier     "AMD0"
        Driver         "amdgpu"
        BusID          "PCI:1:0:0"
        Option         "PrimaryGPU" "yes"
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "AMD0"
        DefaultDepth   24
    EndSection
    

    保存:Ctrl+O → Enter → Ctrl+X。

    8.2 强制 GDM 使用 Xorg(禁用 Wayland)

    sudo nano /etc/gdm3/custom.conf
    

    找到 #WaylandEnable=false,去掉前面的 #,变成:

    WaylandEnable=false
    

    保存退出。

    8.3 更新并重启

    sudo update-initramfs -u
    sudo reboot
    

    重启后,7900 XTX 屏幕应出现 GDM 登录界面。


    九、HDMI 音频配置

    如果 HDMI 音频未自动生效,按以下顺序排查:

    9.1 检查系统声音设置

    打开 Ubuntu 的 设置 → 声音,在“输出设备”中查找 HDMI / DisplayPort Output 或 Navi 31 HDMI Audio,选中它。

    9.2 检查音频设备直通状态

    确保 7900 XTX 的音频设备(05:00.1,ID 1002:ab30)也一同直通给 Guest。本例中 hostpci0: 0000:05:00 写的是 05:00.0,由于 05:00.0 和 05:00.1 在同一 IOMMU 组,QEMU 会自动带上音频设备。

    在 Guest 内验证:

    lspci -nnk | grep -i audio
    

    应看到:

    01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio [1002:ab30]
    

    9.3 若声音断断续续,禁用 WirePlumber 自动挂起

    mkdir -p ~/.config/wireplumber/wireplumber.conf.d/
    nano ~/.config/wireplumber/wireplumber.conf.d/disable-suspend.conf
    

    填入:

    wireplumber.profiles = {
      main = {
        hooks.node.suspend = disabled
      }
    }
    

    然后重启音频服务:

    systemctl --user restart pipewire
    systemctl --user restart wireplumber
    

    9.4 若 HDMI 音频始终异常

    换用 DisplayPort 线。-22 infoframe 报错是 HDMI 通道特有的兼容性问题,DP 通道通常能直接绕过。这是最省心的解决方案。


    十、X99 平台长期使用注意事项

    10.1 failed to reset PCI device 警告

    每次 qm start 都可能出现,不是致命错误,QEMU 会继续启动。如果遇到 VM 启动后 7900 XTX 不亮:

    qm stop 101
    # 若 stop 失败
    qm stop 101 --skiplock
    qm start 101
    

    若仍失败,冷启动 PVE 主机(长按电源键关机再开机)恢复 PCIe 状态。

    10.2 AER 错误

    X99 平台 PCIe 根端口会持续报 AER: Uncorrectable (Non-Fatal)。这是硬件级限制,已通过 pci=noaer 和 initcall_blacklist=sysfb_init 在内核层面尽量抑制。高负载下若链路崩溃,需冷启动主机。

    10.3 备份关键配置

    跑通后立刻备份:

    cp /etc/pve/qemu-server/101.conf ~/101.conf.backup
    cp /etc/default/grub ~/grub.backup
    cp /etc/modprobe.d/vfio.conf ~/vfio.conf.backup
    cp /etc/modprobe.d/pve-blacklist.conf ~/pve-blacklist.conf.backup
    cp /usr/share/kvm/7900xtx.rom ~/7900xtx.rom.backup
    

    10.4 关于鼠标键盘

    不需要专门直通键鼠。QEMU 默认提供虚拟 USB 控制器和模拟键鼠,物理键鼠在切换显示窗口时通常能直接使用。只有在追求极低延迟(如游戏)或虚拟机需要完全独占输入时,才考虑单设备 USB 直通(不要直通整个 USB 控制器,X99 上有风险)。


    十一、完整配置清单速查

    PVE 宿主机:

    文件 内容
    /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pci=noaer video=efifb:off initcall_blacklist=sysfb_init"
    /etc/modprobe.d/vfio.conf options vfio-pci ids=1002:744c,1002:ab30
    /etc/modprobe.d/pve-blacklist.conf blacklist amdgpu / blacklist radeon
    /etc/modules vfio / vfio_iommu_type1 / vfio_pci / vfio_virqfd
    /usr/share/kvm/7900xtx.rom 从本卡导出的 vBIOS

    Guest 虚拟机(101.conf)关键行:

    hostpci0: 0000:05:00,pcie=1,romfile=7900xtx.rom
    

    Guest 内关键配置:

    文件 内容
    /etc/X11/xorg.conf 强制 amdgpu 作为 PrimaryGPU,BusID PCI:1:0:0
    /etc/gdm3/custom.conf WaylandEnable=false

    十二、最终验证

    在 Guest 内执行:

    glxinfo | grep "OpenGL renderer"
    

    应显示:

    OpenGL renderer string: AMD Radeon RX 7900 XTX (radeonsi, navi31, ...)
    

    看到这一行,说明整个直通链路——BIOS → vfio-pci → QEMU → amdgpu → Xorg → GDM → 显示输出 → HDMI 音频——全部打通。

    这套配置在华南金牌 X99-TF + RX 7900 XTX 上已实际验证可用。

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组