- předchozí článek - následující článek - obsah - úvodní stránka -

Linuxové noviny 03-04/99

Nové grafické karty a Xka

Robert Vojta, 13. března 1999

V dnešní uspěchané době se grafické karty vyvíjejí neuvěřitelným tempem a programátoři kteří mají něco společného s XFree86 nestíhají vyvíjet nové a nové ovladače. Je to způsobeno vytížeností programátorů XFree86 a také tím, že většina firem zabývajících se výrobou karet uvolňuje specifikaci dosti pozdě. Proto je tu pro nás chudáky, co máme nové železo, návod na to, jak zprovoznit Xka pod operačním systémem Linux.

Co je potřeba?

Co k tomu potřebujete? První věc je nové jádro ftp://ftp.cz.kernel.org/pub/linux/kernel/, a to minimálně verze 2.1.112, novější XFree86 http://www.xfree86.org/ (doporučuji 3.3.3.1) a poslední věc je vaše grafická karta, která musí být kompatibilní se standardem VESA, a to minimálně verze 2.0. Takže teď víme, co k tomu potřebujeme, a můžeme se pustit do konfigurace vašeho stroje.

Konfigurace jádra

Jádro rozbalíme do adresáře /usr/src a vytvoříme symbolický link /usr/src/linux, který bude ukazovat na naše nově rozbalené jádro. Přejdeme do adresáře /usr/src/linux a spustíme konfiguraci jádra a to pomocí příkazu make menuconfig. Jádro si nastavte dle vlastních představ a až to budete mít hotové, musíte ještě provést následující věci:

  • v menu Code Maturity Level zaškrtněte položku Enable the prompt for development and/or incomplete drivers.

  • v menu Console Drivers zaškrtněte následující položky

    • VGA Text console
    • Video selection support
    • Support for frame buffer devices
    • VESA VGA Graphics console
    • Advanced low level drivers
    • Mono, 2bpp, 4bpp, 8bpp, 16bpp, 24bpp a 32bpp packed pixel drivers
    • VGA Character/attributes support

Nyní můžeme opustit konfigurační program a pustit se do dalšího kroku.

Kompilace a instalace jádra

Nyní máme nastavené nové jádro a můžeme se pustit do kompilace. Nové jádro vytvoříme sledem následujících příkazů: make dep, make clean a make bzImage. Pokud všechny kroky prošly, vytvoříme ještě moduly, a to následujícím způsobem: make modules, make modules_install. Nyní máme zkompilované jádro a nainstalované moduly. Naše nové jádro se nachází v adresáři /usr/src/linux/arch/i386/boot a jmenuje se bzImage. Nové jádro překopírujte do adresáře /boot a přejmenujte na nějaký inteligentní název, třeba bzImage-2.2.2-ac5 (v následujícíh částech textu budu předpokládat, že ho máte pojmenová jako tento příklad). Dále do souboru /etc/lilo.conf vložíme následující řádky:

image=/boot/bzImage-2.2.2-ac5
     label=linux-2.2.2-ac5
     root=/dev/hda2
     read-only
     vga=794

Samozřejmě že řádek root=/dev/hda2 bude závislý na tom, kde máte nainstalován root filesystem vašeho Linuxu a položku VGA si nastavíte na jednu z hodnot, které naleznete v následující tabulce:

Barvy 640x480 800x600 1024x768 1280x1024 1600x1200
256 769 771 773 775 796
32768 784 787 790 793 797
65536 785 788 791 794 798
16.8M 786 789 792 795 799

Toto rozlišení a barevná hloubka se bude používat pro textovou konzoli a Xka zároveň. Pokud uvedete do položky VGA hodnotu ASK nebude vám umožněno spouštět Xka. Nyní máme upraven konfigurační soubor lilo a pokud chceme, aby systém akceptoval změny, musíme spustit /sbin/lilo. Právě teď je váš systém připraven na restart, zkuste to a můžete se kochat malým logem tučňáka při startu systému.

Jak upgradovat na XFree86 3.3.3.1

Z archivu XFree ftp://ftp.xfree86.org/pub/XFree86/3.3.3.1/binaries/ si stáhněte binárky posledního XFree a ze souboru RELNOTES můžete vyčíst, jak provést upgrade nebo novou instalaci XFree. Až provedete upgrade, ujistěte se, že máte vytvořen link z /usr/X11R6/bin/X na /usr/X11R6/bin/XF86_FBDev a pokud ne, proveďte následující příkaz:

ln -s /usr/X11R6/bin/XF86_FBDev /usr/X11R6/bin/X

Jak nastavit zařízení /dev/fb0?

Kernel s podporou framebufferu je instalován, ale ještě zbývá zprovoznit zařízení /dev/fb0, které umožňuje X serveru zapisovat přímo do paměti grafického adaptéru. Vytvoříme znakové zařízení s hlavním (major) číslem 29 a vedlejším (minor) číslem 0. Dá se to pomocí příkazu mknod /dev/fb0 c 29 0. Pro zpětnou kompatibilitu je dobré vytvořit symbolický link /dev/fb0current, který ukazuje na /dev/fb0 (ln -s /dev/fb0 /dev/fb0current). Pokud máte v systému více různých grafických adaptérů (a monitorů), musíte instalovat další znakové zařízení. Vytvoříme ho stejným způsobem jako pro první kartu, ale s tím rozdílem, že vedlejší (minor) číslo bude 32, u třetí karty 64 atd.

Jak nastavit XF86Config?

Poslední krok je nastavit konfigurační soubor Xek, aby akceptoval nový framebuffer server. Tento soubor se povětšinou nalézá v adresáři /etc/X11 a jmenuje se XF86Config. Pro nás jsou kritické tři sekce toho souboru, a to: Monitor, Device a Screen. Proveďte nastavení podle následujících řádků:

Section "Monitor"
 Identifier "My Monitor"
EndSection

Section "Device"
 Identifier "My Video Card"
EndSection

Section "Screen"
 Driver     "FBDev"
 Device     "My Video Card"
 Monitor    "My Monitor"
 Subsection "Display"
  Depth     16
  Modes     "default"
 EndSubsection
EndSection

Jedno upozornění: v části Display (nalézá se v části Screen) se musí barevná hloubka shodovat s barevnou hloubkou, kterou máte nastavenou v konfiguračním souboru lilo (vga=). Pokud to nebude souhlasit, X server se nespustí. Nesnažte se také měnit část Modes na nějaké rozlišení, protože rozlišení v kterém se budou pouštět Xka je nastaveno na stejném místě jako barevná hloubka (tedy v /etc/lilo.conf).

Závěr

Doufám, že většině lidí pomohl tento článek vyřešit problém s jejich novou grafickou kartou a právě spokojeně používají Linux a jeho Xka. Pokud mi čas dovolí, budu aktualizovat nově vzniklou stránku o tomto problému na mém stroji http://devil.mendelu.cz/vesafb. *


- předchozí článek - následující článek - obsah - úvodní stránka -