我问自己为什么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
)当它将控制权移交给内核时。