Reducción del cambio de modo de video durante el arranque de Linux

12

Cuando inicio mi computadora de escritorio, que solo tiene Linux, el modo de video y / o la fuente de la consola se cambian cuatro veces:

  • Cuando se inicia GRUB, cambia de texto de 80x25 a modo gráfico para que pueda dibujar un bonito fondo detrás de su menú;
  • GRUB luego vuelve al texto de 80x25 después de elegir algo del menú;
  • Cuando se carga el controlador KMS para mi tarjeta de video, cambia a un modo de texto de resolución mucho más alta (no sé si este es un modo de texto de hardware o no);
  • Finalmente, X comienza y se convierte en gráficos y se mantiene así. Creo que este último cambio no cambia la resolución del modo de video, solo la gráfica.

Me gustaría deshacerme de tantos interruptores de modo como sea posible. Idealmente, cuando GRUB toma el control del BIOS, iría directamente al mismo modo de texto de alta resolución que selecciona el controlador KMS, y la pantalla permanecería en ese modo hasta que X comience y muestre los gráficos. Tengo la impresión de que esto es posible al modificar la línea de comando del kernel y / o los parámetros de carga del módulo de consola GRUB, pero no conozco los detalles.

GRUB 1.98 + 20100706, kernel 2.6.32.15 utilizando controladores de video Nouveau. La distribución es Debian inestable. Por favor, no hay respuestas que impliquen recompilar algo o juntar combinaciones de núcleo / controlador de última generación, no me importa lo suficiente como para causar tantos problemas.

EDITAR: Tobu sugiere configurar GRUB_GFXMODEla resolución de píxeles completa del monitor y GRUB_GFXPAYLOAD_LINUX=keepevitar el cambio de modo una vez que el menú desaparece. Esto hace parte de lo que quiero, pero en general termina siendo peor. No hay un cambio de modo después del menú, pero todavía hay un repintado de pantalla dolorosamente lento (probablemente debería renunciar al gfxmode de GRUB, es muuuuy lento en 1920x1200). Más en serio, ahora hay un interruptor de modo doble cuando se carga nouveaufb, junto con mensajes de error divertidos endmesg

[    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
zwol
fuente
Tengo curiosidad por saber qué es la "gráfica".
Pausado hasta nuevo aviso.
1
Para cualquier resolución de píxeles dada, un modo de video podría ser gráfico (cada píxel individual es direccionable) o texto (simula un terminal de celda de caracteres de los días anteriores). Lo que quise decir con "gráfico" fue que el cuarto cambio de modo de video que enumeré va de texto a gráfico sin cambiar la resolución de píxeles, creo que de todos modos.
zwol

Respuestas:

2

Plymouth está diseñado para ayudar en este sentido:

La idea es que al principio del proceso de arranque se establezca el modo nativo para la computadora, plymouth usa ese modo, y ese modo permanece durante todo el proceso de arranque hasta y después de que X comience. Idealmente, el objetivo es deshacerse de todo el parpadeo durante el inicio.

Como solo tiene un único sistema operativo instalado, deshabilitar los cambios de resolución de grub (sin gráficos de fondo) e incluso el menú en sí mismo, dejarlo 80x25 no provocaría ningún cambio hasta que Plymouth se haga cargo.

Chris
fuente
1

Pruebe su resolución y su profundidad de color:

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

Establece GRUB_GFXMODE=<width>x<height>x<depth>en /etc/default/grubpor lo que la resolución de menú de grub coincide con la resolución de KMS.

Quizás también agregue GRUB_GFXPAYLOAD_LINUX=keepa los valores predeterminados, para que no haya un paso intermedio después del menú de grub y antes de configurar KMS. X11 debe mantener lo que usa KMS, lo que significa que no hay que preocuparse por el interruptor X11.

Aplica tus ediciones con

sudo update-grub
Tobu
fuente
¡Gracias! Esto hizo parte de lo que quería, pero tuvo efectos secundarios negativos que lo hicieron peor que el status quo. Agregué los detalles a la pregunta.
zwol
0

Puede tener KMS activo inmediatamente después de GRUB, y esto generalmente incluirá un parámetro en la línea de comando del núcleo que lo activa. Para Intel, es i910.modeset=1, pero más allá tendrías que consultar los documentos de tu distribución al respecto.

Daenyth
fuente
KMS está activo desde que se carga el controlador nouveau, creo, pero eso ocurre solo durante el escaneo inicial del dispositivo udev, algún tiempo después de que se ejecute el espacio de usuario. Jugueteé un poco con las opciones de línea de comando video = y vga = pero no tuve suerte.
zwol
Puede decirle que cargue antes con este método
Daenyth
A falta de reconstruir el kernel con el nouveaumódulo compilado (lo cual es demasiado problema), lo mejor que he podido hacer es mantener el nouveau adentro /etc/initramfs-tools/modules... pero todo lo que hace es mover el interruptor de modo doble antes, desde adentro "Esperando / dev se rellenará "a la derecha después de" Cargando, por favor espere ... "El objetivo es eliminar los interruptores de modo.
zwol
En ese caso, debe usar un cargador de arranque que sea capaz de KMS. Creo que grub2 puede hacer esto, pero si no lo hace, entonces no tienes suerte.
Daenyth
grub2 establece el modo y lo deja configurado (eso es lo que GRUB_GFXPAYLOAD_LINUX = keep logra) pero de alguna manera no es lo suficientemente bueno para nouveau y / o el subsistema fb, de ahí los mensajes de error "Conflicting fb hw use". Por cierto, exactamente el mismo comportamiento con i915 en mi computadora portátil.
zwol