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


12

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

  • Lorsque GRUB démarre, il passe du texte 80x25 en mode graphique afin de pouvoir dessiner un joli arrière-plan derrière son menu;
  • GRUB revient ensuite au texte 80x25 après avoir choisi quelque chose dans le menu;
  • Lorsque le pilote KMS de ma carte vidéo se charge, il passe en mode texte à résolution beaucoup plus élevée (je ne sais pas s'il s'agit d'un mode texte matériel ou non);
  • Enfin, X démarre et il va graphiques et reste de cette façon. Je pense que ce dernier interrupteur ne change pas la résolution du mode vidéo, seulement le graphisme.

Je voudrais me débarrasser du plus grand nombre possible de ces commutateurs de mode. Idéalement, lorsque GRUB prend le relais du BIOS, il passe directement au même mode texte haute résolution que le pilote KMS sélectionne, et l'affichage reste dans ce mode jusqu'à ce que X démarre et affiche des graphiques. J'ai l'impression que cela est possible en nettoyant avec la ligne de commande du noyau et / ou les paramètres de chargement du module de console GRUB, mais je ne connais pas les détails.

GRUB 1.98 + 20100706, noyau 2.6.32.15 utilisant des pilotes vidéo Nouveau. Distro est Debian instable. S'il vous plaît, pas de réponses qui impliquent de recompiler quoi que ce soit ou de bricoler des combinaisons noyau / pilote à la pointe de la technologie, je m'en fous assez de cela pour vous donner autant de mal.

EDIT: Tobu suggère de régler GRUB_GFXMODEsur la pleine résolution en pixels du moniteur et GRUB_GFXPAYLOAD_LINUX=keepd'éviter le changement de mode après la disparition du menu. Cela fait 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 toujours une peinture douloureusement lente (je devrais probablement abandonner le gfxmode de GRUB, il est trop lent à 1920x1200). Plus sérieusement, il y a maintenant un commutateur de mode double lors du chargement de nouveaufb, ainsi que des messages d'erreur amusants dansdmesg

[    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

Je suis curieux de savoir ce qu'est le "graphisme".
pause jusqu'à nouvel ordre.

1
Pour toute résolution de pixel donnée, un mode vidéo peut être graphique (chaque pixel individuel est adressable) ou texte (simule un terminal de cellule de caractère des jours plus anciens). Ce que je voulais dire par "graphisme" était, le quatrième commutateur de mode vidéo que j'ai énuméré va du texte au graphique sans changer la résolution en pixels, je pense de toute façon.
zwol

Réponses:


2

Plymouth est conçu pour aider à cet égard:

L'idée est qu'au début du processus de démarrage, le mode natif de l'ordinateur est défini, plymouth utilise ce mode, et ce mode reste tout au long du processus de démarrage jusqu'à et après le démarrage de X. Idéalement, l'objectif est de se débarrasser de tout scintillement lors du démarrage.

Comme vous n'avez qu'un seul système d'exploitation installé, la désactivation des modifications de la résolution de grub (pas de graphique d'arrière-plan), et même du menu lui-même, le laisser 80x25 n'entraînerait aucun changement jusqu'à ce que Plymouth prenne le relais.


1

Sondez votre résolution et votre profondeur de couleur:

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

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

Peut-être aussi ajouter GRUB_GFXPAYLOAD_LINUX=keepaux valeurs par défaut, afin qu'il n'y ait pas d'étape intermédiaire après le menu grub et avant de configurer KMS. X11 devrait conserver ce que KMS utilise, ce qui signifie qu'il n'y a pas de commutateur X11 à craindre.

Appliquez vos modifications avec

sudo update-grub

Merci! Cela faisait partie de ce que je voulais, mais avait des effets secondaires négatifs qui l'ont rendu pire que le statu quo. J'ai ajouté les détails à la question.
zwol

0

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


KMS est actif à partir du moment où le nouveau pilote est chargé, je crois, mais cela ne se produit que lors de l'analyse initiale du périphérique d'udev, quelque temps après l'exécution de l'espace utilisateur. Je me suis un peu amusé avec les options de ligne de commande video = et vga = mais je n'ai pas eu de chance.
zwol

Vous pouvez lui dire de se charger avant alors avec cette méthode
Daenyth

À moins de reconstruire le noyau avec le nouveaumodule compilé (ce qui est trop compliqué), le mieux que j'ai pu faire est de coller nouveau /etc/initramfs-tools/modules... mais tout ce que cela fait est de déplacer le commutateur de mode double plus tôt, de l'intérieur "En attente de / dev à remplir "à droite après" Chargement, veuillez patienter ... "Le but est d' éliminer les changements de mode.
zwol

Dans ce cas, vous devez utiliser un chargeur de démarrage capable de KMS. Je pense que grub2 peut le faire, mais si ce n'est pas le cas, alors vous n'avez pas de chance.
Daenyth

grub2 définit le mode et le laisse défini (c'est ce que GRUB_GFXPAYLOAD_LINUX = continue d'accomplir) mais ce n'est pas assez bon pour Nouveau et / ou le sous-système fb, d'où les messages d'erreur "Conflicting fb hw usage". Soit dit en passant, exactement le même comportement avec i915 sur mon ordinateur portable.
zwol
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.