dmesg(display message或者driver message)是Linux下用于显示内核启动信息和运行时状态的命令。它从内核环形缓冲区中读取消息并显示在终端上。这些消息对于诊断硬件和软件问题非常有帮助。解读dmesg日志中的内核消息需要了解一些基本概念和关键字。
以下是一些常见的关键词和概念:
解读dmesg日志时,需要关注以下几点:
以下是一个简化的dmesg日志示例:
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 5.4.0-42-generic (buildd@lgw01-amd64-039) (gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2)) #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-42-generic root=UUID=xxxx-xxxx-xxxx-xxxx-xxxx rootflags=ro quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
...
[    0.200000] ACPI: Added _OSI(Module Device)
[    0.200000] ACPI: Added _OSI(Processor Device)
[    0.200000] ACPI: Added _OSI(3.0 _SCP Extensions)
...
[    0.300000] ACPI: Executed 1 blocks of module-level executable AML code
[    0.300000] ACPI: Executed 1 blocks of method AML code
[    0.400000] ACPI: Enabled 3 GPEs in block 00000080-0000008F
...
[    1.000000] NET: Registered protocol family 2
[    1.000000] tcp_listen_portaddr_hash hash table entries: 8192 (order: 4, 65536 bytes)
[    1.000000] TCP established hash table entries: 32768 (order: 5, 131072 bytes)
...
[    1.000000] MPTCP hash table entries: 8192 (order: 4, 65536 bytes)
[    1.000000] MPTCP built-in socket
[    1.000000] NET: Registered protocol family 10
...
在这个示例中,我们可以看到内核版本、命令行参数、支持的CPU类型等信息。同时,我们还可以看到一些与网络相关的消息,例如注册协议族、TCP哈希表条目等。
总之,解读dmesg日志需要对Linux内核有一定的了解,关注关键字和概念,并结合实际情况进行分析。在遇到问题时,可以尝试搜索特定的关键字或错误代码,以找到解决方案。