Linux命令dmesg介绍和使用

dmesg命令介绍

dmesg命令是Linux系统下一个非常常用的命令。其用于输出Linux系统启动时的内核环境信息,主要用于问题诊断和系统调试。

使用dmesg命令可以查看各个系统组件启动时所输出的信息,例如CPU、内存、设备驱动、网络、文件系统等等。通过dmesg命令可以获取(system log)系统日志记录的所有信息,但只有内核数据,可以帮助诊断系统故障、调试应用程序、排除内核相关的问题和监控系统运行状态等等。

dmesg 命令是一个非常强大且广泛使用的命令,在 Linux 命令行中经常会用到。

dmesg常用命令

当我们在终端中执行dmesg命令时,将会输出大量的系统启动时的内核信息。下面是一些示例:

  1. 显示内核启动信息

执行dmesg命令,可以看到系统启动时内核输出的大量信息,包括内存、CPU、硬件设备等信息。

复制代码
dmesg

输出示例:

复制代码
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.15.0-55-generic (buildd@lgw01-amd64-033) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #60-Ubuntu SMP Tue Jul 2 18:22:20 UTC 2019 (Ubuntu 4.15.0-55.60-generic 4.15.18)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.15.0-55-generic root=UUID=ec7f0036-5f4d-4fd6-88cb-ecc9f513ff65 ro quiet splash vt.handoff=1
......
  1. 查看设备驱动信息

执行dmesg命令,可以查看设备驱动的信息,例如USB设备的插拔信息。

复制代码
dmesg | grep usb

输出示例:

复制代码
[  145.913981] usb 1-1.3.4: new high-speed USB device number 6 using ehci-pci
[  146.001009] usb 1-1.3.4: New USB device found, idVendor=0781, idProduct=5591
[  146.001011] usb 1-1.3.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  146.001012] usb 1-1.3.4: Product: Cruzer Fit
[  146.001014] usb 1-1.3.4: Manufacturer: SanDisk
[  146.001014] usb 1-1.3.4: SerialNumber: 4C530001111122217540
  1. 查看内存信息

执行dmesg命令,可以查看系统内存的信息。

复制代码
dmesg | grep Memory

输出示例:

复制代码
[    0.000000] Memory: 4039492K/4159480K available (12300K kernel code, 2475K rwdata, 4220K rodata, 2404K init, 2412K bss, 119988K reserved, 0K cma-reserved)
[    0.000000] Memory: 3113948K/3196284K available (11891K kernel code, 2475K rwdata, 4028K rodata, 2380K init, 2412K bss, 82336K reserved, 0K cma-reserved)
  1. 查看系统时间戳信息

执行dmesg命令,可以查看系统时间戳的信息,包括每个消息的时间戳和系统启动的时间戳。

复制代码
dmesg | grep timestamp

输出示例:

复制代码
[    0.000000] tsc: Detected 2992.820 MHz processor
[    0.361835] rtc_cmos 00:01: RTC can wake from S4
[    0.363143] rtc_cmos 00:01: rtc core: registered rtc_cmos as rtc0
[    1.059927] ata2.00: ATA-9: ST500LT012-9WS142, SDM1, max UDMA/133
[    1.059932] ata2.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[ 5725.515031] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro

这些示例只是dmesg命令输出信息的一小部分,更多的信息可以通过在终端中执行dmesg命令自行查看。

dmesg输出结果解释

bash 复制代码
[9900486.863068] xocl 0000:b3:00.1:  ffff9a63debb7098 xocl_init_mem:   Size:0x0
[9900486.863070] xocl 0000:b3:00.1:  ffff9a63debb7098 xocl_init_mem:   Type:9
[9900486.863071] xocl 0000:b3:00.1:  ffff9a63debb7098 xocl_init_mem:   Used:1
[9900486.863076] xocl 0000:b3:00.1:  ffff9a63debb7098 xocl_init_mem: Allocating Memory Bank: HOST[0]
[9900486.863077] xocl 0000:b3:00.1:  ffff9a63debb7098 xocl_init_mem:   base_addr:0x2000000000, total size:0x400000000
[9900486.863079] xocl 0000:b3:00.1:  ffff9a63debb7098 xocl_init_mem: Found a new memory region
[9900486.863138] xocl 0000:b3:00.1:  ffff9a63debb7098 xocl_init_mem: drm_mm_init called for the available memory range
[9900486.863141] xocl 0000:b3:00.1:  ffff9a63debb7098 xocl_init_mem: ret 0
[9900486.863165] xocl 0000:b3:00.1:  ffff9a63debb7098 xrt_cu_intr_thread: CU[0] start
[9900486.863173] xocl 0000:b3:00.1:  ffff9a63debb7098 xrt_cu_intr_thread: CU[1] start
[9900486.863180] xocl 0000:b3:00.1:  ffff9a63debb7098 xrt_cu_intr_thread: CU[2] start
[9900486.863187] xocl 0000:b3:00.1:  ffff9a63debb7098 xrt_cu_intr_thread: CU[3] start
[9900486.863195] xocl 0000:b3:00.1:  ffff9a63debb7098 xrt_cu_intr_thread: CU[4] start
[9900486.863203] xocl 0000:b3:00.1:  ffff9a63debb7098 xrt_cu_intr_thread: CU[5] start
[9900486.863210] xocl 0000:b3:00.1:  ffff9a63debb7098 xrt_cu_intr_thread: CU[6] start
[9900486.863218] xocl 0000:b3:00.1:  ffff9a63debb7098 xrt_cu_intr_thread: CU[7] start
[9900486.863226] xocl 0000:b3:00.1:  ffff9a63debb7098 xrt_cu_intr_thread: CU[8] start
[9900486.863234] xocl 0000:b3:00.1:  ffff9a63debb7098 xrt_cu_intr_thread: CU[9] start
[9900486.863242] xocl 0000:b3:00.1:  ffff9a63debb7098 xocl_read_axlf_helper: Loaded xclbin 92f649c5-596b-d717-8bda-3ebafad74703
[9900486.863242] xocl 0000:b3:00.1:  ffff9a63debb7098 xrt_cu_intr_thread: CU[10] start
[9900487.024150] xocl 0000:b3:00.1: icap.u.22020096 ffff9a63d0ad3c10 icap_lock_bitstream: bitstream 92f649c5-596b-d717-8bda-3ebafad74703 locked, ref=1
[9900487.024156] xocl 0000:b3:00.1:  ffff9a63debb7098 kds_add_context: Client pid(56773) add context Domain(0) CU(0x6) shared(true)
[9900487.024199] xocl 0000:b3:00.1:  ffff9a63debb7098 kds_add_context: Client pid(56773) add context Domain(0) CU(0x9) shared(true)
[9900487.024218] xocl 0000:b3:00.1:  ffff9a63debb7098 kds_add_context: Client pid(56773) add context Domain(0) CU(0x2) shared(true)

