Por que o debug_putstr () não está sendo impresso durante a inicialização?

1

Estou me perguntando por que debug_putstr() em arch/x86/boot/compressed/misc.c não está sendo impresso durante a fase de inicialização x86, embora esteja configurado para fazer isso com GRUB_CMDLINE_LINUX_DEFAULT="" . Em outros sistemas está sendo impresso. Isso depende do BIOS? Alguns BIOSes não têm capacidade de imprimir nesta fase?

    
por JohnnyFromBF 24.08.2015 / 12:03

1 resposta

1

Provavelmente, depende do modo de vídeo e da página zero ( struct bootparam , documentado aqui , também inclui struct screen_info ) configuração preparada por um gerenciador de inicialização (GRUB) e BIOS. bootparam é passado para decompress_kernel() como o primeiro argumento.

A função real de debug_putstr() é __putstr() (Observe que ele está ativado somente quando CONFIG_X86_VERBOSE_BOOTUP está definido ). Ele imprime mensagens escrevendo diretamente caracteres um a um na memória VRAM de texto VGA e nas portas de E / S com base em screen_info . Por isso, funciona apenas para VGA no modo de texto.

Você pode querer olhar em grub.cfg para ver qual modo de vídeo está definido (por gfxmode ) quando passa o controle para o kernel.

    
por 24.08.2015 / 22:18