gen*_*ult 13 linux debian amd-radeon linux-kvm debian-wheezy
我在这台机器上有两张 Radeon 卡,一张Radeon HD 6570和一张Radeon HD 6950:
lspci | grep VGA
Run Code Online (Sandbox Code Playgroud)
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 直通与Debian 7 (Wheezy)上的KVM 一起使用,将 6950 作为辅助视频卡传递给 Windows 7 来宾。如果我通过.radeon
/etc/modprobe.d/
如果我删除黑名单以在 6570 上运行 X11(甚至只是一个KMS控制台),该radeon
模块似乎连接到两个卡:
留言 | 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:1000000000000000000000000000000000000000000000000000000001 ]
pci 0000:01:00.0: reg 20: [io 0xe000-0xe0ff]
pci 0000:01:00.0: reg 30: [mem 0xf7e00000-0xf7e1ffff pref]
pci: 0000.0020:D.020支持
pci:D.0020 :[1002:6719]类型0类0x000300
PCI 0000:02:00.0:REG 10:[MEM 0xd0000000-0xdfffffff 64位PREF]
PCI 0000:02:00.0:REG 18:[MEM 0xf7d20000-0xf7d3ffff 64]
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: 支持 D1 D2
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 - (使用1024M)0x000000003FFFFFFF
RADEON 0000:01:00.0:GTT:512M 0x0000000040000000 - 0x000000005FFFFFFF
[DRM] RADEON:VRAM的1024M内存就绪
[drm] radeon:512M 的 GTT 内存就绪。
radeon 0000:01:00.0: 用于 MSI/MSI-X 的 irq 46
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] 初始化 radeon 2.12.0 20080528 for 0000:01:00.0 on minor 0 radeon2: 0000.0 enable
device (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] 初始化 radeon 2.12.0 20080528 for 0000:02:00.0 on minor 1
[drm] radeon:完成设备。
radeon 0000:02:00.0: ffff88041a941800 unpin 不需要
[drm] radeon: ttm 最终确定的
pci-stub 0000:02:00.0: stub
pci-stub 0000:02:00.0: for MSI/MSI-49
这会导致 Windows 7 VM 在启动时蓝屏。
我如何配置东西以便模块radeon
只连接到 6570 而不是 6950?
gen*_*ult 14
我有一些与我pci_stub
相关的行,rc.local
但这在启动过程中显然为时已晚,无法提供帮助,在radeon
开始摆弄东西之后运行。
我通过将pci_stub
内核模块内容移动到以下内容来解决问题initramfs
:
lspci -nn | grep Cayman
查找vendor:device
6950 及其 HDMI 端口的编号(在行尾):
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]
Run Code Online (Sandbox Code Playgroud)弹出打开/etc/initramfs-tools/modules
并添加一个新行:
pci_stub ids=1002:6719,1002:aa80
Run Code Online (Sandbox Code Playgroud)重建initramfs
:
sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)重新启动并观察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
Run Code Online (Sandbox Code Playgroud)享受无蓝屏 VGA 直通!
小智 5
使用 genpfault 答案作为参考,我创建了另一个答案,我认为更简单。
第一步和上面一样:
然后我创建了一个名为 /lib/modprobe.d/pci-stub.conf 的文件,其中包含我找到的参数:
options pci-stub ids=1002:9715,1002:970f
Run Code Online (Sandbox Code Playgroud)
然后我用softdep创建了一个名为/lib/modprobe.d/drm.conf的文件:
softdep drm pre: pci-stub
Run Code Online (Sandbox Code Playgroud)
这样,当引导进程尝试加载 drm 时,首先加载 pci-stub,它保留了一个视频卡的硬件,并防止 drm 附加到某些设备。
稍后您可以删除 rc.local, 中的保留modprobe -r pci-stub
。
您可以modprobe another-module
选择为该卡加载另一个模块。
归档时间: |
|
查看次数: |
12749 次 |
最近记录: |