# HOWTO: Radeon <8500, DRI i X.Org

## nelchael

Wstęp

ATI jako firma dbająca o swoich konsumentów pstanowiła popełnić sterowniki binarne dla Linuksa - zwie się toto fglrx (link). Pomijając ta tajemniczą (i IMHO głupawą nazwę (to jest moja prywatna opinia i nie podlega dyskusji)) sterowniki okazały się marne: wolniejsze od swoich Windowsowych odpowiedników, cięzkie w instalacji i... nie obsługujące wszystkich kart ATI. Z tego ostatniego powodu specyfikacja kart Radeon <=9200 została udostępniona (link) projektowi DRI (link) - ta grupa zapaleńców popełniła kolejny sterownik dla Radeonów: radeon (nazwa lepsza, prawda?). Oto co potrzebujemy żeby zacząć korzystać z tego sterownika.

Jajeczko

Potrzebujemy następujących opcji w konfiguracji jądra:

```
CONFIG_AGP=y

```

potrzebujemy również COFIG_AGP_vendor - oczywiście zamiast 'vendor' będzie nazwa producenta mostka odpowiedzialnego za obsługę AGP a nie nazwa producenta karty graficznej. I tak ja mam CONFIG_AGP_INTEL.

Potrzebujemy również obsługi DRM:

```
CONFIG_DRM=y
```

i w końcu obsługi naszej karty przez DRM:

```
CONFIG_DRM_RADEON=m
```

DRM to część DRI, która umożliwia bezbolesny dostęp do karty sterownikowi z X.Org.

Teraz kompilujemy jajeczko, instalujemy, konfiugurujemy Lilo/Grub i uruchamiamy nowe jajo. Jeśli wszystko działa to ok, jeśli nie to wracamy do konfiguracji.

X.Org

Pierwsza ważna rzecz:

```
modprobe radeon
```

Działa? To ok. Nie? Coś jest popsute w konfiguracji jajka - wczytujemy się w to czym poczęstował nas modprobe i w to co pokaże 

```
dmesg
```

Teraz zajmujemy się plikiem /etc/X11/xorg.conf: musimy w nim mieć:

```
...Section "Module"

    # ...

    Load            "dri"

    Load            "glx"

    # ...

EndSection
```

To co ważne: Load "dri" - to moduł X.Org'ow odpowiedzialny za obsługe sterowników, które korzystają z DRI. Obowiązkowo musi to być włączone dla sterowników z X.Org - dla sterowników binarnych (nVidia, Ati) musi to być wyłączone!

Teraz sterownik:

```
Section "Device"

    Option          "AGPMode" "4"

    Identifier      "Card0"

    Driver          "radeon"

    VendorName      "ATI Technologies Inc"

    BoardName       "Radeon Mobility M6 LY"

EndSection
```

Sterownik - radeon. Opcja AGPMode to szybkość naszego AGP - sutawiamy to na najwyższą opcję, która jest obsługiwana zarówno przez kartę jak i mostek!

Teraz ostatni szlif:

```
Section "DRI"

    Group           0

    Mode            0666

EndSection
```

To umożliwi korzystanie z DRI wszystkim użytkownikom maszyny, nie tylko właścicielowi pliku w katalogu /dev.

Uruchamiamy X'y:

```
startx
```

Jeśli wszystko poszło ok i mamy TWM'a (lub innego WM'a jeśli jest już ustawiony) to uruchamiamy takie coś:

```
glxinfo | grep 'direct'; glxinfo | grep 'DRI'
```

Wynik dla mojej karty:

```
nelchael@nelchael kernel-configs$ glxinfo | grep 'direct'; glxinfo | grep 'DRI'

direct rendering: Yes

OpenGL renderer string: Mesa DRI Radeon 20030328 AGP 4x x86/MMX/SSE2 NO-TCL

nelchael@nelchael kernel-configs$ 
```

A więc: mamy włączone 'Direct Rendering' czyli nasze DRI oraz obsługę OpenGL mamy poprzez Mese korzystająca na ile się da (a zależy to od karty) z DRI czyli sprzętowej akceleracji.

