Réduction du changement de mode vidéo lors du démarrage Linux

Lorsque je démarre mon ordinateur de bureau, qui ne dispose que de Linux, le mode vidéo et / ou la police de console sont changés quatre fois:

  • Lorsque GRUB démarre, il passe du texte 80×25 en mode graphique afin qu'il puisse dessiner un joli fond derrière son menu;
  • GRUB remonte à 80×25 texte après avoir choisi quelque chose dans le menu;
  • Lorsque le pilote KMS pour ma carte vidéo se charge, il passe en mode texte beaucoup plus haute (je ne sais pas s'il s'agit d'un mode texte matériel ou non);
  • Enfin, X commence et ça fait des graphiques et reste ainsi. Je pense que ce dernier changement ne modifie pas la résolution du mode vidéo, mais seulement la graphique.

Je voudrais éliminer autant de ces interrupteurs de mode que possible. Idéalement, lorsque GRUB prend le relais du BIOS, il ira directement au même mode de texte haute résolution que le pilote KMS sélectionne, et l'affichage resterait dans ce mode jusqu'à ce que X démarre et affiche des graphiques. J'ai l'impression que cela est possible grâce à la ligne de commande du noyau et / ou aux paramètres de chargement du module console GRUB, mais je ne connais pas les détails.

GRUB 1.98 + 20100706, kernel 2.6.32.15 utilisant les pilotes vidéo Nouveau. Distro est Debian instable. S'il vous plaît, aucune réponse ne consiste à recompiler quoi que ce soit ou à combiner ensemble des combinaisons de noyau / conducteur de saignement, je ne m'inquiète pas de ce problème.

EDIT: Tobu suggère de configurer GRUB_GFXMODE sur la résolution de pixel complète du moniteur, et GRUB_GFXPAYLOAD_LINUX=keep pour éviter le changement de mode après le départ du menu. Cela fait une partie de ce que je veux, mais finit par être pire dans l'ensemble. Il n'y a pas de changement de mode après le menu, mais il y a encore un peinturer à l'écran douloureusement lent (je devrais probablement abandonner le gfxmode de GRUB, il est très lent à 1920×1200). Plus sérieusement, il existe maintenant un commutateur à double mode lorsque nouveaufb charge, ainsi que des messages d'erreur amusants en dmesg

 [ 5.923798] [drm] nouveau 0000:02:00.0: allocated 1920x1200 fb: 0x40250000, bo ffff8801ba5f4600 [ 5.923802] fb: conflicting fb hw usage nouveaufb vs EFI VGA - removing generic driver [ 5.923821] [drm] nouveau 0000:02:00.0: PFIFO_INTR 0x00000010 - Ch 1 ("PFIFO_INTR" message repeats 400+ times) [ 5.925609] Console: switching to colour dummy device 80x25 [ 5.925802] Console: switching to colour frame buffer device 240x75 

Plymouth est conçu pour aider à ce sujet:

L'idée est que dès le début du processus de démarrage, le mode natif pour l'ordinateur est réglé, plymouth utilise ce mode, et ce mode reste pendant tout le processus de démarrage jusqu'à et après X commence. Idéalement, le but est de se débarrasser de tout scintillement lors du démarrage.

Comme vous ne disposez que d'un système d'exploitation unique, désactiver les changements de résolution de grub (pas de graphique de fond), et même le menu lui-même, le laisser 80×25 n'entrerait aucun changement jusqu'à ce que Plymouth reprenne.

Vous pouvez avoir KMS actif juste après GRUB, et cela inclura habituellement un paramètre à la ligne de commande du noyau qui l'active. Pour Intel, c'est i910.modeset=1 , mais au-delà, vous devriez vérifier les documents de votre distribution sur ce sujet.

Probez votre résolution et votre profondeur de couleur:

 xrandr -q xdpyinfo | grep 'depth of root window' | awk '{ print $5 }' 

Définissez GRUB_GFXMODE=<width>x<height>x<depth> dans /etc/default/grub afin que la résolution du menu grub corresponde à la résolution KMS.

Peut-être ajouter GRUB_GFXPAYLOAD_LINUX=keep par défaut, de sorte qu'il n'y ait aucune étape intermédiaire après le menu grub et avant la configuration de KMS. X11 devrait conserver ce que KMS utilise, ce qui signifie qu'il n'y a pas de commutateur X11 à qui s'inquiéter.

Appliquer vos modifications avec

 sudo update-grub