IOMMU/dracut/カーネルパラメータ(VoidLinux上)を介して同じハードウェアIDを持つGPUを分離(保存)する方法

IOMMU/dracut/カーネルパラメータ(VoidLinux上)を介して同じハードウェアIDを持つGPUを分離(保存)する方法

無効にpci / gpuパススルーを設定しようとしています。具体的には、vfio-pciドライバを使用してGPUの1つを「予約」します。私は次の手順に従いました。この void-docs PR(および関連アーチウィキ)

私はRX 580とRX 570を持っており、私たちのグループは電子の隔離を可能にします。

IOMMU Group 0 - 11:
    dummy host bridges and such
IOMMU Group 12:
    03:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset USB 3.1 XHCI Controller [1022:43d5] (rev 01)
    03:00.1 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset SATA Controller [1022:43c8] (rev 01)
    03:00.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset PCIe Bridge [1022:43c6] (rev 01)
    20:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset PCIe Port [1022:43c7] (rev 01)
    20:01.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset PCIe Port [1022:43c7] (rev 01)
    20:04.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset PCIe Port [1022:43c7] (rev 01)
    22:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
    25:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev ef)
    25:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0]
IOMMU Group 13:
    26:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev e7)
    26:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0]
IOMMU Group 14 - 19:
    dummy functions and audio devices

そのため、RX570を複数のCPUと混在させてください。

IOMMU group 12: 25:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df]

RX580は独自のグループから完全に独立しています。

IOMMU group 13: 26:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df]

vfio-pciこれで、2つの共有ハードウェアIDが表示されるので、ドライバを2つのいずれかにプッシュするためにカーネルパラメータを指定することはできません。両方をキャプチャします。 (上記のPull Requestガイドの説明に従って)

私はそれらを分離しようとしていますArch-wikiのガイドに従ってください。、私のdracut設定に"Passthrough selected GPU"スクリプトを追加しました。

/usr/local/bin/vfio-pci-override.sh

#!/bin/sh

DEVS="0000:26:00.0 0000:26:00.1"

if [ ! -z "$(ls -A /sys/class/iommu)" ]; then
    for DEV in $DEVS; do
        echo "vfio-pci" > /sys/bus/pci/devices/$DEV/driver_override
    done
fi

modprobe -i vfio-pci

/etc/dracut.conf.d/10-vfio.conf

hostonly=" yes "
hostonly_cmdline=" amd_iommu=on iommu=pt "
force_drivers+=" vfio_pci vfio vfio_iommu_type1 vfio_virqfd "
install_items+=" /usr/local/bin/vfio-pci-override.sh "

私が正しく覚えているなら、これが実行されたときに影響しますが、xbps-reconfigure --force linuxX.Y 何らかの理由でamdgpuドライバはまだ両方のGPUをキャプチャします。

ファイルに次のカーネルパラメータを設定しました/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=4 amd_iommu=on iommu=pt rd.driver.pre=vfio_pci"

どんな助けにも感謝し、ガイドを拡張するために上記のPRに伝えられます。 (私はvoidマニュアルがそのようなものを詳しく説明するためではないことを知っていますが、おそらくスタンドアロンガイドを作成するのに役立ちます)

ベストアンサー1

私もアーチガイドを試しましたが、運がありませんでした。このページの下部を読んでみると悲しいことに解決策は見えません。

Ubuntu / Kubuntu 20.04はうまく機能しますが、Manjaroの同じハードウェアにはサイコロがありません。

違いはinitramfs-toolsとmkinitcpio(またはあなたの場合はdracut)です。

私のRedditの投稿は次のとおりです。https://www.reddit.com/r/VFIO/comments/tjjb9g/switched_from_kubuntu_to_manjaro_kde_minimal_lts/

おすすめ記事