使用内核参数 console=ttyS0 隐藏所有输出时启动缓慢

使用内核参数 console=ttyS0 隐藏所有输出时启动缓慢

对于最终用户友好的操作系统,我使用 Buildroot 工具创建一个基本的 Linux 发行版。我使用 Syslinux/Isolinux 作为引导加载程序和 Linux 4.14.54(长期支持)内核。如果我通过 Virtualbox 启动 ISO 文件,一切都会按预期工作。但是,当我将该 ISO 刻录到 U 盘上时,引导加载程序会加载 initrd,并且 Linux 引导有时会被冻结或变慢。30秒后,两个小“礼服”图像出现在左上角(它们通常不会出现!)并且分辨率更改为显示器的原始分辨率(1600x900)。之后,引导似乎可以正常继续,并且 x 服务器启动。

内核参数如下所示:vt.global_cursor_default=0 console=ttyS0

如您所见,我指定ttyS0控制台来隐藏所有启动消息,方法是将它们重定向到不存在的串行控制台。我检查了 dmesg 并没有看到任何有问题的消息(但最后一条消息来自16启动后几秒)。当我将控制台参数更改为 时console=tty1,它工作完美,最后一条 dmesg 消息来自4启动后几秒钟,但控制台上写入了很多内容。

我在我的 Lenovo S20-30 触摸笔记本电脑上对此进行了测试。

console 参数是我唯一的选择,因为其他选项(例如设置内核日志级别)对某些消息(即printf在 shell 脚本中)没有影响。我做错了什么吗?有没有更好的选择来隐藏真的全部控制台输出?

相关内容