Ara

25 Yıl Sonra Voodoo 3 Yeniden Canlanıyor: Linux Sürücüsü Güncellendi, Artık PC BIOS’u Olmadan Çalışabiliyor!

1990'ların sonlarının ikonik grafik kartlarından biri olan 3dfx Voodoo 3, Linux çekirdeğinin 7.3 sürümüyle nostaljik bir güncelleme alıyor. Bu güncelleme, efsanevi PCI ve AGP hızlandırıcının modern bir Linux grafik yığınına kavuşacağı anlamına gelmiyor; ancak çekirdeğin mevcut tdfxfb (framebuffer) sürücüsü, kartı başlatmak için sistem firmware'inin Voodoo 3'ün video BIOS'unu çalıştırmasına bağımlı olmaktan çıkacak şekilde güncelleniyor. Bu küçük ama oldukça spesifik değişiklik, eski donanımların neden bazen günümüz Linux'unda ilgi gördüğünü gösteriyor.

Tarihsel olarak tdfxfb sürücüsü, Voodoo kartının PC firmware'i tarafından zaten başlatılmış olduğunu varsaymaktaydı. Bunun nedeni, sürücünün yazıldığı dönemde geleneksel x86 PC'lerde bu varsayımın mantıklı olmasıydı. Sistem firmware'i, kartın video BIOS'unu önyükleme sırasında çalıştırır, donanımı yapılandırır ve ardından Linux'a görüntü gösterebilecek bir donanım teslim ederdi. Ancak, firmware'in VGABIOS'u çalıştıramadığı veya çalıştırmadığı daha yeni ve alışılmadık platformlarda bu varsayım geçerliliğini yitiriyordu. Bu durum özellikle x86 olmayan bilgisayarlar, başka bir grafik kartının birincil olduğu sistemler ve eski video BIOS'ları çalıştıramayan yeni nesil BIOS'lar için bir sorun teşkil ediyordu.

Bu yamaların arkasındaki geliştirici olan Daniel Palmer, bir PCI köprüsüyle donatılmış Amiga 4000'de Voodoo 3 kullanırken bu sorunla karşılaştı. Linux kartı algılayabiliyordu ancak Voodoo tamamen başlatılamadığı için ekranda “sinyal yok” uyarısı beliriyordu. Yeni kod, kartın kendi video BIOS'undan alınan yapılandırma bilgilerini kullanarak başlatma işlemini Linux üzerinden gerçekleştiriyor. Böylece sürücü, sistem firmware'ine bağlı kalmadan VGA çekirdeğini başlatıp çalışan bir görüntü oluşturabiliyor. Şu an için bu manuel başlatma kodu özellikle Voodoo 3'ü hedefliyor; VSA-100 tabanlı Voodoo 4 ve 5 kartları için de destek düşünülse de, BIOS yapıları farklı olduğu için bu destek mevcut yama serisinden çıkarıldı. Kod, hem modern bir x86-64 sistemde hem de bir Mediator PCI köprüsüne sahip Amiga 4000 üzerinde test edildi.

Standart, modern diyebileceğimiz bir x86-64 PC'ye Voodoo 3 takıldığında, bu güncellemenin pratik sonucu oldukça mütevazı. tdfxfb sürücüsünü yüklediğinizde, Voodoo'nun bir ekranı yönettiği ve Linux sanal konsolunu barındırabildiği, genellikle /dev/fb0 olarak gösterilen çalışan bir Linux framebuffer cihazı elde edebilirsiniz. Başka bir deyişle, bu güncelleme Voodoo'yu “Linux'un tanımlayabildiği bir PCI cihazı”ndan, firmware ilk başta başlatmasa bile ekrana piksel basabilen gerçek bir görüntü bağdaştırıcısına dönüştürmek için yeterlidir. Linux framebuffer arayüzünü kullanmayı bilen uygulamalar da, diğer eski framebuffer cihazlarında olduğu gibi buraya çizim yapabilir.

Ancak, bu çalışmanın sınırları da burada belirginleşiyor. Linux fbdev, eski bir grafik arayüzüdür ve uzun süredir Linux'un DRM/KMS grafik altyapısı tarafından yerini almıştır. Bu nedenle bu, Voodoo 3'ü modern bir Linux GPU'su olarak yeniden canlandırmak anlamına gelmiyor. tdfxfb sürücüsünü yüklemek size Mesa yığını, modern OpenGL, Wayland hızlandırması veya beklenen türde 3D işlevsellik sağlamaz. Temelde çok eski usul bir “pikseli ekrana püskürtme” düzenidir. Ancak bu, bir Linux konsolu, gömülü sistem tarzı framebuffer uygulamaları ve egzotik PCI grafik kartlarını daha da egzotik eski bilgisayarlara takanlar için yeterince kullanışlıdır; modern bir masaüstü bilgisayara Voodoo 3 takmak için ikna edici bir sebep değildir.

