
                               Vesafb mini-HOWTO

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

   v0.5, 2 August 1998
     _________________________________________________________________

   _Ce document dcrit l'utilisation du gestionnaire vesafb sous Linux
   pour un pc comprenant une carte graphique conforme aux spcifications
   VESA 2.0._
     _________________________________________________________________

1. Remerciements

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

     * Jeff Noxon jeff@planetfall.com
     * Francis Devereux f.devereux@cs.ucl.ac.uk
     * Andreas Ehliar ehliar@futurniture.se
     * Martin McCarthy marty@ehabitat.demon.co.uk
     * Simon Kenyon simon@koala.ie
     * David Ford david@kalifornia.com
     * Chris Black cblack@cmpteam4.unil.ch
     * N Becker nbecker@fred.net
     * Bob Tracy rct@gherkin.sa.wlk.com
     * Marius Hjelle marius.hjelle@roman.uib.no
     * Aaron Tiensivu tiensivu@pilot.msu.edu

   et bien sr l'auteur du pilote:

     * Gerd Knorr kraxel@cs.tu-berlin.de
     * Geert Uytterhoeven Geert.Uytterhoeven@cs.kuleuven.ac.be
     * Martin Mares mj@ucw.cz
     * S'il y en a d'autres, qu'ils lvent la main. :o)

2. Vesafb, qus acco ?

   Vesafb est un gestionnaire de mmoire vido sur compatible PC ddi
   aux cartes cartes graphiques conformes aux spcifications VESA 2.0.
   Son fonctionnement est li de prs aux gestionnaires de mmoire vido
   gnriques 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 linaire.
   Quelqu'un crira peut-tre un gestionnaire de priphriques vesafb12
   pour ce type de cartes, mais cela consommera de la mmoire par
   ailleurs prcieuse pour le noyau. :o(

   Il existe cependant un moyen dtourn d'accder aux fonctionnalits
   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
   mmoire ( par exemple entre 15 et 16 Mo ) qui en interdit
   l'utilisation sur les systmes munis de plus de 32 Mo de mmoire. Ce
   n'est pas rdhibitoire si l'on dispose d'un BIOS permettant de ne pas
   affecter de mmoire entre 15 et 16 Mo ( "Memory Hole" ) mais il m'a
   sembl comprendre que Linux n'aime pas a. Si l'exprience vous tente,
   vous pouvez essayer UNIVBE ( disponible sur l'Internet ).

3. Qu'est-ce qu'un gestionnaire de mmoire graphique ?

   Ce gestionnaire fournit une abstraction du matriel graphique. Il
   reproduit le tampon mmoire de certains composants vido et offre aux
   applications l'accs au matriel via une interface bien dfinie.
   Ainsi, les logiciels n'ont plus  se proccuper des dtails 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 bases sur mon exprience
   concernant le noyau Linux 2.1.112 sur un P75+ muni d'une carte ATI
   VideoExpress avec 2Mo de mmoire vido. N'hsitez pas  me faire part
   de vos expriences particulires. ]

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

   Dans le menu "Code maturity level options" :
     * Prompt for development and/or incomplete code/drivers

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

   Dans le menu "Console drivers" :

     * VGA Text Console
     * Video Selection Support
     * Support for frame buffer devices (experimental)
     * VESA VGA Graphic console
     * Advanced Low Level Drivers
     * Choisissez les gestionnaires Mono, 2bpp, 4bpp, 8bpp, 16bpp, 24bpp
       et 32bpp .
     * VGA character/attributes support

   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. Slectionnez plutt "VGA Text
   Console".

   Vrifiez 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
   possibilits de modularisation de l'ensemble - les prcisions seront
   les bienvenues]

   Recompilez le noyau, modifiez l'/etc/lilo.conf de faon  ajouter le
   paramtre VGA=ASK, lancez lilo. Ceci vous permettra de choisir le mode
   graphique que vous voulez.

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

   Maintenant que a fonctionne, il vous reste  essayer les diffrents
   modes VESA ( cf ci-dessous ),  choisir celui que vous prfrez et 
   le figer via le paramtre "VGA=toto" du lilo.conf. Pour cela, aprs
   avoir fait votre choix, cherchez sa reprsentation dcimale 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 dpend de votre carte graphique, en particulier de la quantit de
   mmoire dont elle dispose. A vous de voir quels sont les modes qui
   fonctionnent le mieux.

   La table suivante fournit les numros 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 mme chose en dcimal :

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 apprcierait 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 digre mal
   vesafb, vous devrez utiliser la version XF86_FBdev. Tlchargez
   X332servonly.tgz depuis http://wwwxfree86.org ou un de ses mirroirs,
   dcompressez le, effectuez les modifications ncessaires dans le
   fichier xc/config/cf/xf86site.def et dcommentez le #define relatif 
   XF68FBDevServer. Ne prtez pas attention  ce qui se rapporte  m68k.
   L'architecture PC est supporte. 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 rsolutions qui ne
   seraient pas autrement supportes par quelque serveur X que ce soit (
   ex. MGA G-200 ).

   Esperons que les problmes de support des cartes graphiques avec X11
   seront rsolus 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, aprs 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 droule pas correctement.

8. Divers

   Les infos donnes ici sont valables pour la version 2.1.112 du noyau.
   Ce HOWTO sera mis  jour selon l'avancement du dveloppement du noyau.
   N'hsitez pas  transmettre  l'auteur vos commentaires et
   approfondissements.

   A noter : le dfilement en arrire ne fonctionne pas encore.
