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

2022-06-25 07:25:45 +08:00
 zx900930

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

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

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

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

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

宿主机 pve 7.2

解决办法用 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 也够了)

6093 次点击
所在节点    Linux
23 条回复
geekvcn
2022-06-25 09:41:41 +08:00
不超频当服务器 AMD 家用平台建议用华擎,华擎支持纯 ECC ,微星不支持,另外 AMD 家用做服务器处理器很多特性也能支持,比如 SR-IOV ,Intel 家用平台就不支持。所以国外很多小鸡直接用 AMD 家用处理器搭服务器了。

另外虚拟机里吧用不到的显卡内核模块加到黑名单就行了或者虚拟机不要给 vGPU ,当然改 xorg 配置文件也行。AMD 这种多 CCD 处理器调度和内部 IF 总线速度和延时虽然比 NUMA 架构强太多,但是建议还是把各种中断,单个虚拟机或容器绑到单 CCD 上,能提高一定性能,需要渲染等并行任务的虚拟机和容器再绑定全部两个 CCD 内核
mingl0280
2022-06-25 10:30:56 +08:00
R730 安装 PVE:写 U 盘,关掉 Safe Boot ,安装,设 IP ,进界面……
tcpdump
2022-06-25 10:54:37 +08:00
待机功耗如何
sjmcefc2
2022-06-25 10:59:22 +08:00
请教如何把现有的物理机转换到 pve 里面呢?
sjmcefc2
2022-06-25 10:59:58 +08:00
@tcpdump 感觉这个功耗要上 100w 了
2NUT
2022-06-25 12:55:50 +08:00
@sjmcefc2 #4 搜索关键词 p2v
Dk2014
2022-06-25 13:37:52 +08:00
@tcpdump 目测 70w 起步,我的 56x 待机 55w ,还不是 performance 模式
zx900930
2022-06-25 15:44:56 +08:00
@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
2022-06-25 17:57:45 +08:00
@2NUT esxi 是用以前老掉牙的一个 convert 软件,


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

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

physical to virtual
LLaMA2
2022-06-25 18:20:22 +08:00
简单明了,社区感谢有你
sidkang
2022-06-25 18:23:06 +08:00
电脑配置类似,我的内核参数只加了这些,`quiet amd_iommu=on`,一定不能加的是 `iommu=pt`,最新的 7.2 加了这个参数反而会无法正常启动。
zx900930
2022-06-25 18:38:41 +08:00
@sidkang 其实可以正常启动,但是 pt 没用,并不能提升性能,amd_iommu 可以不加,因为 amd 的 iommu 默认就是 on 的,intel 必须加。
sidkang
2022-06-25 18:56:15 +08:00
@zx900930 这就比较吊诡了,我在 6.X 的时候就已经配置了这个参数,近期更换硬盘重启了一回发现了这个问题,查了半天才发现是这个参数的锅,配置是 5950x+x570+2060s
yangzhaofeng
2022-06-26 00:09:49 +08:00
tpm 可以開,但是 secure boot 開著的話安裝就會比較麻煩了
chancat
2022-06-28 05:42:55 +08:00
真有钱
hanssx
2022-06-28 13:06:18 +08:00
@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
2022-06-28 15:29:32 +08:00
@hanssx 谢谢告知,内核参数洁癖症有福了
hanssx
2022-07-24 23:51:10 +08:00
@zx900930 我回来了,xorg 是可以用独显来显示远程桌面的吗?另外有办法进正在开机使用的同一会话吗?我每次 xrdp xorg 都会进另外一个单独的会话。
zx900930
2022-07-25 02:03:54 +08:00
@hanssx 我用的 ThinLinc ,远程连桌面不会 start a new session ,可以透过 VirtualGL 使用独立显卡加速。
但是 VirtualGL 只适用于 opengl 驱动的图形软件,不适用于 vulcan 。 需要 vulkan 的可能需要去买个 dummy plug 插在你的独显上。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/862061

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX