Estoy trabajando en un sistema integrado (basado en Ubuntu 12.04 LTS
) y estoy personalizando su kernel. Tengo algún problema upstart
con mountall
y plymouth
. Supongo que no hay nada irresoluble, pero el verdadero problema es que no puedo diagnosticar adecuadamente lo que está pasando porque el kernel (o tal vez plymouth
) cambia el modo de video en medio del proceso de arranque. Esto borra por completo líneas enteras de registro y evita cualquier depuración de configuraciones erróneas del kernel.
Mi Grub2
configuración parece estar bien con:
GRUB_CMDLINE_LINUX=""
GRUB_CMDLINE_LINUX_DEFAULT="acpi=force noplymouth"
GRUB_GFXMODE=1024x768x32
GRUB_GFXPAYLOAD_LINUX=keep
Aquí hay algunos resultados relevantes de lspci
:
00:00.0 Host bridge: Intel Corporation Mobile 945GSE Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GSE Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
Y aquí está la parte relevante de la configuración de mi kernel:
CONFIG_AGP=y
CONFIG_AGP_INTEL=y
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_DRM=y
CONFIG_DRM_KMS_HELPER=y
CONFIG_DRM_I915=y
CONFIG_DRM_I915_KMS=y
CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
CONFIG_FB_BOOT_VESA_SUPPORT=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_VESA=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=640
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y
Todos los demás kernels personalizados/stock arrancan bien con esa Grub2
configuración. Lo que me gustaría tener es un flujo único de mensajes en una sola consola (conservando una resolución de pantalla) desde el logotipo de inicio hasta el mensaje de inicio de sesión. ¿Alguien sabe qué tengo que modificar para lograr esto?
Respuesta1
Parece que finalmente he llegado a una framebuffer
configuración razonable. Estas son las configuraciones relevantes dentro de mi kernel .config
:
CONFIG_AGP=y
CONFIG_AGP_INTEL=y
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_BOOT_VESA_SUPPORT=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_VESA=y
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=640
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y
y esta es la diff
diferencia entre la configuración antigua y la nueva framebuffer
:
#> diff oldcfg.txt newcfg.txt
--- oldcfg.txt 2012-10-01 17:30:01.000000000 +0200
+++ newcfg.txt 2012-10-01 17:29:43.000000000 +0200
@@ -2,20 +2,14 @@
CONFIG_AGP_INTEL=y
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
-CONFIG_DRM=y
-CONFIG_DRM_KMS_HELPER=y
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_KMS=y
CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
CONFIG_FB_BOOT_VESA_SUPPORT=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_VESA=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=640
Esta configuración produce una Knoppix
salida de arranque similar a -. Todavía no entiendo quién o qué borra la pantalla justo antes de que aparezca el mensaje de inicio de sesión, pero por ahora estoy bastante satisfecho. Actualizaré esta respuesta si puedo identificar al culpable.
EDITAR: encontré a los (dos) culpables.
Después de horas de buscar en Google, encontré la solución eneste hiloyesta pregunta. Este procedimiento funciona Ubuntu 12.04.1 LTS
como también se describeaquí, pero no debería diferir demasiado para otras distribuciones.
Primero, agregaconsole=tty1
a tu GRUB_CMDLINE_LINUX
(también sugiero agregarnoplymouth
inhibir plymouth
y su inútil protector de pantalla).
#> sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX="console=tty1 noplymouth"
Esto obliga a imprimir el registro del kernel tty1
en lugar de tty7
y evita el tty
cambio antes del mensaje de inicio de sesión.
Luego simplemente ingrese y edite uno /etc/init
o más de tty1.conf
, tty2.conf
, tty3.conf
, tty4.conf
, tty5.conf
o . Los edité todos agregandotty6.conf
console.conf
--noclear
opción al getty
comando. Por ejemplo, editando tty1.conf
:
#> sudo vi /etc/init/tty1.conf
tendrás que reemplazar:
respawn
exec /sbin/getty -8 38400 tty1
con:
respawn
exec /sbin/getty -8 38400 --noclear tty1
Eso es todo, ahora su sistema debería iniciarse de una sola vez tty
sin borrarlo.
Respuesta2
Desconecte la consola virtual al principio del proceso de inicio.
eco 0 > /sys/class/vtconsole/vtcon$console_index/bind
$console_index -> 0,1,2
eco 0 > /sys/class/vtconsole/vtcon0/bind para /dev/tty0
eco 0 > /sys/class/vtconsole/vtcon1/bind para /dev/tty1