这段dmesg输出结果是来自xocl模块的信息。xocl是一种为FPGA提供OpenCL接口的内核模块。下面逐行解释每个输出:

  1. [9900486.863068] xocl 0000:b3:00.1: ffff9a63debb7098 xocl_init_mem: Size:0x0: 显示xocl模块初始化内存时的信息,Size为0x0,表示内存大小为0。
  2. [9900486.863070] xocl 0000:b3:00.1: ffff9a63debb7098 xocl_init_mem: Type:9: 显示内存类型为9,常用内存类型有0(DDR)、1(HBM)等。
  3. [9900486.863071] xocl 0000:b3:00.1: ffff9a63debb7098 xocl_init_mem: Used:1: 显示已使用的内存为1,表示某些内存已经被分配。
  4. [9900486.863076] xocl 0000:b3:00.1: ffff9a63debb7098 xocl_init_mem: Allocating Memory Bank: HOST[0]: 显示正在分配Memory Bank,该内存为HOST0
  5. [9900486.863077] xocl 0000:b3:00.1: ffff9a63debb7098 xocl_init_mem: base_addr:0x2000000000, total size:0x400000000: 显示分配的内存地址和总大小。
  6. [9900486.863079] xocl 0000:b3:00.1: ffff9a63debb7098 xocl_init_mem: Found a new memory region: 显示发现了新的内存区域。
  7. [9900486.863138] xocl 0000:b3:00.1: ffff9a63debb7098 xocl_init_mem: drm_mm_init called for the available memory range: 显示调用drm_mm_init来初始化可用内存范围。
  8. [9900486.863141] xocl 0000:b3:00.1: ffff9a63debb7098 xocl_init_mem: ret 0: 显示在初始化内存时返回值为0,表示初始化成功。
  9. [9900486.863165] xocl 0000:b3:00.1: ffff9a63debb7098 xrt_cu_intr_thread: CU[0] start: 显示xrt_cu_intr_thread线程开始执行。
  10. [9900486.863173] xocl 0000:b3:00.1: ffff9a63debb7098 xrt_cu_intr_thread: CU[1] start: 类似第9行,显示不同的CU的线程开始执行。
  11. [9900486.863242] xocl 0000:b3:00.1: ffff9a63debb7098 xocl_read_axlf_helper: Loaded xclbin 92f649c5-596b-d717-8bda-3ebafad74703: 显示xclbin文件被加载到FPGA上。
  12. [9900487.024150] xocl 0000:b3:00.1: icap.u.22020096 ffff9a63d0ad3c10 icap_lock_bitstream: bitstream 92f649c5-596b-d717-8bda-3ebafad74703 locked, ref=1: 显示已经锁定了xclbin文件,ref=1表示被一个客户端使用。
  13. [9900487.024156] xocl 0000:b3:00.1: ffff9a63debb7098 kds_add_context: Client pid(56773) add context Domain(0) CU(0x6) shared(true): 显示xocl为pid为56773的客户端添加了一个上下文,该上下文适用于Domain 0,CU为0x6,shared为true。
  14. 类似于第13行,显示为不同的客户端添加了不同的上下文。

总的来说,这段输出是xocl模块初始化过程中的信息,包括FPGA内存分配,xclbin文件加载等。通过dmesg命令查看这些信息,可以帮助我们分析和诊断FPGA相关的问题。

相关推荐
AlfredZhao40 分钟前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334667 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪8 小时前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩1 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈1 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
凡人叶枫1 天前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
2601_961875241 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant