Page suivantePage pr�c�denteTable des mati�res

5. Utilisation du tampon de m�moire vid�o sur architecture Intel

5.1 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 un adressage lin�aire. Par ce terme, on entend que tous les octets de la m�moire vid�o sont accessibles � un instant donn�. Historiquement, les anciennes cartes vid�o ne rendaient la m�moire graphique disponible qu'au travers d'une fen�tre de 64 ko qui correspondait � la taille de la plus grande zone de m�moire contig�e g�rable directement par le microprocesseur (d'o� les limitations des cartes CGA/EGA). Quelqu'un �crira peut-�tre un gestionnaire de p�riph�riques vesafb12 pour ce type de cartes, mais il consommera une m�moire par ailleurs pr�cieuse pour le noyau et �a restera de toute fa�on un sale bricolage. :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. Rien de r�dhibitoire si 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).

Vous pouvez aussi essayer divers patches noyaux. Il en existe notamment pour les anciennes cartes S3 telles la S3 Trio ou la Virge qui se conforment � la norme VESA 1.2. Les patches sont disponibles via : ftp://ccssu.crimea.ua/pub/linux/kernel/v2.2/unofficial/s3new.diff.gz>.

5.2 Comment faire fonctionner le gestionnaire vesafb ?

A supposer que vous utilisiez menuconfig, vous devrez passer par les �tapes suivantes : Dans le menu "Console drivers" :

Si votre processeur (de type x86) supporte le MTRR, activez le. Il permet d'acc�l�rer les copies entre la m�moire syst�me et la carte graphique. Vous pouvez naturellement le mettre en marche une fois la console op�rationnelle. IMPORTANT : pour les noyaux 2.1.x, activez le choix des fonctionnalit�s exp�rimentales via le menu ``Code Maturity Level''. Ceci est inutile pour les noyaux 2.2.x.

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 dispara�tra 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/112, il semblerait qu'il le soit si "Advanced Low Level Drivers" l'est. Ce n'est plus le cas en 2.1.113] Les fontes peuvent �galement �tre stock�es en m�moire mais rien n'y oblige et l'emploi de setfont du paquetage kbd-0.99 reste possible pour charger les fontes ad�quates (reportez vous � la section relative aux fontes).

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

Vous devrez ensuite cr�er les p�riph�riques associ�s au gestionnaire de m�moire vid�o dans le r�pertoire /dev. Pour le premier, il vous suffit de taper


# mknod /dev/fb0 c 29 0

Les suivants doivent �tre multiples de 32, soit, pour /dev/fb1 :
# mknod /dev/fb1 c 29 32

et ainsi de suite jusqu'au huiti�me si vous le souhaitez :
# mknod /dev/fb7 c 29 224

Recompilez votre 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.

Voici mon lilo.conf personnel :

# LILO configuration file
boot = /dev/hda3
delay = 30
prompt
vga = ASK # L'utilisateur devra entrer le mode
image = /vmlinuz
 root = /dev/hda3
 label = Linux
 read-only # Les systemes de fichiers autres que UMSDOS doivent etre montes
 # en lecture seule pour la phase de verification

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 ping^H^H^H^Hmanchot.

A l'invite LILO, vous DEVEZ fournir un chiffre sous la forme d'un ``0'' suivi de 3 digits sans ``x'' hexad�cimal. Si LILO fournit directement l'argument au noyau, ceci n'est pas n�cessaire.

Une fois que tout marche convenablement, vous pouvez explorer les diff�rents modes (voir plus bas) et une fois choisi celui qui vous convient, il sera temps de le fixer via le param�tre ``VGA=x'' du fichier de configuration de lilo. La table plus bas vous fournira le nombre correspondant au mode. Par exemple, pour du 1280x1024 en 256 couleurs, vous emploierez ``VGA=0x307'' et relancerez lilo. Le reste se trouve dans les HOWTO relatifs � lilo et � loadlin.

NOTE ! vesafb n'active pas automatiquement le d�filement vers l'arri�re. Vous devez le pr�ciser au noyau : video=vesa:ypan ou video=vesa:ywrap. Les deux font la m�me chose mais de fa�on un peu diff�rente. ywrap est bien plus rapide qu'ypan mais risque de ne pas fonctionner sur des cartes VESA 2.0 ne respectant pas tout � fait les sp�cifications. L'option n'est disponible qu'� partir du noyau 2.1.116. Les noyaux pr�c�dents ne permettent pas le d�filement vers l'arri�re.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:40