私はこのマシンに2つのRadeonカード、 Radeon HD 657 と Radeon HD 695 を持っています:
lspci | grep VGA
01:00.0 VGA互換コントローラー:Advanced Micro Devices [AMD] nee ATI Turks [Radeon HD 6570]
02:00.0 VGA互換コントローラー:Advanced Micro Devices [AMD] nee ATI Cayman PRO [Radeon HD 6950]
VGAパススルーを [〜#〜] kvm [〜#〜] on Debian 7 (Wheezy)で動作させ、6950をセカンダリとして通過させようとしています。 Windows 7ゲスト用のビデオカード。 /etc/modprobe.d/
を介してradeon
カーネルモジュールをブラックリストに登録すると、これは正常に機能します。
6570でX11(または [〜#〜] kms [〜#〜] コンソールのみ)を実行するためにブラックリストを削除すると、radeon
モジュールが両方カード:
dmesg | egrep "01:00.0 | 02:00.0 | radeon"
pci 0000:01:00.0:[1002:6759] type 0 class 0x000300
pci 0000:01:00.0:reg 10:[mem 0xe0000000-0xefffffff 64bit pref]
pci 0000:01:00.0:reg 18:[mem 0xf7e20000-0xf7e3ffff64ビット]
pci 0000:01:00.0:reg 20:[io 0xe000-0xe0ff]
pci 0000:01:00.0:reg 30:[mem 0xf7e00000-0xf7e1ffff pref]
pci 0000:01:00.0:D1D2をサポート
pci 0000:02:00.0:[1002:6719]タイプ0クラス0x000300
pci 0000:02:00.0:reg 10:[mem 0xd0000000-0xdfffffff 64bit pref]
pci 0000:02:00.0:reg 18:[mem 0xf7d20000-0xf7d3ffff64ビット]
pci 0000:02:00.0:reg 20:[io 0xd000-0xd0ff]
pci 0000:02:00.0:reg 30:[mem 0xf7d00000-0xf7d1ffff pref]
pci 0000:02:00.0:D1D2をサポート
vgaarb:追加されたデバイス:PCI:0000:01:00.0、decodes = io + mem、owns = io + mem、locks = none
vgaarb:追加されたデバイス:PCI:0000:02:00.0、decodes = io + mem、owns = none、locks = none
vgaarb:ブリッジ制御が可能0000:02:00.0
vgaarb:ブリッジ制御が可能0000:01:00.0
pci 0000:01:00.0:ビデオデバイスを起動します
[drm] radeonカーネルモード設定が有効になっています。
radeon 0000:01:00.0:レイテンシータイマーを64に設定
radeon 0000:01:00.0:VRAM:1024M 0x0000000000000000-0x000000003FFFFFFF(1024M使用)
radeon 0000:01:00.0:GTT:512M 0x0000000040000000-0x000000005FFFFFFF
[drm] radeon:1024MのVRAMメモリが準備完了
[drm] radeon:512MのGTTメモリ対応。
radeon 0000:01:00.0:MSI/MSI-Xのirq46
radeon 0000:01:00.0:radeon:MSIを使用しています。
[drm] radeon:irqが初期化されました。
radeon 0000:01:00.0:WBが有効
[drm] radeon:ibプールの準備ができました。
[drm] radeon:電源管理が初期化されました
fbcon:radeondrmfb(fb0)がプライマリデバイスです
fb0:radeondrmfbフレームバッファデバイス
[drm]マイナー0の0000:01:00.0用に初期化されたradeon 2.12.0 20080528
radeon 0000:02:00.0:デバイスを有効にする(0000-> 0003)
radeon 0000:02:00.0:レイテンシータイマーを64に設定
radeon 0000:02:00.0:VRAM:2048M 0x0000000000000000-0x000000007FFFFFFF(2048Mを使用)
radeon 0000:02:00.0:GTT:512M 0x0000000080000000-0x000000009FFFFFFF
[drm] radeon:2048MのVRAMメモリ対応
[drm] radeon:512MのGTTメモリ対応。
radeon 0000:02:00.0:MSI/MSI-Xのirq 49
radeon 0000:02:00.0:radeon:MSIを使用しています。
[drm] radeon:irqが初期化されました。
radeon 0000:02:00.0:WB有効
[drm] radeon:ibプールの準備ができました。
[drm] radeon:電源管理が初期化されました
fb1:radeondrmfbフレームバッファデバイス
[drm]マイナー1の0000:02:00.0用に初期化されたradeon 2.12.0 20080528
[drm] radeon:仕上げ装置。
radeon 0000:02:00.0:ffff88041a941800固定解除は不要
[drm] radeon:ttmが完成しました
pci-stub 0000:02:00.0:スタブによって要求されました
pci-stub 0000:02:00.0:MSI/MSI-Xのirq49
これにより、Windows 7 VMは起動時にブルースクリーンになります。
モジュールradeon
が6570にのみ接続され、6950には接続されないように構成するにはどうすればよいですか?
pci_stub
にいくつかの rc.local
関連の行 がありましたが、これは明らかに起動プロセスでは遅すぎて、radeon
がいじり始めた後に実行されました。物事。
pci_stub
カーネルモジュールのものをinitramfs
に移動して、問題を修正しました。
lspci -nn | grep Cayman
は、6950とそのHDMIポートのvendor:device
番号(行の最後)を検索します。
02:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI Cayman PRO [Radeon HD 6950] [1002:6719]
02:00.1 Audio device [0403]: Advanced Micro Devices [AMD] nee ATI Cayman/Antilles HDMI Audio [Radeon HD 6900 Series] [1002:aa80]
/etc/initramfs-tools/modules
を開いて、新しい行を追加します。
pci_stub ids=1002:6719,1002:aa80
initramfs
を再構築します:
Sudo update-initramfs -u
再起動して、pci_stub
がradeon
を打ち負かしているのを観察します。
dmesg | egrep "pci-stub|radeon"
pci-stub: add 1002:6719 sub=FFFFFFFF:FFFFFFFF cls=00000000/00000000
pci-stub 0000:02:00.0: claimed by stub
pci-stub: add 1002:AA80 sub=FFFFFFFF:FFFFFFFF cls=00000000/00000000
pci-stub 0000:02:00.1: claimed by stub
[drm] radeon kernel modesetting enabled.
radeon 0000:01:00.0: setting latency timer to 64
radeon 0000:01:00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M used)
radeon 0000:01:00.0: GTT: 512M 0x0000000040000000 - 0x000000005FFFFFFF
ブルースクリーンのないVGAパススルーをお楽しみください!
Genpfaultの回答を参照として使用して、別の回答を作成しました。
最初のステップは上記と同じです:
次に、/ lib/modprobe.d /pci-stub.confというファイルを作成しました。
options pci-stub ids=1002:9715,1002:970f
次に、softdepを使用して/lib/modprobe.d/drm.confというファイルを作成しました。
softdep drm pre: pci-stub
このようにして、ブートプロセスがdrmをロードしようとするとき、最初に1つのビデオカードのハードウェアを予約するpci-stubをロードし、drmが何らかのデバイスに接続するのを防ぎます。
後でrc.localの予約を削除できます。modprobe -r pci-stub
。
オプションで、別のモジュールをロードできますmodprobe another-module
そのカード。