ATI grafická karta vo FreeBSD

Dobrodružstvá vo svete ovládačov grafických kariet

Ako majiteľ grafickej karty ATI som sa potešil, že tento, čo do ovládačov pomerne zanedbávaný komponent UNIXovského sveta, sa konečne dočkal podpory pre FreeBSD. Od verzie 10.0 sa objavil port KMS pre ATI karty, čo znamená, že sa dočkám akcelerácie 2D či 3D grafiky. Na BSDčku totižto platí, že grafické karty od NVIDIE sú plne podporované a to už dosť dlho, no používať ATI kartu znamenalo len samé problémy.

Najprv k (mojim) očakávaniam: až doposiaľ som videl v RADEON/ATI ovládači akúsi rozšírenú verziu VESA ovládača, a prakticky som sledoval len to, aby sa mi vôbec podarilo prevádzkovať desktop vo full HD rozlíšení. Ani pokusy s PC-BSD mi príliš nepomohli – počítač občas zamŕzal a bol som celkom rád, keď sa mi podarilo spustiť film. Takže, moje očakávania smerovali k tomu, že konečne nebudem mať problém so stabilitou (čo však mohlo byť zapríčinené aj inými faktormi), že video a napríklad aj posúvanie okien po obrazovke pôjde bez akéhokoľvek trhania a snáď bude prítomná aj nejaká základná podpora 3D, či dokonca „kompozovania“ okien.

Nainštaloval som teda FreeBSD a nastavil hlavné balíky: Xorg, MATE desktop... Prvým problémom totižto bolo, že nikde na webe sa nepíše, či je podpora KMS už v binárnych balíkoch, alebo či ju treba oživiť ručným skompilovaním, ako tomu bolo už RC verziách (nejakú informáciu som predsa len objavil na nižšie spomínanej stránke). Po spustení desktopu (s použitím štandardného RADEON, neskôr aj ATI drivera) som však zistil, že akcelerácia sa nekoná, hoci MATE desktop bez problémov spustil aj softvérové kompozovanie, ktoré ku podivu bežalo pomerne plynulo. Preštudoval som teda dostupné zdroje a na wiki stránke pre freeBSD (https://wiki.freebsd.org/Graphics) som objavil slušný popis, ktorý odporúčam prečítať každému, koho táto téma zaujíma.

Je dôležité si pozrieť, či je daná grafická karta vlastne podporovaná. Vzhľadom na to, že používam ATI Radeon HD 5770, s potešením som zistil, že by všetko malo byť v poriadku a stačí len skompilovať niektoré súbory nanovo. Postup bol nasledovný:


1. Upraviť /etc/make.conf tak, aby sa potrebné balíčky kompilovali aj s podporou KMS:
WITH_NEW_XORG=yes
WITH_GALLIUM=yes

2. Vyupdatoval som porty:
# portsnap fetch
# portsnap update

3. Nainštaloval PORTMASTER (značne uľahčí kompilovanie kódu z portov)
# pkg install ports-mgmt/portmaster

4. Odstránil som balíčky, ktoré musia byť prekompilované odznovu. (Pochopiteľne, toto sa dá robiť len mimo desktopu, cez príkazový riadok)
# pkg delete -f graphics/libGL graphics/dri

5. Preinštalovanie a updatovanie potrebných balíkov:
# portmaster graphics/libdrm graphics/libGL graphics/dri x11-servers/xorg-server

6. No a vzhľadom na to, že som už mal nainštalované aj Xorg ovládače, prekompiloval som aj tie:
# portmaster xf86-

7. V /etc/X11/xorg.conf som ešte zmenil starí ovládač za nový:
driver=“radeon“ som zmenil na driver=“ati“

(„radeon“ driver sa neprekompiloval, ale „ati“ driver áno)


Po tejto procedúre nasledoval malý test. Spustil som desktop (# startx) a hned som zistil, že niečo nie je v poriadku: myška a vlastne celý desktop zamrzol a po niekoľkých ťuknutiach sa počítač reštartoval. S určitým podozrením som opäť prebehol materiály týkajúce sa KMS, ale nikde som sa nedočítal, že by bolo potrebné robiť ešte niečo iné. Ale potrebný bol zjavne reštart. Po reštarte nabehol desktop bez problémov a tak som sa pustil do testovania. Najprv som vyskúšal nejaké 2D hry a rozdiel som si okamžite všimol – napríklad Lincity-NG ide plynule bez sekania. Na test 3D akcelerácie som vyskúšal strategickú hru 0ad, ktorá mi prišla pomerne náročná na 3D grafiku a aj tentokrát bol výsledok vynikajúci. Hra beží úplne nádherne.

Záver: chvíľu to trvalo (ale nie zas tak dlhú chvíľu – skompilovať pár súborov a ovládačov trvá podstatne kratšie než dať dokopy celý Xorg, takže za pol hodinku bolo po všetkom), ale rozhodne to stojí za to. Celé desktopové prostredie funguje teraz plynulo a fungujú aj hry s 3D grafikou. Jediný problém na ktorý som zatiaľ natrafil sa týka vypínania MATE prostredia, ktoré sa nevyplo korektne. Ako dobré (aj keď nie ideálne) riešenie stačí použiť GDM pri štarte systému a vypínanie je potom v poriadku.




Nazad na zoznam článkov

Nazad na hlavnú stránku

Kamil Dubík (c) 2015
kim@charybdis.sk