Page suivante Page précédente Table des matières

16. Appendix C - Composant NeoMagic NM20xx

16.1 Introduction

Puisque le jeu de composant NeoMagic série NM20xx est un des processeurs graphiques les plus utilisé dans les portables de nos jours, je vais en dire quelques mots. Pendant très longtemps ce processeur n'éait supporté que par des serveurs X commerciaux, depuis la mi 1998 RedHat a fournit les binaires d'un serveur X écrit par PrecisionInsight. Depuis la version 3.3.3 ce serveur X est aussi disponible pour XFree86.

16.2 Mode texte 100x37

Ce chapitre est une courtoisie de Cédric Adjih < [email protected] >. J'ai changé quelques partie mineures.

Un fait apparement peu connu au sujet du chipset Neomagic NM20xx est que vous pouvez l'utiliser en mode texte en 100x37 (ie 800x600). Ce mode texte est très joli (contrairement au 80x25 qui est horrible). J'ai essayé ceci sur un HP OmniBook 800 et je suppose que cela doit marcher avec d'autres portables utilisant le compoosant NeoMagic. La suite de ce que j'ai écrit est plus long que ce que je ne m'y attendais aussi je l'ai rédigé un peu comme une mini-howto :-) :

Le principal problème est que c'est un peu difficile à régler, et si vous commetez des erreurs avec SVGATextMode/restoretextmode certains résulatats sur l'écran peuvent être effrayants. Bien que je n'ai pas réussi à endomager mon affichage avec de nombreuses tentatives malheureuses, DECHARGE : CECI PEUT ENDOMAGER VOTRE MATERIEL. VOUS AVEZ ETE PREVENU. SUIVEZ LES INSTRUCTIONS SUIVANTES A VOS PROPRES RISQUES. JE NE SUIS PAS RESPONSABLE SI QUELQUE CHOSE DEVAIT ARRIVER.

Revue

Vous devez réaliser trois étapes principales :

  1. Permettre à Linux de démarrer en mode texte en 800x600. Le problème est que vous ne verrez aucun texte avant que les deux étapes suivantes soient réalisées.
  2. Lancer automatiquement restoretextmode avec les bonnes données registre.
  3. Lancer automatiquement SVGATextMode.

Plus de détails.

Tous les fichiers que j'ai modifié sont disponibles pour le moment à : http://starship.python.net/crew/adjih/data/cda-omni-trick.tar.gz

Permettre à Linux de démarrer en 800x600

Les kernels récents (2.2.x) doivent être compilés avec CONFIG_VIDEO_GFX_HACK définit. Par défaut c'est off. (regardez dans /usr/src/linux-2.2.x/arch/i386/boot/video.S)

Ceci est réalisé en pasant les paramètres ga=770 aux anciens kernels ou vga=7 aux kernels 2.2.x. Exemple avec lilo.conf:


image=/boot/bzImage-modif
label=22
append="svgatextmode=100x37x8_SVGA" #expliqué
plus loin
vga=7
read-only

Lancer restoretextmode et SVGATextMode à l'amorçage.

Vous devez arriver à lancer restoretextmode <nom de fichier textreg.dat > et SVGATextMode 100x37x8_SVGA à l'amorçage.

Un exemple de fichier textreg.dat pour restoretextmode (obtenu avec savetextmode) est dans mon archive tar dans tmp/, et un exemple de /etc/TextConfig.

Comme je suis paresseux, j'ai simplement mis SVGATextMode et restoretextmode dans le fichier /etc/rc.boot/kbd de ma Debian/GNU Linux qui est exécuté au démarrage (aussi disponible dans l'archive tar).

Maintenant le point clé.

Des choses agaçantes seront affichées si vous n'utilisez pas le bon SVGATextMode dans le bon mode texte vidéo : c'est pourquoi je transmet aussi la variable d'environement "svgatextmode=100x37x8_SVGA" (nom arbitraire) au kernel (en utilisant append=xxx dans lilo.conf) lorsque j'affecte aussi vga=7 : le script /etc/rc.boot/kbd teste cette variable et appelle restoretextmode et SVGATextMode SI ET SEULEMENT SI

Road Map

  1. Recompiler les kernel 2.2.x avec CONFIG_VIDEO_GFX_HACK
  2. Insérez le restoretextmode avec le paramètre correct dans le script d'initialisation maintenant, sans autre changements.
  3. Démarer avec le mode texte normal (80x25) sauf restoretextmode : vous devez voir l'écran passer en 100x37, mais avec seulement 80x25 utilisable. N'utilisez pas encore SVGATextMode.
  4. Il est préférable de conditionner votre code d'initialisation comme je l'ai fait, afin de conserver la possibilité d'amorcer dans les deux modes : vous pouvez tester ceci avec quelques rebootages (lancer restoretextmode ou pas).
  5. Amorcez avec le mode texte 100x37 en utilisant le paramètre vga=7 (lilo.conf), à un certain moment vous devriez voir un fond blanc, mais les caractères seront noirs sur noir? C'est normal. Vous devez rebooter à l'aveugle maintenant.
  6. Inserez le <path>/SVGATextMode 100x37x8_SVGA après restoretextmode dans les scripts d'initialisation.
  7. Rebootez avec vga=7 (lilo.conf)
  8. Tout devrait être OK maintenant. Amusez vous


Page suivante Page précédente Table des matières