【NAS】AMD7840HS 核显直通

1 基础条件

1.1 前提

  1. 集群:PVE 8.4.1
  2. NAS:fnOS 0.9.8
  3. OPER:Debian GNU/Linux 12 (bookworm)
  4. Kernal:Linux 6.8.12-11-pve
  5. 主机:BRENUC N7P
  6. 媒体工具:飞牛影视0.8.46
  7. CPU:AMD7840HS
  8. GPU:AMD 780M核显

1.2 注意事项

  1. 当前飞牛影视不支持AMD7840HS(AMD 780M核显)
    fnOS系统支持显卡范围验证表(20250311更新)
  2. 当前飞牛相册不支持AMD的显卡设备
    飞牛相册的AI功能

2 步骤

2.1 配置GRUB

GRUB修改1

  • 修改GRUB,代码如下:
GRUB_CMDLINE_LINUX_DEFAULT="quiet initcall_blacklist=sysfb_init iommu=pt amd_iommu=on"
  • 更新GRUB
update-grub
reboot
  • 其他可用GRUB配置
# 对于 Intel CPU
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf"
# 对于 AMD CPU
GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf"
或者
GRUB_CMDLINE_LINUX_DEFAULT="quiet initcall_blacklist=sysfb_init"
注意,对于 AMD CPU:initcall_blacklist=sysfb_init 屏蔽掉pve7.2以上的一个bug,方便启动时候就屏蔽核显等设备驱动。pve8的grub里面不需要加入amd_iommu=on pcie_acs_override=downstream,multifunction这些参数,一般默认就开启了,如果后面直通不成功,在加上这些参数。
# 其他的一些写法(如果是AMD处理器,将intel改为amd)
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1 video=efifb:off" # 这是GVT模式,也就是共享模式,少部分cpu支持,但体验很好
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off" # 这是独占模式,都支持,但显示器没有pve的控制台输出,也只能直通个一个虚拟机
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction"
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction"
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" #本期教程我使用的就是这个
# 参数释义
1.iommu=pt:启用 Intel VT-d 或 AMD-Vi 的 IOMMU。这是一种硬件功能,用于管理设备对系统内存的访问。在虚拟化环境中,启用 IOMMU 后,可以将物理设备直通到虚拟机中,以便虚拟机可以直接访问硬件设备。“iommu=pt”不是必须的,PT模式只在必要的时候开启设备的IOMMU转换,可以提高未直通设备PCIe的性能,建议添加。
2.initcall_blacklist=sysfb_init:禁用 sysfb_init 内核初始化函数。这个函数通常用于在内核启动过程中初始化系统帧缓冲。在使用 GPU 直通的情况下,这个函数可能会干扰直通操作,因此需要禁用它。
3.i915.enable_gvt=1:启用 Intel GVT-g 虚拟 GPU 技术。这个选项用于创建一个虚拟的 Intel GPU 设备,以便多个虚拟机可以共享物理 GPU 设备。启用 GVT-g 需要在支持虚拟 GPU 的 Intel CPU 和主板上运行,并且需要正确配置内核和虚拟机。想开启GVT-g的就添加这条,显卡直通的就不要添加了。
4.initcall_blacklist=sysfb_init:屏蔽掉pve7.2以上的一个bug,方便启动时候就屏蔽核显等设备驱动;
5.pcie_acs_override=downstream,multifunction:便于iommu每个设备单独分组,以免直通导致物理机卡死等问题
6.pci=nommconf:意思是禁用pci配置空间的内存映射,所有的 PCI 设备都有一个描述该设备的区域(您可以看到lspci -vv),访问该区域的最初方法是通过 I/O 端口,而 PCIe 允许将此空间映射到内存以便更简单地访问。

2.2 屏蔽驱动

在这里插入图片描述

  • 插入如下代码
blacklist nvidiafb
blacklist amdgpu
blacklist i915
blacklist snd_hda_intel
options vfio_iommu_type1 allow_unsafe_interrupts=1
  • 执行更新initramfs指令
update-initramfs -u -k all
reboot

2.3 vbios更新

在这里插入图片描述

  1. vbios生成
    参考文档 vbios生成方式,章节3;
  2. 或者可以参考外国神人提供
    BREN7P Mini-PC 7840HS
  3. 本人使用外链提供
    //todo

