降低内核引导日志详细级别

Mar*_*ter 9 boot logs kernel rsyslog dmesg

当我的内核启动时,除了有用的重要信息外,它还会打印大量调试信息,例如

....
kernel: [0.00000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable
kernel: [0.00000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved
kernel: [0.00000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
...
kernel: [0.00000] MTRR variable ranges enabled:
kernel: [0.00000]   0 base 0000000000 mask 7E00000000 write-back
...
kernel: [0.00000] init_memory_mapping: [mem 0x00100000-0xcf414fff]
kernel: [0.00000]  [mem 0x00100000-0x001fffff] page 4k
kernel: [0.00000]  [mem 0x00200000-0xcf3fffff] page 2M
kernel: [0.00000]  [mem 0xcf400000-0xcf414fff] page 4k
....
kernel: [0.00000] ACPI: XSDT 0xD8FEB088 0008C (v01 DELL CBX3 01072009 AMI 10013)
kernel: [0.00000] ACPI: FACP 0xD8FFC9F8 0010C (v05 DELL CBX3 01072009 AMI 10013)
....
kernel: [0.00000] Early memory node ranges
kernel: [0.00000]   node   0: [mem 0x00001000-0x0009cfff]
kernel: [0.00000]   node   0: [mem 0x00100000-0xcf414fff]
kernel: [0.00000]   node   0: [mem 0xcf41c000-0xcfdfcfff]
....
kernel: [0.00000] ACPI: Local APIC address 0xfee00000
kernel: [0.00000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
kernel: [0.00000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
Run Code Online (Sandbox Code Playgroud)

还有更多。

我不明白这对内核开发人员/调试人员以外的任何人都有什么用处。

我发现,我可以通过使用loglevel=5作为引导参数来摆脱这些。调试日志不再打印在终端上,但它们仍然dmesgsyslog.

是否有可能在全球范围内减少启动日志详细程度,使dmesgsyslog不受此无用的信息淹没?

我正在使用自编译内核 3.18

接受的解决方案

事实证明,用以下几行来/etc/rsyslog.conf解决我的问题:

kern.debug   /dev/null
& ~
Run Code Online (Sandbox Code Playgroud)

小智 5

对于系统日志,您可以将以下行添加到/etc/syslog.conf

kern.info; kern.debug   /dev/null
Run Code Online (Sandbox Code Playgroud)

它将丢弃内核 .info 和 .debug 消息(它们与 loglevel=5 丢弃)

此外,dmesg可以与选项-n一起使用以显示具有特定日志级别的消息。