Radeon sürücüsünün belirli PCI aygıtlara takılmasını engelliyor musunuz?


13

Bu makinede iki Radeon kartım var, bir Radeon HD 6570 ve bir Radeon HD 6950 :

lspci | grep VGA

01: 00.0 VGA uyumlu denetleyici: Gelişmiş Mikro Aygıtlar [AMD] nee ATI Turks [Radeon HD 6570]
02: 00.0 VGA uyumlu denetleyici: Gelişmiş Mikro Aygıtlar [AMD] nee ATI Cayman PRO [Radeon HD 6950]

Debian 7'de (Wheezy) KVM ile çalışmak için VGA geçidi elde etmeye çalışıyorum, 6950'den Windows 7 misafirine ikincil bir ekran kartı olarak geçiyorum. Çekirdek modülünü kara listeye alırsam bu işe yarar .radeon/etc/modprobe.d/

6570'te X11'i (veya sadece bir KMS konsolunu) çalıştırmak için kara listeyi kaldırırsam, radeonmodül her iki karta da takılı gibi görünür :

dmesg | egrep "01: 00.0 | 02: 00.0 | radeon"

pci 0000: 01: 00.0: [1002: 6759] 0 sınıfı 0x000300
pci 0000: 01: 00.0: reg 10: [mem 0xe0000000-0xefffffff 64bit pref]
pci 0000: 01: 00.0: reg 18: [mem 0xf7e20000-0xf7e3ffff 64bit ]
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'ı destekliyor : [1002: 6719] 0 sınıfı 0x000300
pci 0000: 02: 00.0: reg 10: [mem 0xd0000000-0xdfffffff 64bit pref]
pci 0000: 02: 00.0: reg 18: [mem 0xf7d20000-0xf7d3ffff 64bit]
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'yi destekler
vgaarb: aygıt eklendi: PCI: 0000: 01: 00.0, kod çözme = io + mem, owns = io + mem, kilitler = yok
vgaarb: aygıt eklendi: PCI: 0000: 02: 00.0, kod çözme = io + mem, owns = yok , kilitler = yok
vgaarb: köprü kontrolü mümkün 0000: 02: 00.0
vgaarb: köprü kontrolü mümkün 0000: 01: 00.0
pci 0000: 01: 00.0: Önyükleme video aygıtı
[drm] radeon çekirdeği mod ayarı etkinleştirildi.
radeon 0000: 01: 00.0: gecikme zamanlayıcısını 64 olarak ayarlama
radeon 0000: 01: 00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M kullanılmış)
radeon 0000: 01: 00.0: GTT: 512M 0x000000000040000000 - 0x000000005FFFFFFF
[drm] VReon: 1024M bellek hazır
[drm] radeon: 512M GTT bellek hazır.
radeon 0000: 01: 00.0: MSI / MSI-X için irq 46
radeon 0000: 01: 00.0: radeon: MSI kullanarak.
[drm] radeon: irq başlatıldı.
radeon 0000: 01: 00.0: WB etkinleştirilmiş
[drm] radeon: ib pool ready.
[drm] radeon: güç yönetimi başlatıldı
fbcon: radeondrmfb (fb0) birincil cihazdır
fb0: radeondrmfb çerçeve tampon cihazı
[drm] Başlatılan radeon 2.12.0 20080528 for 0000: 01: 00.0 minör 0
radeon 0000: 02: 00.0: etkinleştirme cihazı (0000 -> 0003)
radeon 0000: 02: 00.0: gecikme zamanlayıcısını 64
radeon olarak ayarlama 0000: 02: 00.0: VRAM: 2048M 0x0000000000000000 - 0x000000007FFFFFFF (2048M kullanılmış)
radeon 0000: 02: 00.0: GTT: 512M 0x0000000080000000 - 0x000000009mfFF
[drff ] radeon: 2048M VRAM bellek hazır
[drm] radeon: 512M GTT bellek hazır.
radeon 0000: 02: 00.0: MSI / MSI-X için irq 49
radeon 0000: 02: 00.0: radeon: MSI kullanarak.
[drm] radeon: irq başlatıldı.
radeon 0000: 02: 00.0: WB etkinleştirilmiş
[drm] radeon: ib pool ready.
[drm] radeon: güç yönetimi başlatıldı
fb1: radeondrmfb çerçeve tampon cihazı
[drm] Minör 1
[drm] radeon: bitirme cihazında 0000: 02: 00.0 için başlatılan radeon 2.12.0 20080528 .
radeon 0000: 02: 00.0: ffff88041a941800 sabitlemeyi kaldırmaya gerek yok
[drm] radeon: ttm kesinleştirilmiş
pci-stub 0000: 02: 00.0: saplama
pci-stub tarafından talep edildi 0000: 02: 00.0: irq 49 MSI / MSI-X için talep edildi

Bu, Windows 7 VM'nin önyükleme sırasında mavi ekran göstermesine neden olur.

radeonModülleri 6950'ye değil, yalnızca 6570'e bağlanacak şekilde nasıl yapılandırabilirim ?

Yanıtlar:


14

Bazı vardı pci_stublı hatları skinTenimde rc.localancak bundan sonra çalışan, yardım etmek görünüşte çok geç önyükleme sürecinde oldu radeonşeylerle başladı işe yaramaz.

pci_stubÇekirdek modülünü şu öğelere taşıyarak işleri düzelttim initramfs:

  1. lspci -nn | grep Caymanbulmak için vendor:device6950 ve HDMI port için (hattın en sonunda) sayıları:

    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]
    
  2. Açın /etc/initramfs-tools/modulesve yeni bir satır ekleyin:

    pci_stub ids=1002:6719,1002:aa80
    
  3. Yeniden oluştur initramfs:

    sudo update-initramfs -u
    
  4. Yeniden başlatın ve pci_stubattığınızı gözlemleyin 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
    
  5. Bluescreen içermeyen VGA geçidinin tadını çıkarın!


3
Yukarıdakiler benim için işe yaramadı. Bunun yerine pci_stub.ids=1002:6719,1002:aa80grub config dosyasındaki çekirdek komut satırının sonuna ekledim . Bunun nedeni, pci-stubmodülün kurulumumda çekirdeğe yerleştirilmiş olduğundan şüpheleniyorum .
Mansour


5

Genffault cevabını referans olarak kullanarak, başka bir cevap yarattım, bence daha basit.

İlk adım yukarıdaki ile aynıdır:

Sonra bulduğum argümanlarla /lib/modprobe.d/pci-stub.conf adlı bir dosya oluşturdum:

options pci-stub ids=1002:9715,1002:970f

Sonra softlib ile /lib/modprobe.d/drm.conf adlı bir dosya oluşturdum:

softdep drm pre: pci-stub

Bu şekilde, önyükleme işlemi drm'yi yüklemeye çalıştığında, önce bir video kartının donanımını saklayan ve drm'nin bir aygıta takılmasını önleyen pci-stub yükler.

Daha sonra rezervasyonu rc.local adresinden kaldırabilirsiniz modprobe -r pci-stub.

İsteğe bağlı olarak modprobe another-module, bu kart için başka bir modül yükleyebilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.