deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

ReBarUEFI, Resizable BAR desteğiyle hiç gelmemiş UEFI anakartlara bu özelliği ekliyor

Açık kaynaklı bir UEFI sürücüsü, resmi desteği olmayan anakartlara Resizable BAR getiriyor; geliştiricisi eski donanımda yüzde 12'ye kadar daha yüksek kare hızları bildiriyor.

ReBarUEFI, Resizable BAR desteğiyle hiç gelmemiş UEFI anakartlara bu özelliği ekliyor

Eksik bir özellik için firmware yaması

Geliştirici xCuri0'nun açık kaynak projesi ReBarUEFI, Hacker News'te sade bir iddiayla dikkat çekti: UEFI anakartlara, hiçbir zaman bu özelliğiyle gelmemiş olsa bile Resizable BAR'ı getiriyor. Resizable BAR, bir CPU'nun grafik kartının tüm bellek havuzuna küçük ve sabit bir pencere üzerinden değil, doğrudan erişmesini sağlayarak transfer yükünü azaltıyor; AMD aynı yeteneği Smart Access Memory adıyla satıyor. Projenin GitHub sayfasına göre bu yöntem ölçülebilir performans kazançları sağlıyor ve Intel Arc GPU'lar amaçlandığı gibi çalışmak için fiilen bu özelliğe muhtaç.

Araç ne yapıyor

Proje, kullanıcıların bir wiki rehberini izleyerek anakartlarının firmware imajına yerleştirdiği ve ardından flash'ladığı bir UEFI DXE sürücüsü sunuyor. Değiştirilmiş firmware çalışmaya başladıktan sonra 4G decoding'in etkinleştirilmesi ve CSM'nin devre dışı bırakılması gerekiyor. ReBarState adlı yardımcı araç — Windows için release olarak ya da Linux'ta CMake ile derlenerek — NVRAM değişkeninde saklanan BAR boyutunu ayarlıyor. README, çoğu sistemin kullanılabilir en büyük ayarı kullanabileceğini, bir yapılandırma kararsız kalırsa daha küçük boyutların yedek seçenek olduğunu belirtiyor.

README ayrıca çoğu firmware'in Secure Boot açıkken bile imzasız veya yamalı modülleri kabul ettiğini, dolayısıyla anti-cheat korumalı oyunların otomatik olarak engellenmediğini iddia ediyor. NVIDIA Turing kartlarının (RTX 20 ve GTX 16 serisi) sahipleri, bu GPU'lar özelliği farklı şekilde ele aldığı için NvStrapsReBar adlı ayrı bir araca yönlendiriliyor.

Nasıl çalışıyor

Sürücü firmware'in DXE birimine gömülüyor, yani her açılışta çalışıyor. Başlangıçta PciHostBridgeResourceAllocationProtocol'ün PreprocessController fonksiyonunu kendi sürümüyle değiştiriyor: orijinal fonksiyonu çağırdıktan sonra, takılı GPU'nun Resizable BAR yeteneğini duyurup duyurmadığını kontrol ediyor ve ReBarState'te seçilen boyutu uyguluyor. PciBus sürücüsü daha sonra PCI numaralandırmasını yaparken büyütülmüş BAR'ı fark ediyor ve buna uygun adres alanı ayırıyor.

Firmware sınırlarını yamalamak

README'ye göre çoğu UEFI uygulaması 64-bit BAR'ları kötü yönetiyor; bu yüzden proje UEFIPatch tabanlı düzeltmeler içeriyor. Bunlar yapay 4GB, 16GB ve 64GB BAR boyutu tavanlarını kaldırıyor, 64-bit BAR'ların sessizce 32-bit'e düşürülmesini engelliyor ve birçok Intel platformunda kullanılabilir MMIO alanını genişletiyor: Skylake, Kaby Lake ve Coffee Lake kartlar tam 512GB (39-bit) aralığını kullanabilir; Haswell ve Broadwell da daha önceki 64GB sınırının düzeltilmesiyle aynısını kullanabiliyor, Sandy ve Ivy Bridge sistemleri ise 64GB'a ulaşıyor — bazen DSDT düzenlemeleri gerektiriyor. Ek yamalar, bir ReBarState hatasına yol açan NVRAM whitelist sorununu, Ivy Bridge'ten Broadwell'e kadar kartlarda BIOS kurulum ekranında USB 3 portlarının çalışmamasını ve X79'daki Above 4G decoding sorununu ele alıyor.

