10.3. Utilisation du pilote frame buffer du noyau

Si par malheur votre carte graphique n'est g�r�e par aucun des pilotes de XFree86 (cas relativement exceptionnel), vous serez sans doute oblig� d'utiliser le pilote vesa. Ce pilote permet d'utiliser toutes les cartes compatibles avec le standard VESA 2.0 (c'est-�-dire la plupart des cartes graphiques, mais il existe des exceptions notables).

Il existe une alternative � ce pilote, qui se base sur les fonctionnalit�s � frame buffer � du noyau de Linux. Cette fonctionnalit� permet d'utiliser Linux compl�tement en mode graphique, en fournissant un acc�s lin�aire direct � la m�moire vid�o de la carte graphique gr�ce au fichier sp�cial de p�riph�rique /dev/fb0. Il existe un pilote XFree86 pour le frame buffer du noyau, qui permet donc de d�marrer le serveur X en s'appuyant compl�tement sur le noyau. L'avantage du frame buffer du noyau est que m�me les consoles en mode texte feront leur affichage en mode graphique (cela est aussi un inconv�nient du point de vue des performances). En revanche, vous ne pourrez pas changer de r�solution une fois que le syst�me aura d�marr�.

Pour acc�der � la m�moire vid�o, le noyau se base �galement sur l'interface de programmation du standard VESA 2.0, qui est g�r�e par le BIOS de la plupart des cartes graphiques r�centes. Cela signifie �galement que vous ne disposerez pas d'acc�l�ration mat�rielle en g�n�ral, sauf pour quelques cartes graphiques courantes reconnues par le noyau.

10.3.1. Configuration du noyau et installation du pilote

La mise en �uvre du pilote pour le frame buffer se fait �videmment dans la configuration du noyau. Les options � activer sont toutes dans le menu � Console drivers �. En plus de l'option � VGA text console �, vous devez imp�rativement activer � Video mode selection support �. Cette option vous permettra de choisir le mode VESA � utiliser lors du d�marrage de l'ordinateur. Vous devrez �galement cocher l'option � Support for frame buffer devices (EXPERIMENTAL) � (cette option ne vous sera propos�e que si vous avez valid� l'option � Prompt for development and/or incomplete code/drivers � du menu � Code maturity level options �). Les options suivantes du gestionnaire du frame buffer du noyau devront �galement �tre activ�es :

Il faut ensuite v�rifier que le fichier sp�cial de p�riph�rique /dev/fb0 a �t� cr�� par le programme d'installation de votre distribution. Si ce n'est pas le cas, vous devez le cr�er � l'aide de la commande mknod. Le num�ro de p�riph�rique majeur de ce fichier est 29. Le num�ro mineur � utiliser est le num�ro du p�riph�rique. Par exemple, le fichier sp�cial de p�riph�rique /dev/fb0 porte les num�ros 29 et 0, le fichier /dev/fb1 porte les num�ros 29 et 1, etc. Ces fichiers sont tous de type caract�re, la ligne de commande pour cr�er un de ces fichiers est donc la suivante :

mknod fbn c 29 n
o� n est le num�ro du fichier sp�cial de p�riph�rique � cr�er.

Il est �galement recommand� de cr�er un lien symbolique /dev/fb vers /dev/fb0 afin d'assurer la compatibilit� avec de vieux programmes utilisant ce nom pour acc�der au fichier sp�cial de p�riph�rique du gestionnaire du frame buffer du noyau.

Une fois ces op�rations r�alis�es, vous devez compiler le noyau et l'installer, en suivant la m�thode d�crite dans la partie d�crivant la compilation du noyau. Lors du red�marrage du syst�me, vous pourrez passer l'option suivante au noyau pour pr�ciser le mode graphique VESA � utiliser :

vga=mode

o� mode est le num�ro du mode graphique d�sir�. Les num�ros valides sont indiqu�s dans le tableau donn� ci-dessous :

Tableau 10-2. Num�ros des modes graphiques VESA

