Vesafb mini-HOWTO

Alex Buell, alex.buell@tahallah.demon.co.uk

v0.5, 2 August 1998
Ce document d�crit l'utilisation du gestionnaire vesafb sous Linux pour un pc comprenant une carte graphique conforme aux sp�cifications VESA 2.0.

1. Remerciements

Merci aux personnes dont les noms suivent pour avoir aid� � l'am�lioration du HOWTO vesafb.

et bien s�r l'auteur du pilote:

2. Vesafb, qu�s acco ?

Vesafb est un gestionnaire de m�moire vid�o sur compatible PC d�di� aux cartes cartes graphiques conformes aux sp�cifications VESA 2.0. Son fonctionnement est li� de pr�s aux gestionnaires de m�moire vid�o g�n�riques du noyau.

Vesafb permet le recours aux modes graphiques sur PC pour l'utilisation des consoles textes en point par point. Vesafb autorise �galement l'affichage d'un logo et c'est vraisemblablement ce pour quoi vous voulez vous en servir :o)

On ne peut malheureusement pas utiliser vesafb avec des cartes VESA 1.2. En effet, ces cartes n'utilisent pas l'adressage lin�aire. Quelqu'un �crira peut-�tre un gestionnaire de p�riph�riques vesafb12 pour ce type de cartes, mais cela consommera de la m�moire par ailleurs pr�cieuse pour le noyau. :o(

Il existe cependant un moyen d�tourn� d'acc�der aux fonctionnalit�s VESA 2.0 sur une carte VESA 1.2. Peut-�tre pouvez vous charger depuis le DOS un programme de type TSR qui, utilis� conjointement avec loadlin, aidera � configurer la carte pour les modes graphiques voulus. Cela ne marchera pas toujours. Ainsi, certaines cartes de chez Cirrus Logic, telles les VLB 54xx, se retrouvent � une position en m�moire ( par exemple entre 15 et 16 Mo ) qui en interdit l'utilisation sur les syst�mes munis de plus de 32 Mo de m�moire. Ce n'est pas r�dhibitoire si l'on dispose d'un BIOS permettant de ne pas affecter de m�moire entre 15 et 16 Mo ( "Memory Hole" ) mais il m'a sembl� comprendre que Linux n'aime pas �a. Si l'exp�rience vous tente, vous pouvez essayer UNIVBE ( disponible sur l'Internet ).

3. Qu'est-ce qu'un gestionnaire de m�moire graphique ?

Ce gestionnaire fournit une abstraction du mat�riel graphique. Il reproduit le tampon m�moire de certains composants vid�o et offre aux applications l'acc�s au mat�riel via une interface bien d�finie. Ainsi, les logiciels n'ont plus � se pr�occuper des d�tails de bas-niveau [ Traduit approximativement de /usr/src/linux/Documentation/fb/framebuffer.txt ]

4. Comment fais-je fonctionner le gestionnaire vesafb ?

[NB : les informations qui suivent sont bas�es sur mon exp�rience concernant le noyau Linux 2.1.112 sur un P75+ muni d'une carte ATI VideoExpress avec 2Mo de m�moire vid�o. N'h�sitez pas � me faire part de vos exp�riences particuli�res. ]

A supposer que vous utilisiez menuconfig, vous devrez passer par les �tapes suivantes :

Dans le menu "Code maturity level options" :

[ceci peut changer dans les futurs noyaux. Ce HOWTO sera alors modifi�]

Dans le menu "Console drivers" :

Le support des composants VGA (en mode texte) - vgafb - appartenait � la liste ci-dessus mais il en a �t� supprim� en raison de son obsolescence. Il disparaitra sous peu. S�lectionnez plut�t "VGA Text Console".

V�rifiez bien que le support "Mac variable bpp packed pixel" n'est pas activ�. [ En 2.2.111, il semblerait qu'il le soit si "Advanced Low Level Drivers" l'est ].

Assurez vous que rien n'est modularis�. [J'ai des doutes quand aux possibilit�s de modularisation de l'ensemble - les pr�cisions seront les bienvenues]

Recompilez le noyau, modifiez l'/etc/lilo.conf de fa�on � ajouter le param�tre VGA=ASK, lancez lilo. Ceci vous permettra de choisir le mode graphique que vous voulez.

Red�marrez le noyau et essayez comme test d'entrer 0301 au prompt VGA. Vous devriez vous retrouver en 640x480 sur 256 couleurs avec un d�licieux petit logo de pingouin.

Maintenant que �a fonctionne, il vous reste � essayer les diff�rents modes VESA ( cf ci-dessous ), � choisir celui que vous pr�f�rez et � le figer via le param�tre "VGA=toto" du lilo.conf. Pour cela, apr�s avoir fait votre choix, cherchez sa repr�sentation d�cimale dans les tables qui suivent et utilisez ce nombre. Par exemple, pour du 1280 par 1024 en 256 couleurs, vous utiliserez "VGA=775". N'oubliez pas de relancer lilo. C'est tout. Pour davantage d'informations sur le sujet, reportez vous aux HOWTO sur LILO et Loadlin.

5. De quels modes VESA puis-je me servir ?

Cela d�pend de votre carte graphique, en particulier de la quantit� de m�moire dont elle dispose. A vous de voir quels sont les modes qui fonctionnent le mieux.

La table suivante fournit les num�ros des modes que vous pouvez passer � l'invite VGA ( en fait les indices se sont vus ajouter 0x200 afin de s'y retrouver plus facilement dans la table ).

