为什么在启动期间不打印 debug_putstr() ?

为什么在启动期间不打印 debug_putstr() ?

我问自己为什么debug_putstr()arch/x86/boot/compressed/misc.c在 x86 启动阶段不会打印,尽管它被配置为使用GRUB_CMDLINE_LINUX_DEFAULT="".在其他系统上它正在被打印。这取决于BIOS吗?是否有些 BIOS 在此阶段不具备打印功能?

答案1

可能这取决于视频模式和零页(struct bootparam,记录在这里,它还包括struct screen_info)由引导加载程序(GRUB)和 BIOS 准备的设置。 bootparam被传递给decompress_kernel()作为第一个参数。

的实际功能debug_putstr()__putstr() (注意,它已启用仅当CONFIG_X86_VERBOSE_BOOTUP设置时)。它通过直接在 VGA 文本 VRAM 存储器和基于screen_info.因此它仅适用于文本模式下的 VGA。

您可能想查看grub.cfg设置了哪种视频模式(通过gfxmode)当它将控制权移交给内核时。

相关内容