Riduzione della commutazione della modalità video durante l'avvio di Linux


12

Quando avvio il mio computer desktop, che ha solo Linux su di esso, la modalità video e / o il carattere della console vengono cambiati quattro volte:

  • All'avvio di GRUB, passa dal testo 80x25 a una modalità grafica in modo da poter disegnare uno sfondo grazioso dietro il suo menu;
  • GRUB quindi ritorna al testo 80x25 dopo aver selezionato qualcosa dal menu;
  • Quando viene caricato il driver KMS per la mia scheda video, passa a una modalità di testo a risoluzione molto più elevata (non so se si tratta di una modalità di testo hardware o meno);
  • Alla fine X inizia e va in grafica e rimane così. Penso che quest'ultimo interruttore non cambi la risoluzione della modalità video, ma solo la grafica.

Vorrei sbarazzarmi di quanti più switch di modalità possibili. Idealmente, quando GRUB prende il posto del BIOS, passa direttamente alla stessa modalità di testo ad alta risoluzione selezionata dal driver KMS e il display rimarrà in quella modalità fino a quando X si avvia e visualizza la grafica. Ho l'impressione che ciò sia possibile confondendo la riga di comando del kernel e / o i parametri di caricamento del modulo console GRUB, ma non conosco i dettagli.

GRUB 1.98 + 20100706, kernel 2.6.32.15 con driver video Nouveau. Distro è Debian instabile. Per favore, non ci sono risposte che implicano la ricompilazione di qualcosa o la combinazione di combinazioni di kernel / driver all'avanguardia, non mi interessa abbastanza per questo per andare a così tanti problemi.

EDIT: Tobu suggerisce di impostare GRUB_GFXMODEla risoluzione in pixel completa del monitor e GRUB_GFXPAYLOAD_LINUX=keepdi evitare il cambio di modalità dopo che il menu scompare. Questo fa parte di ciò che voglio, ma finisce per essere peggio in generale. Non c'è nessun selettore di modalità dopo il menu, ma c'è ancora una riverniciatura dello schermo dolorosamente lenta (probabilmente dovrei rinunciare alla modalità gfx di GRUB, è troppo lento a 1920x1200). Più seriamente, ora c'è un doppio selettore di modalità quando si carica nouveaufb, insieme a messaggi di errore dall'aspetto divertentedmesg

[    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

Sono curioso di sapere cos'è la "grafica".
In pausa fino a ulteriore avviso.

1
Per una determinata risoluzione di pixel, una modalità video può essere grafica (ogni singolo pixel è indirizzabile) o testo (simula un terminale di cella di carattere dai giorni precedenti). Ciò che intendevo per "grafica" era che il quarto cambio di modalità video che ho elencato va dal testo al grafico senza cambiare la risoluzione dei pixel, credo comunque.
zwol,

Risposte:


2

Plymouth è progettato per aiutare in questo senso:

L'idea è che all'inizio del processo di avvio sia impostata la modalità nativa per il computer, plymouth utilizza quella modalità e quella modalità rimane per tutto il processo di avvio fino e dopo l'avvio di X. Idealmente, l'obiettivo è eliminare tutto lo sfarfallio durante l'avvio.

Poiché è installato un solo sistema operativo, la disabilitazione delle modifiche alla risoluzione di grub (senza grafica di sfondo) e persino il menu stesso, lasciandolo 80x25 non comporterebbe alcun cambiamento fino a quando Plymouth non subentra.


1

Verifica la tua risoluzione e l'intensità del colore:

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

Impostare GRUB_GFXMODE=<width>x<height>x<depth>in /etc/default/grubmodo che la risoluzione del menu di grub corrisponda alla risoluzione KMS.

Forse aggiungi GRUB_GFXPAYLOAD_LINUX=keepanche le impostazioni predefinite, in modo che non ci siano passaggi intermedi dopo il menu di grub e prima di impostare KMS. X11 dovrebbe mantenere ciò che KMS utilizza, il che significa che non c'è alcun interruttore X11 di cui preoccuparsi.

Applica le tue modifiche con

sudo update-grub

Grazie! Questo ha fatto parte di ciò che voglio, ma ha avuto effetti collaterali negativi che lo hanno reso peggiore dello status quo. Ho aggiunto i dettagli alla domanda.
zwol,

0

Puoi avere KMS attivo subito dopo GRUB, e di solito questo includerà un parametro alla riga di comando del kernel che lo attiva. Per intel, lo è i910.modeset=1, ma oltre dovresti controllare i documenti della tua distribuzione su questo.


KMS è attivo da quando viene caricato il driver nouveau, credo, ma ciò accade solo durante la scansione iniziale del dispositivo di udev, qualche tempo dopo che lo spazio utente è in esecuzione. Ho fatto un po 'casino con le opzioni della riga di comando video = e vga = ma non ho avuto fortuna.
zwol,

Puoi dire che si carica prima di allora con questo metodo
Daenyth,

A meno di ricostruire il kernel con il nouveaumodulo compilato (che è troppo disturbo) il meglio che sono stato in grado di fare è stick nouveau in /etc/initramfs-tools/modules... ma tutto ciò che fa è spostare il doppio selettore di modalità prima, dall'interno "Aspettando / dev da compilare "a destra dopo" Caricamento in corso, attendere ... "L'obiettivo è eliminare i selettori di modalità.
zwol,

In tal caso, è necessario utilizzare un caricatore di avvio in grado di utilizzare KMS. Penso che grub2 possa farlo, ma se non lo fa, allora sei completamente sfortunato.
Daenyth,

grub2 imposta la modalità e la lascia impostata (questo è ciò che GRUB_GFXPAYLOAD_LINUX = mantieni compiuto) ma che in qualche modo non è abbastanza buono per nouveau e / o il sottosistema fb, quindi i messaggi di errore "Conflicting fb hw use". Per inciso, esattamente lo stesso comportamento con i915 sul mio laptop.
zwol,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.