CouleursR�solution
 640x480800x6001024x7681280x10241600x1200
256769771773775796
32768784787790793797
65536785788791794798
16,8M786789792795799

Si tout se passe correctement, votre syst�me devrait d�marrer dans le mode graphique indiqu� et afficher le logo de Linux (un pingouin nomm� � Tux �, pour ceux qui ne le sauraient pas encore). Lorsque vous aurez d�termin� le mode graphique qui vous convient, vous pourrez modifier le fichier de configuration de Lilo et sp�cifier le num�ro de ce mode dans la ligne � vga=... �. De cette mani�re, votre syst�me red�marrera automatiquement dans ce mode graphique.

10.3.2. Configuration du serveur X

Les manipulations pr�c�dentes n'ont pas grand int�r�t si vous ne d�sirez travailler qu'avec la console. En effet, l'affichage en mode graphique est beaucoup plus lent que l'affichage en mode texte, et l'affichage du pingouin Tux au d�marrage ne vous apportera pas grand chose. C'est pour cela que l'�tape suivante est normalement de configurer le serveur X de XFree86 pour le pilote frame buffer, afin d'utiliser l'environnement graphique XWindow et son syst�me de fen�trage.

La configuration du serveur X est �l�mentaire. Il faut avant tout s'assurer que l'on dispose bien du pilote permettant au serveur X d'utiliser l'interface /dev/fb0. Ce pilote se nomme fbdev, et utilise un autre module sp�cifique au syst�me d'exploitation nomm� fbdevhw. Il faut ensuite modifier ou cr�er le fichier XF86Config pour utiliser ce pilote. Les seules sections � modifier pour utiliser le pilote frame buffer sont la section � Device � et la section � Screen �.

La section � Device � est r�duite � sa plus simple expression, puisque tous les param�tres sont fix�s par le mode VESA choisi au d�marrage d'une part, et parce que le serveur X ne saurait pas les exploiter d'autre part. Il suffit donc simplement d'indiquer que le pilote � utiliser est le pilote fbdev, et de donner l'adresse de la carte vid�o sur le bus � l'aide du mot-clef � BusID � :

Section "Device"
    Identifier "Carte 1"
    Driver "fbdev"
    BusID  "PCI:1:5:0"
EndSection

Vous pourrez d�terminer l'adresse de votre carte graphique � l'aide de la commande lspci, ou en demandant au serveur X de scanner les bus PCI en lui passant l'option -scanpci en param�tre :

XFree86 -scanpci

La section � Screen � est elle aussi tr�s simplifi�e, puisque le seul mode graphique utilisable est le mode choisi au d�marrage de la machine. La liste des modes utilisables peut donc �tre franchement omise, ou se r�duire � la valeur sp�ciale � default � :

Section "Screen"
    Device    "Carte 1"
    Monitor   "Moniteur 1"
    DefaultDepth 16
    SubSection "Display"
        Depth 16
        Modes "default"
    EndSubSection
EndSection

Notez qu'il est imp�ratif que la profondeur de couleur de la sous-section � Display � soit la m�me que celle du mode VESA indiqu� au d�marrage. Prenez garde � ne pas utiliser une profondeur de couleur trop �lev�e, car cela d�graderait encore un peu plus les performances. Par ailleurs, comme aucun mode n'est sp�cifi� dans la section � Screen �, les lignes de mode des sections � Monitor � sont � pr�sent facultatives. Ces sections peuvent donc �tre simplifi�es �galement.

Une fois ces modifications r�alis�es, vous devrez pouvoir d�marrer XWindow simplement avec la commande startx. Vous disposerez alors de toutes les fonctionnalit�s de XWindow, avec des performances quelques peu inf�rieures � celles que vous auriez avec un serveur X adapt� � votre carte graphique. Il est conseill� de suivre l'actualit� de XFree86 afin de savoir si un tel serveur est en cours de d�veloppement et, si oui, d'en r�cup�rer une version finale d�s que possible.