在普利茅斯中隐藏内核消息

在普利茅斯中隐藏内核消息

我正在为 Kiosk 应用程序运行 Ubuntu 14.04 服务器。
问题是当 kiosk 启动时,内核会显示一些有关 USB 端口错误等内容的调试消息,这些难看的消息会显示在我们的 plymouth 启动屏幕上。
有没有办法阻止此类消息在启动期间显示?我的 grub 配置文件中已经有“quiet splash”了。

答案1

如果你只是想抑制这些消息,而不是修复它们,你可以尝试调整 sysctl kernel.printk,如中所述man 2 系统日志

/proc/sys/kernel/printk 是一个可写文件,其中包含四个整数值,这些值会影响内核 printk() 在打印或记录错误消息时的行为。这四个值是:

console_loglevel

只有日志级别低于此值的消息才会打印到控制台。此字段的默认值为 DEFAULT_CONSOLE_LOGLEVEL (7),但如果内核命令行包含单词“quiet”,则设置为 4;如果内核命令行包含单词“debug”,则设置为 10;如果出现内核故障,则设置为 15(10 和 15 很愚蠢,相当于 8)。console_loglevel 的值可以通过类型为 8 的 syslog() 调用来设置(范围为 1-8 之间的值)。

默认消息日志级别

此值将用作没有明确级别的 printk() 消息的日志级别。在 Linux 2.6.38 之前,此字段的硬编码默认值为 4 (KERN_WARNING);自 Linux 2.6.39 起,默认值由内核配置选项 CONFIG_DEFAULT_MESSAGE_LOGLEVEL 定义,默认为 4。

最低控制台日志级别

该字段中的值是console_loglevel可以设置的最小值。

默认控制台日志级别

这是 console_loglevel 的默认值。

这些数字如下kern_levels.h

#define KERN_EMERG    "<0>"  /* system is unusable               */
#define KERN_ALERT    "<1>"  /* action must be taken immediately */
#define KERN_CRIT     "<2>"  /* critical conditions              */
#define KERN_ERR      "<3>"  /* error conditions                 */
#define KERN_WARNING  "<4>"  /* warning conditions               */
#define KERN_NOTICE   "<5>"  /* normal but significant condition */
#define KERN_INFO     "<6>"  /* informational                    */
#define KERN_DEBUG    "<7>"  /* debug-level messages             */

您可能想要显示严重、警报和紧急消息,因此将所有内容设置为kernel.printk = 3 3 3 3sysctl.conf会向您显示需要某人采取某些措施才能使信息亭/机器正常运行的消息。

答案2

这些消息是内核警报,它们的优先级高于常规调试消息。这就是您看到它们的原因。我认为修复您的 USB 端口错误应该会让它们消失。

相关内容