Frame Buffer: le frame buffer lui-même

Next Previous Contents

## 5. le frame buffer lui-même

Ben oui, il faut un device...

Faites :

mknod /dev/fb0 c 29 0 # 0 est le chiffre zéro

ln -s /dev/fb0 /dev/fb0current # pas sur que ce soit nécessaire.

## 5.1 La console

Vous avez donc modifié /etc/lilo.conf. Vous allez à nouveau le modifier et ajouter l'option "vga=ask" dans votre configuration fb. Vous devez avoir un truc du genre :

    image = /boot/vmlinuz_fb
    label = fb
    root = /dev/hda3 # adaptez à votre partition
    vga = ask

Là, il y a une astuce vicieuse. Quand vous allez démarrer Linux, à la lecture de l'option, Lilo va vous demander un code. Il faut répondre d'abord par Entrée (la touche retour chariot), ne pas s'occuper de l'aide affichée qui ne s'applique pas (!) et taper le code à essayer en hexadécimal. Essayez toutes les valeurs qui vous paraissent utiles, chaque carte a ses préférences. Quand vous aurez trouvé le bon code, vous remplacerez ask par la valeur décimale de ce code.

Je ne peux pas taper de tableau en sgml, voici donc les valeurs séparées par des virgules. Le code hexa est donné en premier, suivi du code décimal entre parenthèses :

nombre de couleurs, 640x480, 800x600,1024x768, 1280x1024, 1600x1200

256 (8 bits), 301 (769), 303 (771), 305 (773), 307 (775), 31c (796)

32768 (15 bits), 310 (784), 313 (787), 316 (790), 319 (793), 31d (797)

65536 (16 bits), 311 (785), 314 (788), 317 (791), 31a (794), 31e (798)

16.8 M (24 bits), 312 (786), 315 (789), 318 (792), 31b (795), 31f (799)

Vous allez voir si ça marche d'abord au fait que vous n'aurez pas de message d'erreur, ensuite à l'apparition d'une petite image de tux le pingouin dans un coin de l'écran (une vrai image bitmap, pas un dessin ASCII).

Vous verrez aussi (peut-être) que le fonctionnement de l'écran est curieux. Prenez le temps de faire les essais et quand vous aurez trouvé la valeur qui vous plaît, mettez cette valeur en décimal (le chiffre entre parenthèses) à la place du mot "ask".

C'est tout pour le mode console. Il est indispensable de faire cette configuration pour pouvoir utiliser le mode graphique.

Si vous avez installé l'utilitaire "fbset" (très petit, donc très facile à télécharger), il vous confirmera les paramètres que vous avez mis en place. En juillet 99 les options de changement de ces paramètres ne fonctionnaient pas.

## 5.2 Mode graphique

### Serveur

Il vous faut d'abord trouver un serveur fb adapté à votre version de x. Le nom du serveur varie selon les sources, il s'appelle en général XF86_FBDev (ou XF68_FBDev), mais le nom peut varier. En fait c'est l'opération la plus difficile (trouver le fichier).

Une fois le fichier trouvé (c'est un petit exécutable), il faut lier X à ce fichier. C'est pour l'instant la seule opération qui empêche de pouvoir bouter sur l'un ou l'autre système. Si vous bidouillez startx pour en faire un startx_fb qui lance directement XF86_FBDev, vous aurez le choix de bouter en fb ou en normal. Pour l'instant je ne sais pas le faire, mais ça ne doit pas être très difficile.

DONC venez dans /usr/X11R6/bin et effacez le lien X par rm X, tout simplement. Faites ensuite :

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

Bien sur, mettez les chemins qui correspondent chez vous s'ils ne sont pas comme ci-dessus. Le serveur fb est parfois appelé XF68_FBDev (68 au lieu de 86) car il a été initialement développé pour atari ou amiga (je ne sais plus). Adaptez à ce que vous avez.

### XF86Config

La configuration de XF86Config est assez délicate. Si vous n'avez pas encore ce fichier, je vous conseille la chose suivante : lancez xf86config (l'utilitaire de configuration le plus rustique) et configurez pour une carte quelconque, mais avec le bon moniteur, souris, etc.

Ensuite, remplacez dans XF86Config la section Screen par l'exemple suivant. Vous pouvez aussi ajouter cette section dans un fichier XF86Config déjà configuré, ça ne devrait pas poser de problème. Section à ajouter :

    Section "Screen"
    Driver "FBDev" # ligne essentielle
    Device "ma carte" # le nom de votre carte vidéo, définie dans la section "Device".
    En fait peu importe quel nom vous donnez, pourvu que ce soit le même dans les deux sections
    Monitor "Mon moniteur" # le nom défini dans la section "Monitor"
    SubSection "Display"
    Modes "default" # le premier d de default doit être en minuscule
    EndSubSection
    EndSection

Sauvegardez, startx et ça doit marcher !

Next Previous Contents