当我的内核启动时,除了有用的重要信息外,它还会打印许多调试信息,例如
....
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)
还有更多。
除了内核开发人员/调试器之外,我看不到这对其他人有什么用。
我发现,可以通过将它们loglevel=5
用作引导参数来摆脱它们。调试日志不再打印在终端上,但仍在dmesg
和中syslog
。
是否有可能在全球范围内减少启动日志详细程度,使dmesg
和syslog
不受此无用的信息淹没?
我正在使用自编译内核 3.18
接受的解决方案
事实证明,下面几行代码可以/etc/rsyslog.conf
为我解决问题:
kern.debug /dev/null
& ~
syslog
和dmesg
充斥着无用的调试日志,从而使真正的警告和错误容易被人忽视。此外,dmesg
并syslog
应通过人来阅读(即管理员)。那是他们的全部目的。