deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (hnrss.org)

Topluluk geliştirdiği Linux DRM/KMS sürücüsü SM750 HDMI kartına modern görüntü desteği getiriyor

Bir geliştirici, Silicon Motion'ın SM750 HDMI kartı için deneysel bir açık kaynak DRM/KMS sürücüsü yayınladı; sürücü, çipin teknik özelliklerinin ötesinde titrek (dithered) RGB565 scanout, DMA güncellemeleri ve yazılımla ölçeklenen ultrawide modlar ekliyor.

Topluluk geliştirdiği Linux DRM/KMS sürücüsü SM750 HDMI kartına modern görüntü desteği getiriyor

Tek HDMI girişli bir PCIe kartında bulunan, az bilinen bir Silicon Motion grafik çipi olan SM750 için deneysel, topluluk tarafından geliştirilmiş bir Linux görüntü sürücüsü ortaya çıktı; sürücü, çekirdeğin eskiyen framebuffer yolunu modern bir DRM/KMS uygulamasıyla değiştiriyor. Geliştirici KodeMunkie tarafından GitHub'da yayımlanan ve Hacker News'in ana sayfasında öne çıkan proje, SE-DP750A-HDMI olarak satılan veya etiketlenen belirli bir kartı hedefliyor.

Sürücü neyi destekliyor

Depoya göre uygun kart, bir Silicon Motion SM750G10-AC (revizyon A1, PCI ID 126f:0750) ile bir Silicon Image/Lattice SiI902ACNU HDMI vericisi ve 16 MiB görüntü belleğini bir araya getiriyor. PCI ID tek başına çalışan bir kartı tanımlamak için yeterli değil: diğer SM750 kartları VGA, farklı bir verici veya farklı GPIO bağlantıları kullanabilir ve bunlar şu anda desteklenmiyor.

Sürücü, Ubuntu 24.04 ve Linux Mint 22 üzerinde derlenebilen bir DKMS paketi olarak geliyor ve eski sm750fb.ko ile karıştırılmaması için bu isim seçilmiş olan sm750hdmidrm.ko çekirdek modülünü üretiyor. Kurulum sonrası yeniden başlatma önem taşıyor, çünkü paketin Linux'un mevcut sm750fb framebuffer sürücüsünü kara listeye almasını ve kartı ele geçirmesini engelliyor. Çekirdek desteği Linux 6.17 ve daha yenilerini hedefliyor ve DKMS, gerekli DRM arayüzleri eksik olduğundan bilinçli olarak daha eski çekirdekleri reddediyor. Uyumluluk yolları 6.x serisini ve Linux 7.0 sonrasını kapsıyor; proje, tam test paketinin 6.17 ve 7.0 Ubuntu çekirdeklerine karşı derlendiğini ve geçtiğini bildiriyor, ancak ağaç dışı bir sürücü olarak gelecekteki bir çekirdek yine de kaynak güncellemesi gerektirebilir.

Yavaş bir PCIe hattının etrafında mühendislik

SM750'nin framebuffer'ına PCIe 1.1 x1 hattı üzerinden erişiliyor ve bu hat, daha yüksek çözünürlüklerde akıcı tam ekran 32-bit güncellemeleri taşıyamıyor. Sürücünün yanıtı titrekli (dithered) 16-bit RGB565 scanout: uygulamalar 32-bit renkte render etmeye devam ediyor, ancak yüklemeden hemen önce sürücü değişen bölgeleri RGB565'e dönüştürüyor ve %94 yeşil kanal düzeltmeli sıralı bir dither uyguluyor. RGB565 çıktı pikseli başına dört yerine iki bayt taşıdığından, cihaza bağlı piksel trafiği yarıya inerken görünür renk detayının büyük kısmı korunuyor.

Sürücü varsayılan olarak EDID modlarını, bir donanım imlecini, bir worker üzerinde birleştirilmiş güncellemeleri ve DMA başarısız olursa otomatik CPU geri dönüşü ile sekiz satırlık DMA yükleme gruplarını kullanıyor. Modül parametreleri ödünleşimleri ortaya koyuyor: iki kat yükleme maliyetiyle tam XRGB8888 scanout, titrek uygulanmamış düz RGB565, DMA devre dışı, yazılım imleci ve ek sistem belleği maliyetiyle değişmemiş pikselleri atlamak için anlık görüntü karşılaştırması.

Belirtimin ötesine geçmek

Cihaz normalde yatayda 1920 piksele kadar desteklediği şeklinde tanımlanıyor, ancak edid_only=0 ile sürücü gerçek 2048 genişliğinde donanım modlarını ortaya çıkarıyor: moda bağlı olarak 50'den 75 Hz'e kadar tazeleme hızlarında 2048x864, 2048x1024, 2048x1080 ve 2048x1152. Depo risk konusunda açık sözlü: bu modlar EDID ile kısıtlanmıyor, yayımlanmış GPU veya monitör saat sınırlarını aşabilir ve sinyalsiz kalma, bozulma veya kararsız bir görüntüyle sonuçlanabileceğinden bir SSH kurtarma yolu öneriliyor.

2048 sert bir üst sınır. SM750'nin birincil grafik düzleminin 11 bitlik bir sağ kenar alanı var, bu nedenle fiziksel scanout genişliği yükseklikten bağımsız olarak 2048 pikseli aşamıyor. Daha geniş gitmek için softscale_wide=1, görüntüyü yatayda 2048x1080 HDMI sinyaline sıkıştırarak 2464x1080 veya 2560x1080 mantıksal masaüstleri oluşturuyor; tam geniş ekran gerdirme seçeneğini çalıştıran bir 2560x1080 ultrawide monitör de bunu panelin tamamına geri genişletiyor. 2464 modu, isteğe bağlı %8 kontrast keskinleştirme geçişiyle birlikte öneriliyor. Proje, gerdirmenin ekran kapsamını ve yaklaşık olarak hedeflenen en-boy oranını geri kazandırdığını, kaybedilen kaynak detayı geri getirmediğini açıkça belirtiyor.

Neden önemli

Bu, açık kaynağın başka kimsenin modernize etmeyeceği donanımın ömrünü uzatmasına dair bir vaka çalışması. SM750'nin ana Linux desteği eski bir framebuffer sürücüsünden ibaretken, masaüstü yığınının geri kalanı çoktan DRM/KMS'e geçti; bu proje en az bir kart için bu boşluğu kapatıyor. Bunu kaba kuvvet yerine özenli bir mühendislikle, bant genişliğine duyarlı dithering, gruplanmış DMA ve güvenli geri dönüşlerle yapıyor ve tahmin etmek yerine çipin gerçek sınırlarını, 2048 piksellik düzlem kısıtı dahil, belgeliyor. Kapsam bilinçli olarak dar ve açıkça deneysel, yani genel bir SM750 çözümü değil. Ama motive tek bir geliştiricinin terk edilmiş silikonun kısıtlarını tersine mühendislikle çözebileceğini, fizik izin verdiği yerde pazarlanan özellikleri aşabileceğini ve üstüne tekrarlanabilir DKMS paketlemesi sunabileceğini gösteriyor; tam da bu dinamik, niş donanımı üretici ilgisi söndükten uzun süre sonra kullanışlı tutan şey.

  • #linux
  • #open-source
  • #display-drivers
  • #drm-kms
  • #kernel

İlgili yazılar