4G decoding olmadan kullanıcılar 1GB BAR ile sınırlı — bazen 512MB, ya da TOLUD düşürülerek 2GB'ye kadar — ve wiki, bu anahtarın bulunmadığı kartlarda gizli 4G decoding seçeneklerinin nasıl ortaya çıkarılacağını açıklıyor.

Yedek yollar ve uyarılar

Desteklenmeyen bir BAR boyutu sistemin açılmasını engellerse, CMOS'u temizlemek — bazen pili tamamen çıkarmak — Resizable BAR'ı yeniden devre dışı bırakıyor. PCIe Gen2 sistemlerin uyumsuz olduğu bir zamanlar düşünülüyordu, ancak README i5-2500K'da en az bir başarı vakası kaydediyor. Linux kullanıcıları firmware değişikliğini tamamen atlayabilir: güncel çekirdekler, 4G decoding açıkken GPU BAR'larını otomatik olarak yeniden boyutlandırıp ayırıyor; inatçı kartlar için pci=realloc çekirdek parametresi ve DSDT düzeltmeleri mevcut. BIOS'u değiştirmeden buna eşdeğer bir Windows yolu yok.

Performans konusunda proje sahibi, i5-3470 ve bir Sapphire Nitro+ RX 580 8GB üzerine kurulu bir test düzeneğinde, mütevazı bir 2GB BAR ile yüzde 12'ye kadar daha yüksek kare hızları bildiriyor. Proje, EDK2'ye, NikolajSchlej'in UEFITool ve UEFIPatch paketine, yapay firmware sınırlarını aşmak için kullanılan Ghidra'ya, test için QEMU ve OVMF'ye ve bir topluluk katkıcıları listesine teşekkür ediyor; ayrıca çalıştığı onaylanmış anakartların bir listesini tutuyor.

Açık uyarı yöntemin doğasında var: değiştirilmiş firmware flash'lamak, alışılmış biçimde kartı kullanılamaz hale getirme riski taşıyor ve sonuçlar donanıma göre değişiyor.

Neden önemli

Resizable BAR parça parça geldi: kart üreticileri onu seçici olarak sundu ve çok sayıda Sandy Bridge'ten Coffee Lake'e uzanan dönemin sistemleri — bugün sık sık ucuz ikinci el ya da giriş seviyesi GPU'larla eşleşen makineler — tamamen dışarıda bırakıldı. ReBarUEFI, üreticilerin bir donanım destek sorunu olarak gördüğü şeyi bir yazılım yamasına dönüştürüyor ve proje sahibinin kendi rakamları, kazançların azaltılmış BAR boyutlarında bile korunduğunu gösteriyor; bu da adres alanı dar olan platformlarda önemli. Ayrıca bu kartlar özellik etrafında ayarlandığından, eski kartlarda kabul edilebilir Intel Arc performansına giden pratik yol bu. Daha geniş açıdan proje, ne kadar çok firmware sınırının yetenek değil politika olduğunu — bir topluluğun bir disassembler ve bir yama dosyasıyla bulup kaldırabileceği tavanlar olduğunu — gösteriyor. Aksi halde kullanılabilir durumda olan eski donanımın sahipleri için, flash riskini kabul etmeleri şartıyla, bu nadir bulunan ücretsiz bir performans yükseltmesi.

  • #open-source
  • #uefi
  • #gpu
  • #firmware
  • #hardware
  • #resizable-bar

İlgili yazılar