2.4 创建fnOS虚拟机

  1. 创建步骤:忽略
  2. 关键步骤:
  • 添加PCIE设别
    在这里插入图片描述

  • PCI设备信息编辑
    在这里插入图片描述

  • 修改主机中pve虚拟机信息,添加vbiosROM
    在这里插入图片描述

    • 100.conf为虚拟机ID
      在这里插入图片描述
    • pciID如何获取
      执行lspci指令在这里插入图片描述
      在这里插入图片描述
  • 修改虚拟显示信息
    在这里插入图片描述

2.5 效果

在这里插入图片描述
在这里插入图片描述

3 AMD 驱动安装

  1. 方式1,使用官方文档
    因为依赖太多,所以未使用该方案
    https://amdgpu-install.readthedocs.io/en/latest/install-installing.html#installing-the-all-open-use-case
  2. 方式2,使用 apt-deb包
apt purge '*nvidia*'
 
//这里还要在 linux 的软件源里面加上
# Debian 12 "Bookworm"
deb http://deb.debian.org/debian bookworm main contrib non-free-firmware
//然后执行下面的命令
apt update
 
apt-get install firmware-amd-graphics libgl1-mesa-dri libglx-mesa0 mesa-vulkan-drivers xserver-xorg-video-all

4 未解决问题

  1. PVE中控制台无法使用,只能远程登录
    在这里插入图片描述
### Proxmox VE AMD集成卡 GPU直通配置教程 在Proxmox VE中实现AMD Ryzen 7000系列处理器的GPU直通,需要遵循一系列步骤以确保硬件和软件的兼容性。以下内容将详细介绍配置过程,并结合相关引用提供技术支持。 #### 1. 确认硬件兼容性 首先,必须确认所使用的主板和处理器支持IOMMU(Intel VT-d或AMD-Vi)。对于AMD Ryzen 7000系列处理器,其内置的可以通过PCI设备ID进行识别[^1]。同时,某些主板可能存在限制,例如无法直通第一个PCI(e)插槽上的GPU卡,此时可能需要使用`romfile`选项来加载卡的固件文件[^2]。 #### 2. 启用虚拟化功能 进入BIOS设置,启用以下虚拟化功能: - **AMD-V**:用于CPU虚拟化。 - **AMD IOMMU**:用于设备直通。 这些选项的具体名称可能因主板品牌而异,但通常可以在“Advanced”或“CPU Configuration”菜单中找到。 #### 3. 安装Proxmox VE并启用IOMMU 安装Proxmox VE后,需通过修改GRUB引导参数启用IOMMU功能。编辑`/etc/default/grub`文件,添加以下参数: ```bash GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on amd_iommu=on iommu=pt" ``` 更新GRUB配置并重启系统: ```bash update-grub reboot ``` #### 4. 配置直通 在Proxmox VE中,被视为一个独立的PCI设备。可以通过以下命令查看的设备ID: ```bash lspci -nn | grep VGA ``` 假设的设备ID为`00:02.0`,则需要将其分配给虚拟机。创建一个新的虚拟机,并在QEMU/KVM设置中添加以下内容: ##### 修改虚拟机配置文件 编辑虚拟机的配置文件`/etc/pve/qemu-server/<VMID>.conf`,添加以下内容: ```plaintext hostpci0: 00:02.0,pcie=1,x-vga=1 ``` 如果主板存在限制,还需要指定`romfile`路径。例如: ```plaintext args: -device vfio-pci,romfile=/path/to/romfile.rom ``` #### 5. 安装Windows或Linux Guest系统 启动虚拟机并安装操作系统。确保在安装过程中选择与兼容的驱动程序。对于Windows系统,建议使用官方提供的AMD驱动程序;对于Linux系统,可以使用开源驱动如`amdgpu`。 #### 6. 测试直通功能 完成安装后,测试是否正常工作。可以通过运行图形密集型应用程序或播放高清视频来验证GPU直通的效果。 --- ```python # 示例脚本:检查PCI设备ID import subprocess def get_pci_devices(): result = subprocess.run(['lspci', '-nn'], stdout=subprocess.PIPE) return result.stdout.decode() print(get_pci_devices()) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值