刚整了个家用 pve 服务器, 5950x+rx6400, 记录一下 a 卡显卡直通碰到的坑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
zx900930
V2EX    Linux

刚整了个家用 pve 服务器, 5950x+rx6400, 记录一下 a 卡显卡直通碰到的坑

  •  1
     
  •   zx900930
    zx900930 Jun 25, 2022 7660 views
    This topic created in 1404 days ago, the information mentioned may be changed or developed.

    主板是 MSI MEG x570 unify, 升了最新的 BIOS

    • 无法进入 pve 安装界面

    这是因为最新的 BIOS 为了支持 Win11, 自动把 TPM 给打开了, 去 BIOS 里关闭 TPM

    如果默认开了 Safe Boot, 也要关掉(有 work around 可以开着 Safe Boot 进行后面的安装可是太麻烦, 建议直接关掉.

    顺便 Resizable BAR 会导致 windows 虚拟机显卡代码 43, 所以最好也关掉.

    当然 IOMMU 和 AMD-V 是必开的这就不用多说了.

    宿主机 pve 7.2

    • pve 安装时获取完 DHCP 地址就卡死在启动安装 GUI, 看 log 错误是显卡驱动问题导致 xorg 无法启动

    解决办法用 debug 模式安装, 在出错后 ctrl+c 中断, 并执行以下命令

    $ chmod 1777 /tmp $ Xorg -configure $ mv /xorg.conf.new /etc/X11/xorg.conf $ nano /etc/X11/xorg.conf # 把所有 Driver "amdgpu" 替换成 "fbdev" 会有多个设备, 全都要改. $ startx 

    就可以正常打开安装 GUI 进行安装

    • 安装完毕后宿主机识别不了显卡

    这个简单, 只需要更新一下包就行, 最新的 mesa 驱动里就有最新的 amd 显卡支援

    # 先更新软件包 sudo apt update && apt upgrade -y # 再更新 pciid 数据库 update-pciids 

    虚拟机是 debian 11

    然后按步就搬显卡直通给虚拟机(这个网上教程一大堆,我只写新 A 卡需要注意的地方)

    • 直通后虚拟机启动一半停住, 报错
    [drm:psp_sw_init [amdgpu]] *ERROR* Failed to load psp firmware! 

    需要更新 firmware

    # 先进到 home cd ~ # 创建一个文件夹来放固件 mkdir fw # 下载最新固件 git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git fw # 再确认一下下载的固件是否正常 ls fw # 确认没问题就可以更新固件了 rsync -avh fw/amdgpu/* /lib/firmware/amdgpu/ 

    也可以添加 backports 源并更新 firmware-amd-graphics 但是不保证能解决问题

    如果你要使用 xorg, 启动还是会报错:

    [ 5.485] (EE) open /dev/fb0: No such file or directory [ 5.485] vesa: Ignoring device with a bound kernel driver [ 5.485] (EE) Screen 0 deleted because of no matching config section. [ 5.485] (II) UnloadModule: "modesetting" [ 5.485] (EE) Screen 0 deleted because of no matching config section. [ 5.485] (II) UnloadModule: "fbdev" [ 5.485] (II) UnloadSubModule: "fbdevhw" [ 5.485] (EE) Screen 0 deleted because of no matching config section. [ 5.485] (II) UnloadModule: "vesa" [ 5.485] (EE) Device(s) detected, but none match those in the config file. [ 5.485] (EE) Fatal server error: [ 5.485] (EE) no screens found(EE) [ 5.485] (EE) 

    这是因为 xorg 会去找不同的驱动 需要强制让 xorg 使用 amdgpu 驱动

    #修改 xorg 配置文件 nano /etc/X11/xorg.conf #强制使用 amdgpu 驱动 Section "Device" Identifier "Device0" Driver "amdgpu" EndSection 

    再重启, dmesg | grep -i amdgpu 显示正常初始化, xorg 日志显示

    (II) AMDGPU(0): Setting screen physical size to 381 x 238 

    正常加载问题解决

    主要都是驱动和固件的问题, 还有 rx6400 这显卡是完全没有 Encoding 的, 只适合拿来输出图像, 不适合用来做影音服务器, 属于性价比巨低的亮机卡.(我主要是拿来跑一个需要 3d 渲染的小项目, 6400 也够了)

    23 replies    2022-08-23 17:08:58 +08:00
    geekvcn
        1
    geekvcn  
       Jun 25, 2022 via Android
    不超频当服务器 AMD 家用平台建议用华擎,华擎支持纯 ECC ,微星不支持,另外 AMD 家用做服务器处理器很多特性也能支持,比如 SR-IOV ,Intel 家用平台就不支持。所以国外很多小鸡直接用 AMD 家用处理器搭服务器了。

    另外虚拟机里吧用不到的显卡内核模块加到黑名单就行了或者虚拟机不要给 vGPU ,当然改 xorg 配置文件也行。AMD 这种多 CCD 处理器调度和内部 IF 总线速度和延时虽然比 NUMA 架构强太多,但是建议还是把各种中断,单个虚拟机或容器绑到单 CCD 上,能提高一定性能,需要渲染等并行任务的虚拟机和容器再绑定全部两个 CCD 内核
    mingl0280
        2
    mingl0280  
       Jun 25, 2022
    R730 安装 PVE:写 U 盘,关掉 Safe Boot ,安装,设 IP ,进界面……
    tcpdump
        3
    tcpdump  
       Jun 25, 2022
    待机功耗如何
    sjmcefc2
        4
    sjmcefc2  
       Jun 25, 2022
    请教如何把现有的物理机转换到 pve 里面呢?
    sjmcefc2
        5
    sjmcefc2  
       Jun 25, 2022
    @tcpdump 感觉这个功耗要上 100w 了
    2NUT
        6
    2NUT  
       Jun 25, 2022
    @sjmcefc2 #4 搜索关键词 p2v
    Dk2014
        7
    Dk2014  
       Jun 25, 2022 via Android
    @tcpdump 目测 70w 起步,我的 56x 待机 55w ,还不是 performance 模式
    zx900930
        8
    zx900930  
    OP
       Jun 25, 2022
    @geekvcn blacklist 是肯定加了的毕竟官方文档就写了, 只是官方文档还有个没有提到, 新内核需要新的参数
    video=simplefb:off
    否则宿主机会报错:
    ```
    BAR 0: can't reserve [mem 0xe0000000-0xefffffff 64bit pref]
    ```

    最终的内核参数是这样的:
    ```
    quiet iommu=pt vfio_iommu_type1.allow_unsafe_interrupts=1 video=vesafb:off video=efifb:off video=simplefb:off
    ```

    vfio-pci 设置
    ```
    echo "options vfio-pci ids=你的显卡设备 id disable_vga=1" > /etc/modprobe.d/vfio.conf
    ```
    驱动黑名单
    ```
    echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
    echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
    echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
    ```
    sjmcefc2
        9
    sjmcefc2  
       Jun 25, 2022
    @2NUT esxi 是用以前老掉牙的一个 convert 软件,


    starwind 有一款转换软件,但是不能存储到本地,

    好像是没有找到 pve 专用的转换软件啊?
    2NUT
        10
    2NUT  
       Jun 25, 2022
    @sjmcefc2 #9 我专门孤岛过, 没有老掉牙, esxi 的那个有新的版本, 甚至 hyper-v 都有相关工具,

    physical to virtual
    LLaMA2
        11
    LLaMA2  
       Jun 25, 2022
    简单明了,社区感谢有你
    sidkang
        12
    sidkang  
       Jun 25, 2022
    电脑配置类似,我的内核参数只加了这些,`quiet amd_iommu=on`,一定不能加的是 `iommu=pt`,最新的 7.2 加了这个参数反而会无法正常启动。
    zx900930
        13
    zx900930  
    OP
       Jun 25, 2022 via Android
    @sidkang 其实可以正常启动,但是 pt 没用,并不能提升性能,amd_iommu 可以不加,因为 amd 的 iommu 默认就是 on 的,intel 必须加。
    sidkang
        14
    sidkang  
       Jun 25, 2022
    @zx900930 这就比较吊诡了,我在 6.X 的时候就已经配置了这个参数,近期更换硬盘重启了一回发现了这个问题,查了半天才发现是这个参数的锅,配置是 5950x+x570+2060s
    yangzhaofeng
        15
    yangzhaofeng  
       Jun 26, 2022 via Android
    tpm 可以,但是 secure boot 著的安就比麻了
    chancat
        16
    chancat  
       Jun 28, 2022 via Android
    真有钱
    hanssx
        17
    hanssx  
       Jun 28, 2022
    @zx900930 7.2 默认开了 iommu 了
    https://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_7.2
    intel_iommu now defaults to on. The kernel config of the new 5.15 series enables the intel_iommu parameter by default
    zx900930
        18
    zx900930  
    OP
       Jun 28, 2022 via Android
    @hanssx 谢谢告知,内核参数洁癖症有福了
    hanssx
        19
    hanssx  
       Jul 24, 2022
    @zx900930 我回来了,xorg 是可以用独显来显示远程桌面的吗?另外有办法进正在开机使用的同一会话吗?我每次 xrdp xorg 都会进另外一个单独的会话。
    zx900930
        20
    zx900930  
    OP
       Jul 25, 2022 via Android
    @hanssx 我用的 ThinLinc ,远程连桌面不会 start a new session ,可以透过 VirtualGL 使用独立显卡加速。
    但是 VirtualGL 只适用于 opengl 驱动的图形软件,不适用于 vulcan 。 需要 vulkan 的可能需要去买个 dummy plug 插在你的独显上。
    hanssx
        21
    hanssx  
       Jul 25, 2022
    @zx900930 感谢老哥,你说的这个软件 ThinLinc ,我在 V 站搜了下,就 2 个相关帖子,这玩意儿有啥优势吗。
    zx900930
        22
    zx900930  
    OP
       Jul 25, 2022   1
    @hanssx 就是性能好, 支持硬件加速, 企业解决方案, 可以理解为以 linux 为第一目标系统的 Parsec, 缺点就是收费吧.
    不然的话一般维护使用其实 VNC 或者 VNC 衍生的就够用了.
    hanssx
        23
    hanssx  
       Aug 23, 2022
    @zx900930 请教一下这个 ThinLinc ,我装好之后,在 Windows 上面连接使用,发现确实快一些,但是仍然没有启用 GPU ,如何才能启用呢,装一个 VirtualGL 吗?
    About     Help     Advertise     Blog     API     FAQ     Solana     4768 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 60ms UTC 01:06 PVG 09:06 LAX 18:06 JFK 21:06
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86