Savage4+DRI+DRM - konfiguracja akceleracji sprzętowej 3D, 2D

Slackware FAQ - czyli baza pytań i odpowiedzi.

Moderatorzy: Moderatorzy, Administratorzy

ODPOWIEDZ
Awatar użytkownika
player4
Użytkownik
Posty: 54
Rejestracja: 2004-09-25, 09:18
Lokalizacja:
Kontakt:

Savage4+DRI+DRM - konfiguracja akceleracji sprzętowej 3D, 2D

Post autor: player4 »

Savage4+DRI+DRM - konfiguracja akceleracji sprzętowej 3D, 2D



1. Krótka historia
Savage zawsze był problemowy, ale to wcale nie oznacza że kiepski! Jego ciekawe funkcje to s3tc (bardzo dobra kompresja tekstur: ratio 2:1, jednak w obecnych sterownikach AFAIK nie zaimplementowana w całości) i hardware'owy tripple buffering (redukcja efektu mory - ja bym to tak nazwał - dotyczy mip-mappingu...). Jak na tamte czasy był naprawde dobry. Nie stał się popularny z powodu wybrakowanych driverów (pod windows) i biosu. Nie tylko moim zdaniem Savage4 ma znaczną przewagę nad innymi kartami podobnej klasy: TNT2, Voodoo2, itp.

2. BIOS karty
Kluczem do stabilnego działania może byc bios na karcie! Radzę poszukać w necie bios'ów zbiorczych -- oznaczonych generic. Ostatnia wersja to chyba 2_1D-32, z roku 2003/4. Przed flashowaniem można się pokusić o uruchomienie (pod windą zwyczajnie, pod linuxem nie wiem -- może przed bootem, loadlin spod dosa?) załączonego w zipie pliku 395.exe (ładowac spod dosa, jest to cos w rodzaju TSR) i potestowanie np. Q3 pod względem stabilności/szybkości.