Daha ilginç olan ise Palmer'ın Voodoo 3 için ayrı bir 3D yolu üzerinde çalıştığı ve bu çabanın tek başına framebuffer çalışmasından çok daha ileride olduğudur. Deneysel arayüz, yeni /dev/tdfx3d misc cihazı aracılığıyla Voodoo'nun kayıt alanını kullanıcı alanına açıyor. Bu cihazın mmap() arayüzü, yazılımların kartın 3D donanımını doğrudan programlamasına olanak tanıyor. Bunun üzerinde ise Voodoo 3'ü çalıştırmak için küçük bir kullanıcı alanı kütüphanesi olan smoltdfx ve bunun üzerine kurulu küçük bir OpenGL 1.x uygulaması olan smolminigl bulunuyor. Palmer, projeyi gerçek Voodoo 3 donanımında test ettiğini ve X, Mesa veya Glide olmadan doğrudan kartın kayıtları aracılığıyla render alabildiğini belirtiyor.

Palmer, bu çalışmayı Voodoo 3'ün bir QEMU emülasyonuyla birlikte geliştiriyor. Geliştirici, kartın Amiga'sında çalışmasını sağlamanın sorununu gidermek için öncelikle emülatörün oluşturulmasına yardımcı olduğunu söylüyor. Artık test programları hem emüle edilmiş kartta hem de gerçek donanımda çalıştırılabiliyor. Farklılıklar, davranış eşleşene kadar emülatöre geri besleniyor. smoltdfx projesi artık QEMU ve fiziksel Voodoo 3 donanımına karşı aynı render testlerini kullanarak, farklılıkları yakalamak için kare özetlerini karşılaştırıyor. Palmer'a göre, ortaya çıkan MiniGL uygulaması gerçek kartta Quake'i zaten çalıştırabiliyor, ancak performans mükemmel değil ve Voodoo 3'ün çoklu doku yetenekleriyle ilgili bazı sorunlar henüz çözülmüş değil.

Açıkçası bu, bir Voodoo 3'e basit bir Linux konsolu koymaktan çok daha ilgi çekici. Ortaya çıkan şey, baştan aşağıya deneysel bir 3dfx grafik yığını: Linux framebuffer ve düşük seviyeli cihaz erişimini sağlıyor, kullanıcı alanı Voodoo'yu doğrudan programlıyor ve hafif bir OpenGL uygulaması, klasik 3D yazılımların kartı komutlandırması için yeterli işlevselliği sağlamak üzere bunun üzerine oturuyor.

Gerçekten de, retro-bilgisayar ve sanallaştırma için bu durum özellikle eğlenceli olabilir. Bir PCI Voodoo 3, en azından kavramsal olarak, PCI passthrough kullanarak bir sanal makineye atanabilen türden bir cihazdır. Bu, konuk işletim sisteminin, döneme uygun 3dfx sürücüsüyle gerçek hızlandırıcıyla doğrudan konuşmasına olanak tanır. Bu kurulumun fantastik versiyonunda, modern bir Linux ana bilgisayarı, Voodoo 3'ü bir Windows 98 veya DOS dönemi konuğuna verebilir ve konuğun eski yazılımların beklediği aynı donanımı kullanmasına izin verebilir. Mühendislik detayları konseptin ima ettiğinden çok daha karmaşık olsa da (özellikle eski donanımı temiz bir şekilde sıfırlama ve ortaya çıkarma etrafında), aksi takdirde uykuda olan bir Voodoo'yu Linux'tan başlatma yeteneği, bu bulmacanın en azından faydalı bir parçasıdır.

Ancak şimdilik, başlık mevcut özellik kümesinden daha önemli. Linux 7.3, 25 yıllık bir Voodoo 3'ü aniden kullanılabilir bir GPU'ya dönüştürmüyor; firmware'in işi yapamadığı sistemlerde kartı hayata döndürebilen mevcut bir framebuffer sürücüsünü yetkin hale getiriyor ki bu da donanım desteğindeki çok küçük ama çok gerçek bir boşluğu dolduruyor. Daha da dikkat çekici olanı, aynı çabanın gerçek donanımda deneysel 3D hızlandırmasına bile yayıldığı, Quake çalıştırabilen bir kullanıcı alanı Voodoo 3 kütüphanesi ve OpenGL uygulaması ile karşımıza çıkıyor. Voodoo 3 şimdi 25 yaşın üzerinde olsa da, birileri 2026 yılında hala onunla Linux'a yeni numaralar öğretiyor.

Önceki Haber
Şanslı Alıcı: RTX 5060 Ti'yi Sadece 242 Dolar'a Kaptı, Diğerleri 500 Dolardan Satıyor!
Sıradaki Haber
Windows 11'de Mavi Ekran Kabusu: Suçlu RGB Aydınlatma Yazılımları mı?

Benzer Haberler: