Odświeżanie w Xorg... czyli jak wygenerowac sobie Modeline

Slackware FAQ - czyli baza pytań i odpowiedzi.

Moderatorzy: Moderatorzy, Administratorzy

ODPOWIEDZ
Awatar użytkownika
difrost
Moderator
Posty: 2802
Rejestracja: 2006-03-11, 12:31
Lokalizacja: Wrocław
Kontakt:

Odświeżanie w Xorg... czyli jak wygenerowac sobie Modeline

Post autor: difrost » 2006-05-31, 22:48

Odświeżanie w Xorg... czyli jak wygenerowac sobie Modeline

SPIS TRESCI:

Kod: Zaznacz cały

1. Wstęp
2. Generowanie Modeline przy użyciu gtf
3. Zintegrowane układy Intela (855, 865, 915)
3. Podsumowanie
1. Wstęp

Jak ogólnie wiadomo praca przy ,,słabym'' odświeżaniu potrafi być strasznie męcząca (o niekorzystnym wpływie na oczy nie wspomnę). Zauważyłem, że na forum często pojawiają się pytania o odświeżanie, a w samym FAQ takowy wątek się nie znajduje. Postaram się zapchać tę dziurę.

2. Generowanie Modeline przy użyciu gtf

Serwer Xorg posiada wbudowane standardowe tryby VESA, aczkolwiek nie są one zazwyczaj wystarczające (przynajmniej na nowszych monitorach).

gtf (man gtf) to narzędzie służące do obliczania trybów VESA GTF, które następnie można użyć do wymuszenia niestandardowych trybów. Oznacza to nic innego jak to, że możemy sobie sami wybrać odświeżanie dla naszego monitora (dla każdej z wybranych rozdzielczości).

Jak to wygląda w praktyce - tzw. Modeline generujemy w sposób następujący:

Kod: Zaznacz cały

gtf h-res v-res odświeżanie -x
gdzie:
h-res, v-res -- rozdzielczość;
odświeżanie -- wiadome;
-x -- xorgmode; wyświetla Modeliny w formacie Xorg (istnieje opcja -f -- format wyjściowy będzie przystosowany do fbset)

Na przyklad:
*) rozdzielczość 1024x768 i odświeżanie 110Hz:

Kod: Zaznacz cały

 gtf 1024 768 110 -x 
i dostajemy:

Kod: Zaznacz cały

# 1024x768 @ 110.00 Hz (GTF) hsync: 90.09 kHz; pclk: 125.41 MHz
 Modeline "1024x768_110.00"  125.41  1024 1096 1208 1392  768 769 772 819  -HSync +Vsync
To co nas najbardziej interesuje, to pole hsync (w przykładzie wyżej hsync: 90.09 kHz;).Jeśli hsync przekracza możliwości twojego monitora, to zmniejsz odświeżanie tak aby zejść do wartości obsługiwanej przez swój monitor.

UWAGA: Jeśli przekombinujesz z hsync, tj. użyjesz Modeline z hsync wyższym niż możliwości twojego monitora, to może on ulec uszkodzeniu (trwałemu!!!).

Kolumna w cudzysłowiach (ta bezpośrednio po Modeline) jest niczym innym jak nazwą trybu. Można tutaj stosować różne wygibasy, aczkolwiek chyba najbardziej informacyjna jest wersja podobna do tej wyrzucanej przez gtf, tj. HRESxVRES@REFRESH. Z góry przestrzegam przed ,,nadpisywaniem'' trybów VESA (używaniem nazw typu "1024x768"), powinno to działać bez problemów, ale jak się okazuje w praktyce, nie zawsze tak jest.

Jesli mamy wygenerowane interesujące nas Modeline(y), to umieszczamy je w Section "Monitor" pliku konfiguracyjnego (/etc/X11/xorg.conf). U mnie to wygląda tak:

Kod: Zaznacz cały

Section "Monitor"
Identifier   "Eizo"
VendorName   "DPC"
ModelName    "4570"
Option      "DPMS"
HorizSync       30.0 - 95.0
VertRefresh     50.0 - 160.0

Modeline "1280x1024@85" 159.36 1280 1376 1512 1744 1024 1025 1028 1075 -HSync +Vsync
Modeline "1024x768@110" 125.41 1024 1096 1208 1392 768 769 772 819 -HSync +Vsync
Modeline "800x600@140" 99.16 800 856 944 1088 600 601 604 651 -HSync +Vsync
Modeline "640x480@175" 81.93 640 688 760 880 480 481 484 532 -HSync +Vsync
EndSection
Następnie podajemy wybrane nazwy trybów w Section "Screen", w moim przypadku wyglada to tak

Kod: Zaznacz cały

SubSection "Display"
Viewport   0 0
Depth     24
    Modes       "1280x1024@85" "1024x768@110" "800x600@140" "640x480@175"
    ViewPort    0 0
EndSubSection
I to wszystko.

3. Zintegrowane układy Intela (855, 865, 915)

Sprawa ze zintegrowanymi (onboard) układami graficznymi Intela wygląda troche innaczej. Mają one niekompletny VBIOS (raczej uszkodzony) i dlatego ustawienie niestandardowych rozdzielczości (odświeżania dla nich) wygląda troche innaczej. Trzeba będzie posłużyć się narzędziem 855resolution, którego autorem jest Alain Poirier.

Istnieje również bardziej zaawansowana wersja 855resolution (bazująca na tym kodzie) -- 915resolution, która jest rozszerzeniem na wszystkie układy serii 800 i 900.

Po więcej informacji na temat użycia wyżej wymienionych narzędzi odsyłam na strony domowe projektów.

3. Podsumowanie

Jak widać generowanie Modeline nie jest dramatycznie skomplikowane. Zamiast gtf można skorzystać z tej stronki (wygrzebane z postu ogro), ale nie ręcze za poprawność wygenerowanych tam Modeline (nie używałem).

autor: difrost
Ostatnio zmieniony 2006-09-14, 22:56 przez difrost, łącznie zmieniany 3 razy.

ODPOWIEDZ