이 컴퓨터에는 Radeon HD 6570 과 Radeon HD 6950의 두 가지 Radeon 카드가 있습니다 .
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]
6950을 보조 비디오 카드로 Windows 7 게스트에 전달 하여 데비안 7 (Wheezy)에서 KVM 과 작동하도록 VGA 패스 스루를 얻으려고합니다 . 를 통해 커널 모듈을 블랙리스트에 올리면 정상적으로 작동합니다 .radeon
/etc/modprobe.d/
6570에서 X11 (또는 KMS 콘솔) 을 실행하기 위해 블랙리스트를 제거하면 radeon
모듈이 두 카드 모두 에 연결된 것으로 보입니다 .
dmesg | egrep “01 : 00.0 | 02 : 00.0 | radeon”
pci 0000 : 01 : 00.0 : [1002 : 6759] 유형 0 클래스 0x000300
pci 0000 : 01 : 00.0 : reg 10 : [mem 0xe0000000-0xefffffff 64 비트 pref]
pci 0000 : 01 : 00.0 : reg 18 : [mem 0xf7e20000-0xf7e3ffff 64 비트 ]
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 : D1 지원 D2
pci 0000 : 02 : 00.0 : [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, 디코딩 = io + mem,
소유자 = io + mem, locks = none vgaarb : 추가 된 장치 : PCI : 0000 : 02 : 00.0, decodes = io + mem, 소유자 = 없음 , locks = none
vgaarb : 브리지 제어 가능 0000 : 02 : 00.0
vgaarb : 브리지 제어 가능 0000 : 01 : 00.0
pci 0000 : 01 : 00.0 : 부팅 비디오 장치
[drm] 라데온 커널 모드 설정이 활성화되었습니다.
라데온 0000 : 01 : 00.0 : 64 지연 타이머 설정
라데온 0000 : 01 : 00.0 : VRAM : 1024M은 0x0000000000000000 – 0x000000003FFFFFFF (1024M 사용)
라데온 0000 : 01 : 00.0 : GTT : 512M 0x0000000040000000 – 0x000000005FFFFFFF
[DRM] 라데온 : VRAM의 1024M 메모리 준비
[drm] 라데온 : 512M의 GTT 메모리 준비.
radeon 0000 : 01 : 00.0 : MSI / MSI-X의 경우 irq 46
라데온 0000 : 01 : 00.0 : 라데온 : MSI 사용.
[drm] 라데온 : irq가 초기화되었습니다.
라데온 0000 : 01 : 00.0 : WB 활성화
[drm] 라데온 : ib 풀 준비.
[DRM] 라데온 : 전원 관리 초기화
fbcon : radeondrmfb (FB0)는 주 장치 인
radeondrmfb 프레임 버퍼 장치 FB0
마이너 0 00.0 : DRM] 초기화 된 라데온 0000 대 2.12.0 20,080,528 : 01
: 02 : 00.0 : 라데온 0000 가능 기기 (0000-> 0003)
라데온 0000 : 02 : 00.0 : 대기 시간 타이머를 64
라데온 0000 : 02 : 00.0 : VRAM : 2048M 0x0000000000000000-0x000000007FFFFFFF (2048M 사용)
라데온 0000 : 02 : 00.0 : GTT : 512M 0x0000000080000000-0x000000009FFFFFFF
[drm ] 라데온 : 2048M의 VRAM 메모리 준비
[drm] 라데온 : 512M의 GTT 메모리가 준비되었습니다.
radeon 0000 : 02 : 00.0 : MSI / MSI-X의 irq 49
radeon 0000 : 02 : 00.0 : radeon : MSI 사용.
[drm] 라데온 : irq가 초기화되었습니다.
라데온 0000 : 02 : 00.0 : WB 활성화
[drm] 라데온 : ib 풀 준비.
[drm] 라데온 : 전원 관리가 초기화 됨
fb1 : radeondrmfb 프레임 버퍼 장치
[drm] 작은 1 개의
[drm] 라데온 : 0000 : 02 : 00.0에 대한 radeon 2.12.0 20080528이 초기화되었습니다 .
radeon 0000 : 02 : 00.0 : ffff88041a941800 고정 해제 필요 없음
[drm] radeon : ttm finalized
pci-stub 0000 : 02 : 00.0 : stub
pci-stub 0000 : 02 : 00.0 : irq 49 for MSI / MSI-X
이로 인해 부팅시 Windows 7 VM이 블루 스크린됩니다.
모듈 radeon
이 6950이 아닌 6570에만 연결 되도록 구성하는 방법은 무엇입니까?
답변
나는 몇 가지 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]
-
팝업을 열고
/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을로드하려고 할 때 먼저 하나의 비디오 카드의 하드웨어를 예약하고 drm이 일부 장치에 연결되지 못하게하는 pci-stub을로드합니다.
나중에 rc.local에서 예약을 제거 할 수 있습니다 modprobe -r pci-stub
.
선택적 modprobe another-module
으로 해당 카드에 다른 모듈 을 로드 할 수 있습니다 .