システムに2つのR9 280がインストールされています。 Ubuntuでlspci -nn
を実行すると、両方のカードのデバイスIDが同じになります。
出力例:
01:00.0 Example GPU 1 [8080:aa68]
04:00.0 Example GPU 2 [8080:aa68]
デバイスID「8080:aa68」が同じであることに注意してください。だから私の質問は、なぜIDが同じですか?カードの1つをkvmに渡そうとしていますが、IDが同じであるため両方とも渡されます。だから私はこれを解決するために何ができますか?
更新1:私はsetpci -s 04:00.0 02.w=aa69
を試してみましたが、デバイスIDが同じままであることは何もしません。 echo "8086 10f5" > /sys/bus/pci/drivers/radeon/new_id
も試しましたが、ファイルが存在すると表示されます。
更新2:このecho 0000:04:00.0 > /sys/bus/pci/devices/0000:04:00.0/driver/unbind
を実行すると、システムがフリーズします
これらはまったく同じハードウェアであるため、同じベンダーIDと同じデバイスIDが表示されます。 2枚のカードの唯一の違いは、それが入っているスロットです(おそらく出力の最初の部分)。
dmidecode –t slot
を使用してlspci -nn
からの出力と照合し、それぞれを識別することができますが、KVM=)とは言えません。
しかし、興味深い質問であり、一般的に私はこれに出くわしたときに「おそらく別の別のカードが必要だ」のままにしておきます。
kernel.org では、「デバイスIDを/sys/bus/pci/drivers/.../new_id
に書き込むと、新しいデバイスIDをPCIデバイスドライバーに動的に追加しようとします。これにより、ドライバーは、コンパイル時にドライバーの静的デバイスIDサポートテーブルに含まれていましたデバイスIDの形式は次のとおりです:VVVV DDDD SVVV SDDD CCCC MMMM PPPP。ベンダーID、デバイスID、サブシステムベンダーID、サブシステムデバイスID、クラス、クラスマスク、およびプライベートドライバーデータ。ベンダーIDおよびデバイスIDフィールドは必須です。残りはオプションです。IDが正常に追加されると、ドライバーはデバイスをプローブし、それにバインドしようとします。例:# echo "8086 10f5" > /sys/bus/pci/drivers/foo/new_id
"
そして、それはコマンドsetpci
と &Lトピック につながり、PCIカードのデバイスIDを変更できることを示唆しています。
したがって、これら2つの方法のいずれかを使用して、8080:aa68
の1つを別のデバイスIDに変更できます。同様のカードであるが、おそらくあなたが持っているものより少し古いか新しいIDを選んでください。ランダムなデバイスIDに変更すると、おそらく問題が発生します。