Flashowanie BIOSu na karcie musi się odbywać spod DOSa. Radzę zrobić minimalną dyskietkę startową (sam command.com?) na którą (spod slacka) zgrasz program flashujący + nowy image BIOSu, oraz pusty plik autoexec.bat(np. poleceniem # touch /mnt/floppy/autoexec.bat).
Reboot, ustawiamy w biosie kolejnosc bootowania: A, HDD, CDROM i czekamy aż się odpali z dyskietki. Teraz należy uruchomić program flashujący z parametrem /? albo /help i włączyć opcje, aby zrzucic istniejący BIOS na dyskietkę. Teraz dla pewnosci należałoby edytować autoexec'a (hmm czyżbym zapomniał o zgraniu edit.com? ) i wpisać w nim nazwe programu flashujacego i takie parametry, aby bez pytania wgrał na (E)EPROM stary plik z BIOSem (chyba /f - jak force). autoexec.bat powinien wyglądać mniej-więcej tak:

Kod: Zaznacz cały

s3flash /f old_bios.rom
To tak w razie jak coś pojdzie nie tak. Mamy teraz zabezpieczenie: przy awarii grafiki komp się odpali i sam przywroci poprzednia wersję BIOSU. Odczekamy aż dyskietka przestanie mielić+dodatkowe 30-45s i reset (twardy).
Jeśli brak jakiejś windy pod ręką, albo nie można tam zrobić bootdisk'a, zaglądamy na TĄ STRONĘ i ściągamy bootdisk dla DOSa 6.22 (w sumie może być dowolny). Instrukcje jak wgrać image pod linuxem też tam są.

3. Serwer X - X.org
Bedzie potrzebna najnowsza wersja X.org (paczki zajmują 13MB, źródła ponoć 300MB po rozpakowaniu, ale to wasz wybór) a więc isntalujemy paczki z currenta /x/x11-6.8.1-i486-2 oraz /x/x11-devel-6.8.1-i486-2 i dodatkowo /l/glibc-2.3.3-i486-2 ponieważ bez tego iksy sie w ogóle nie odpalą (bedziemy proszeni o instalację wersji 2.3.4 ktorej jeszcze nie ma!

4. Konfiguracja/instalacja oprogramowania
Wszystko zostało opisane TUTAJ. Opis konfiguracji również poniżej.

a. Ściągamy najnowsze snapshoty STĄD - interesują nas dwa pliki: common i savage. Nota bene są często aktualizowane.

b. Rozpakowujemy najpierw common i odpalamy skrypt instalacyjny. To samo z savage. Instalujemy NAJPIERW common, później savage.

c. Jeśli zmieniliście iksy z Xfree86 albo ze starszej wersji X.org na nowsze to zmieniamy w pliku /etc/X11/xorg.conf w sekcji klawiatury nazwę drivera z "keyboard" na "kbd".

d. Dalsze zmiany pliku xorg.conf obejmują sekcję karty graficznej. Powinno to wyglądać mniej wiecej tak:

Kod: Zaznacz cały

Section "Device"
#Option     "Accel" "1"          	# [<bool>]
Option     "HWCursor" "True"           	# [<bool>]
#Option     "SWCursor"           	# [<bool>]
#Option     "ShadowFB"           	# [<bool>]
#Option     "Rotate"             	# [<str>]
Option     "UseBIOS" "True"           	# [<bool>]
Option     "AGPMode" "2"
#Option     "LCDClock"           	# <freq>
#Option     "ShadowStatus"       	# [<bool>]
#Option     "CrtOnly"            	# [<bool>]
#Option     "TvOn"               	# [<bool>]
#Option     "PAL"                	# [<bool>]
#Option     "ForceInit"          	# [<bool>]
Identifier  "Card0"
Driver      "savage"
VendorName  "S3 Inc."
BoardName   "Savage 4"
BusID       "PCI:1:0:0"
EndSection
Wyrzucamy/hashujemy opcję "Accel" - jeśli ta opcja, lub wariant "NoAccel", pojawia się w confie, obojętnie czy sama, czy z False/True/No/Yes/0/1 - zawsze dostajemy komunikat, że wylaczono akcelerację. Zostawcie to, bo akceleracja (mowa o DRM - bez tego sam OpenGL działa!) jest domyślnie włączana!

Stosujemy "AGPMode" "2" a już na pewno nie "AGPMode" "x2"! Oczywiście dla nowszych kart (zaczynając od Savage4) i płyt głównych (patrz dokumentacja) można włączyc "4". Jeśli mamy kartę na złączu PCI, bezwzględnie hashujemy

"UseBIOS" "True" - jeśli bios karty nie sprawia problemów lepiej z niego skorzystać. U mnie przełączenie na "False" uniemożliwiało poprawne wyświetlanie obrazu.

5. Restart Xów
Oczywistym jest, że należy przeładowac iksy po zainstalowaniu nowych sterowników. Po uruchomieniu sprawdzamy używajac np. polecenia # glxgears czy nastąpily zmiany. U mnie liczba fps wzrosla z 50 do 310.

6. Aktualizacje oprogramowania
Pamiętamy o cyklicznych aktualizacjacj snapshotów oprogramowania.


7. PROBLEMY
a. Jeśli otrzymujecie następujący błąd:

Kod: Zaznacz cały

# glxgears 
libGL error: open DRM failed (Operation not permitted)
libGL error: reverting to (slow) indirect rendering
466 frames in 6.0 seconds = 77.667 FPS
...
to można sprobować dodać do pliku xorg.conf następujacy wpis który powinien pomóc

Kod: Zaznacz cały

Section "DRI"
        Mode    0666
EndSection



Autor: player4
Uwagi: matchil
Skład: Skyscraper
Ostatnio zmieniony 2004-11-13, 19:09 przez player4, łącznie zmieniany 2 razy.
killall SIGQUITF00LIN player4*
"Broken windows cure my ills and make me feel alright..." - The Offspring
ODPOWIEDZ