Nie udało się, lub X'y wysypały się? Błąd w /etc/X11/xorg.conf - polecam zapoznać się z logami w /var/log/.

Dodatki

Teraz mamy okazję do przekonania się ile nasza karta potrafi we współpracy z DRI:

```
nelchael@nelchael kernel-configs$ glxgears 

947 frames in 5.0 seconds = 189.400 FPS

1093 frames in 5.0 seconds = 218.600 FPS

1097 frames in 5.0 seconds = 219.400 FPS

1097 frames in 5.0 seconds = 219.400 FPS

1096 frames in 5.0 seconds = 219.200 FPS

Broken pipe

nelchael@nelchael kernel-configs$ 
```

Malutko  :Sad:  Lepsze to niż OpenGL całkowicie oparty na soft-rendering, ale nie jest to maksimum możliwości tej karty.

Wersja DRI

W przypadku, gdy korzystamy z (R.I.P) XFree to nowszą wersję DRI musimy dociągnąć z CVS'u - instrukcje jak to zrobić, jak skompilować i zainstalować są na stronie DRI i są świetnie napisane: Building

A może by tak fglrx?

A więc: wiem o żadkich przypadkach zmuszenia fglrx'ów do współpracy ze starszymi modelami Radeon'ów, ale nie polecam takiej zabawy. Jest petycja do Ati, aby poprawili jakość sterowników binarnych dla Linuksa oraz wypuścili sterowniki do brakujących kart (Radeon <8500, wszystkie Radeony Mobility) - zachęcam do podpisania jej, oto adres: http://www.petitiononline.com/atipet/petition.html

----------

## mkay

 *nelchael wrote:*   

> 
> 
> Teraz zajmujemy się plikiem /etc/X11/xorg.conf: musimy w nim mieć:
> 
> ```
> ...

 

Teraz zajmujemy się plikiem /etc/X11/xorg.conf: musimy w nim mieć:

```
...Section "Module"

    # ...

    #Load            "dri"

    Load            "glx"

    # ...

EndSection
```

To co ważne: Load "dri" - to moduł X.Org'ow odpowiedzialny za obsługe sterowników, które korzystają z DRI. Obowiązkowo musi to być włączone dla sterowników z X.Org - dla sterowników binarnych (nVidia, Ati) musi to być wyłączone!

----

wydaje mi sie, ze w ten sposob jest czytelniej

----------

## nelchael

 *aye wrote:*   

> wydaje mi sie, ze w ten sposob jest czytelniej

 

Ja opisuje jak wlaczyc DRI aby z niego korzystac, wiec 'musimy w nim miec' przedstawia jak musi wygladac ten fragment xorg.conf

----------

## mkay

 *nelchael wrote:*   

>  *aye wrote:*   wydaje mi sie, ze w ten sposob jest czytelniej 
> 
> Ja opisuje jak wlaczyc DRI aby z niego korzystac, wiec 'musimy w nim miec' przedstawia jak musi wygladac ten fragment xorg.conf

 

hmm - no tak - jaks wydawalo mi sie, ze to haw-to do sterownikow binarnych;/

----------

## nelchael

 *aye wrote:*   

> 
> 
> hmm - no tak - jaks wydawalo mi sie, ze to haw-to do sterownikow binarnych;/

 

hehe... gdyby tylko byly...  :Wink: 

----------

## Dael...

 *nelchael wrote:*   

> Wstęp
> 
> Jajeczko
> 
> Potrzebujemy następujących opcji w konfiguracji jądra:
> ...

 

nie rozumiem co to znaczy...

konkretnie nie wiem gdzie to wpisac...

jestem n00b  :Wink: 

UPDATE: 

Zrozumialem, salut ;]Last edited by Dael... on Tue Apr 18, 2006 10:36 pm; edited 1 time in total

----------

## kfiaciarka

Nie wpisać tylko wybrać w Device Drivers->character devices i /dev/agpgart jako <*> statycznie wkompilowany ,nie jako <m> czyli moduł.

----------