Couleurs | 640x480 800x600 1024x768 1280x1024 1600x1200
---------+---------------------------------------------
256      |  0301    0303     0305     0307      031C
32,768   |  0310    0313     0316     0319      031D
65,536   |  0311    0314     0317     031A      031E
16.8M    |  0312    0315     0318     031B      031F

La m�me chose en d�cimal :

Couleurs | 640x480 800x600 1024x768 1280x1024 1600x1200
---------+---------------------------------------------
256      |   769     771      773      775       796
32,768   |   784     787      790      793       797
65,536   |   785     788      791      794       798
16.8M    |   786     789      792      795       799

[L'auteur appr�cierait fortement de recevoir les codes 03xx pour les modes manquants, i.e. 1152x900]

6. Existe-t-il un serveur X11 adapt� � vesafb ?

Oui. Si pour une raison ou une autre votre serveur habituel dig�re mal vesafb, vous devrez utiliser la version XF86_FBdev. T�l�chargez X332servonly.tgz depuis http://wwwxfree86.org ou un de ses mirroirs, d�compressez le, effectuez les modifications n�cessaires dans le fichier xc/config/cf/xf86site.def et d�commentez le #define relatif � XF68FBDevServer. Ne pr�tez pas attention � ce qui se rapporte � m68k. L'architecture PC est support�e. Compilez le tout, il y en a pour un moment. Ooommmm...

Il n'y a pas encore actuellement de binaire XF86_FBdev disponible tel quel mais Debian y travaille et les versions libc5/glibc devraient sortir.

Certains ont signal� que X11 n'est pas exploitable sur certaines cartes lorsque le gestionnaire vesafb est activ�. Si vous vous retrouvez dans ce cas, essayez le dernier serveur XF86_FBdev pour X11.

Ce gestionnaire, utilis� avec vesafb, peut permettre de faire fonctionner X11 avec certains chipsets � des r�solutions qui ne seraient pas autrement support�es par quelque serveur X que ce soit ( ex. MGA G-200 ).

Esperons que les probl�mes de support des cartes graphiques avec X11 seront r�solus par les versions � venir.

7. Vesafb peut-il �tre modularis� ?

En ce qui concerne le 2.1.112, vesafb ne peut �tre compil� en tant que module. D'ailleurs, apr�s modularisation, on ne verrait rien � l'�cran jusqu'� ce que l'on effectue un modprobe sur vesafb. Il est donc surement plus sage pour l'instant de le laisser dans le noyau, des fois que le boot ne se d�roule pas correctement.

8. Divers

Les infos donn�es ici sont valables pour la version 2.1.112 du noyau. Ce HOWTO sera mis � jour selon l'avancement du d�veloppement du noyau. N'h�sitez pas � transmettre � l'auteur vos commentaires et approfondissements.

A noter : le d�filement en arri�re ne fonctionne pas encore.