Команда dmesg

Опубликовано admin - вс, 04/30/2023 - 13:49

Команда dmesg — это утилита Linux, которая отображает связанные с ядром сообщения, извлечённые из кольцевого буфера ядра.

Примеры использования команды Linux dmesg

Кольцевой буфер хранит информацию об оборудовании, инициализации драйверов устройств и сообщения от модулей ядра, которые происходят во время запуска системы.

Содержание

Синтаксис

$ dmesg [параметры]

Основные параметры

-C, --clear
Очистить кольцевой буфер ядра
-c, --read-clear
Читать и удалять все сообщения
-D, --console-off
Отключить вывод сообщений на консоль
-E, --console-on
Включить печать сообщений на консоль
-F, --file <file>
Использовать файл вместо буфера журнала ядра
-f, --facility <list>
Ограничить вывод на определённые объекты
-H, --human
Человекочитаемый вывод
-J, --json
Использовать выходной формат JSON
-k, --kernel
Отображать сообщения ядра
-L, --color[=<when>]
Раскрашивать сообщения (авто, всегда или никогда). Цветной шрифт по умолчанию поддерживается
-l, --level <list>
Ограничить вывод до определенных уровней
-n, --console-level <level>
Установить уровень сообщений, выводимых на консоль
-P, --nopager
Не передавать вывод на пейджер
-p, --force-prefix
Принудительно выводить временную метку в каждой строке многострочных сообщений
-r, --raw
Распечатать буфер необработанных сообщений
    --noescape
Не экранировать непечатаемый символ
-S, --syslog
Заставить использовать syslog(2) вместо /dev/kmsg
-s, --buffer-size <size>
Размер буфера для запроса кольцевого буфера ядра
-u, --userspace
Отображать сообщения пользовательского пространства
-w, --follow
Ожидать новых сообщений
-W, --follow-new
Ожидать и печатать только новые сообщения
-x, --decode
Средство декодирования и уровень для читаемой строки
-d, --show-delta
Показать разницу во времени между распечатанными сообщениями
-e, --reltime
Показать местное время и дельту времени в удобочитаемом формате
-T, --ctime
Показать удобочитаемую временную метку (может быть неточной!)
-t, --notime
Не показывать метку времени с сообщениями
    --time-format <format>
Показать временную метку, используя заданный формат: [delta|reltime|ctime|notime|iso] 
    --since <time>
Отображать строки с указанного времени
    --until <time>
Отображать строки до указанного времени
-h, --help
Показать справку

Использование команды dmesg в Linux

Вывод всех сообщений ядра

Вызов dmesg без каких-либо опций выводит весь буфер ядра, без остановок и без возможности навигации по выходным данным:

oleg@mobile:~:$ sudo dmesg
[    0.000000] Linux version 6.2.12-arch1-1 (linux@archlinux) (gcc (GCC) 12.2.1 20230201, GNU ld (GNU Binutils) 2.40) #1 SMP PREEMPT_DYNAMIC Thu, 20 Apr 2023 16:11:55 +0000
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=6d031569-0134-4713-9cb8-4f55968dc362 rw loglevel=3 quiet
[    0.000000] Disabled fast string operations
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Enabled xstate features 0x3, context size is 576 bytes, using 'standard' format.
[    0.000000] signal: max sigframe size: 1520
[    0.000000] reserving inaccessible SNB gfx pages
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d7ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009d800-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007a3eefff] usable
[    0.000000] BIOS-e820: [mem 0x000000007a3ef000-0x000000007a6eefff] reserved
[    0.000000] BIOS-e820: [mem 0x000000007a6ef000-0x000000007a79efff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000007a79f000-0x000000007a7fefff] ACPI data
...
[12582.994724] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[12995.885219] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[12995.984099] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[13408.872518] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[13408.968989] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[13821.865889] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[13821.962125] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[14234.860330] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[14234.958784] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
oleg@mobile:~:$ 

В приведённом примере показан лишь частичный вывод команды dmesg. Для упрощения навигации и лучшей читабельности можно передать вывод dmesg в пейджер терминала (less, more) или использовать grep.

Пример:

oleg@mobile:~:$ sudo dmesg | less
[    0.000000] Linux version 6.2.12-arch1-1 (linux@archlinux) (gcc (GCC) 12.2.1 20230201, GNU ld (GNU Binutils) 2.40) #1 SMP PREEMPT_DYNAMIC Thu, 20 Apr 2023 16:11:55 +0000
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=6d031569-0134-4713-9cb8-4f55968dc362 rw loglevel=3 quiet
[    0.000000] Disabled fast string operations
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Enabled xstate features 0x3, context size is 576 bytes, using 'standard' format.
[    0.000000] signal: max sigframe size: 1520
[    0.000000] reserving inaccessible SNB gfx pages
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d7ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009d800-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007a3eefff] usable
[    0.000000] BIOS-e820: [mem 0x000000007a3ef000-0x000000007a6eefff] reserved
[    0.000000] BIOS-e820: [mem 0x000000007a6ef000-0x000000007a79efff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000007a79f000-0x000000007a7fefff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000007a7ff000-0x000000007a7fffff] usable
[    0.000000] BIOS-e820: [mem 0x000000007a800000-0x000000007f1fffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000f8000000-0x00000000fbffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed08000-0x00000000fed08fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed10000-0x00000000fed19fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffd80000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x00000001005fffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.6 present.
[    0.000000] DMI: SAMSUNG ELECTRONICS CO., LTD. 300E4A/300E5A/300E7A/3430EA/3530EA/300E4A/300E5A/300E7A/3430EA/3530EA, BIOS 09QA 11/02/2012
[    0.000000] tsc: Fast TSC calibration using PIT
:

Конвейер dmesg в less позволяет использовать функцию поиска и выделения элементов. Для активирования поиска, следует нажать /. Переход к следующему экрану производится с помощью клавиши Space, а переход к предыдущему — b. Для выхода надо нажать клавишу q.

Вывод цветных сообщений

По умолчанию dmesg имеет цветной вывод. При отсутствии окраски вывода использованием параметра -L можно его окрасить:

oleg@mobile:~:$ sudo dmesg -L

Для отключения цветного вывода утилита используется с параметром --color=never:

oleg@mobile:~:$ sudo dmesg --color=never

Вывод поступающих сообщений

Отследить кольцевой буфер ядра в режиме реального времени можно с помощью параметра --follow:

oleg@mobile:~:$ sudo dmesg --follow

Команда dmesg отображает любые новые сообщения в нижней части окна терминала. Для остановки процесса нажимаются клавиши Ctrl + C.

Поиск определённого термина

При поиске конкретных проблем или аппаратных сообщений вывод команды dmesg передаётся в grep для поиска определённой строки или шаблона.

Пример поиска сообщений о памяти:

oleg@mobile:~:$ sudo dmesg | grep -i memory
[    0.016219] ACPI: Reserving FACP table memory at [mem 0x7a7f0000-0x7a7f00f3]
[    0.016221] ACPI: Reserving DSDT table memory at [mem 0x7a7f3000-0x7a7fafe2]
[    0.016223] ACPI: Reserving FACS table memory at [mem 0x7a73d000-0x7a73d03f]
[    0.016224] ACPI: Reserving FACS table memory at [mem 0x7a73d000-0x7a73d03f]
[    0.016225] ACPI: Reserving SLIC table memory at [mem 0x7a7fd000-0x7a7fd175]
[    0.016227] ACPI: Reserving SSDT table memory at [mem 0x7a7fb000-0x7a7fc067]
[    0.016228] ACPI: Reserving ASF! table memory at [mem 0x7a7f2000-0x7a7f20a4]
[    0.016230] ACPI: Reserving HPET table memory at [mem 0x7a7ef000-0x7a7ef037]
[    0.016231] ACPI: Reserving APIC table memory at [mem 0x7a7ee000-0x7a7ee097]
[    0.016233] ACPI: Reserving MCFG table memory at [mem 0x7a7ed000-0x7a7ed03b]
[    0.016234] ACPI: Reserving SSDT table memory at [mem 0x7a7ec000-0x7a7ec90b]
[    0.016236] ACPI: Reserving SSDT table memory at [mem 0x7a7eb000-0x7a7eb995]
[    0.016237] ACPI: Reserving UEFI table memory at [mem 0x7a7ea000-0x7a7ea03d]
[    0.016239] ACPI: Reserving UEFI table memory at [mem 0x7a7e9000-0x7a7e9041]
[    0.016240] ACPI: Reserving UEFI table memory at [mem 0x7a7e8000-0x7a7e8219]
[    0.016351] Early memory node ranges
[    0.024454] Reserving Intel graphics memory at [mem 0x7b200000-0x7f1fffff]
...
[    0.075863] Memory: 1840720K/2008624K available (16384K kernel code, 2097K rwdata, 12576K rodata, 3276K init, 4100K bss, 167644K reserved, 0K cma-reserved)
[    0.133953] Freeing SMP alternatives memory: 40K
[    0.137020] x86/mm: Memory block size: 128MB
[    0.257029] Non-volatile memory driver v1.3
[    0.346435] Freeing initrd memory: 13488K
[    1.612166] Freeing unused decrypted memory: 2036K
[    1.614069] Freeing unused kernel image (initmem) memory: 3276K
[    1.615747] Freeing unused kernel image (rodata/data gap) memory: 1760K
[   16.892877] i2c i2c-7: 1/4 memory slots populated (from DMI)
oleg@mobile:~:$ 

Выводятся все строки из буфера, содержащие строку памяти.

Аналогично можно получать буферные сообщения о USB, портах, сети или жёстких дисках. Для этого выполняются следующие команды.

USB:

oleg@mobile:~:$ sudo dmesg | grep -i usb

Serial Ports:

oleg@mobile:~:$ sudo dmesg | grep -i tty

Network:

oleg@mobile:~:$ sudo dmesg | grep -i eth

Hard Drives:

oleg@mobile:~:$ sudo dmesg | grep -i sda

Можно осуществлять поиск и нескольких условий, добавляя параметр -E:

oleg@mobile:~:$ sudo dmesg | grep -E "memory|tty"

Чтение и очистка журналов

Запуск утилиты dmesg с параметром -c позволяет очистить журнал dmesg после его печати. Очистка буфера гарантирует получение только действительных сообщений от последней перезагрузки:

oleg@mobile:~:$ sudo dmesg -c

Включение временных меток в журналах

Для включения временных меток в выводе dmesg утилита запускается с параметром -H, создающим удобочитаемый вывод:

oleg@mobile:~:$ sudo dmesg -H

Команда dmesg добавляет метку времени с указанием даты и времени в минутах. Для выхода из пейджера нажимается клавиша q.

Включение удобочитаемых временных меток

Для удаления наносекундной точности и облегчения отслеживания меток времени команда dmesg используется с параметром -T:

oleg@mobile:~:$ sudo dmesg -T

Для выбора формата используется параметр --time-format со следующими доступными форматами метки времени:

  • ctime
  • reltime
  • delta
  • notime
  • iso

Например, при использовании формата ctime команда dmesg запускается так:

oleg@mobile:~:$ sudo dmesg --time-format=ctime
[Вс апр 30 06:20:33 2023] Linux version 6.2.12-arch1-1 (linux@archlinux) (gcc (GCC) 12.2.1 20230201, GNU ld (GNU Binutils) 2.40) #1 SMP PREEMPT_DYNAMIC Thu, 20 Apr 2023 16:11:55 +0000
[Вс апр 30 06:20:33 2023] Command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=6d031569-0134-4713-9cb8-4f55968dc362 rw loglevel=3 quiet
[Вс апр 30 06:20:33 2023] Disabled fast string operations
[Вс апр 30 06:20:33 2023] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[Вс апр 30 06:20:33 2023] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[Вс апр 30 06:20:33 2023] x86/fpu: Enabled xstate features 0x3, context size is 576 bytes, using 'standard' format.
[Вс апр 30 06:20:33 2023] signal: max sigframe size: 1520
[Вс апр 30 06:20:33 2023] reserving inaccessible SNB gfx pages
[Вс апр 30 06:20:33 2023] BIOS-provided physical RAM map:
[Вс апр 30 06:20:33 2023] BIOS-e820: [mem 0x0000000000000000-0x000000000009d7ff] usable
[Вс апр 30 06:20:33 2023] BIOS-e820: [mem 0x000000000009d800-0x000000000009ffff] reserved
[Вс апр 30 06:20:33 2023] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[Вс апр 30 06:20:33 2023] BIOS-e820: [mem 0x0000000000100000-0x000000007a3eefff] usable
[Вс апр 30 06:20:33 2023] BIOS-e820: [mem 0x000000007a3ef000-0x000000007a6eefff] reserved
[Вс апр 30 06:20:33 2023] BIOS-e820: [mem 0x000000007a6ef000-0x000000007a79efff] ACPI NVS
[Вс апр 30 06:20:33 2023] BIOS-e820: [mem 0x000000007a79f000-0x000000007a7fefff] ACPI data
[Вс апр 30 06:20:33 2023] BIOS-e820: [mem 0x000000007a7ff000-0x000000007a7fffff] usable
[Вс апр 30 06:20:33 2023] BIOS-e820: [mem 0x000000007a800000-0x000000007f1fffff] reserved
...
[Вс апр 30 11:13:36 2023] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[Вс апр 30 11:19:44 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 11:19:44 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 11:26:37 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 11:26:37 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 11:33:30 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 11:33:30 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 11:40:23 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 11:40:23 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 11:47:16 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 11:47:16 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 11:54:09 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 11:54:09 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 12:01:02 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
[Вс апр 30 12:01:02 2023] iwlwifi 0000:01:00.0: Radio type=0x2-0x2-0x1
oleg@mobile:~:$ 

Формат метки времени теперь YYYY-MM-DD<T>HH:MM:SS, <microseconds>←+><timezone offset from UTC>.

Ограничение вывода dmesg для определённого объекта

Можно отфильтровать вывод dmesg по определённой категории, используя параметр -f.

Сообщения будут сгруппированы в кольцевом буфере ядра по следующим категориям:

kern
Сообщения ядра
user
Сообщения на уровне пользователя
mail
Сообщения почтовой системы
daemon
Сообщения о системных демонах
auth
Сообщения авторизации
syslog
Внутренние сообщения syslogd
lpr
Сообщения подсистемы построчного принтера
news
Сообщения подсистемы сетевых новостей

Например, следующая команда ограничивает вывод сообщениями, относящимися к средству системного журнала:

oleg@mobile:~:$ sudo dmesg -f syslog
[    9.989387] systemd-journald[172]: Collecting audit messages is disabled.
[   10.468794] systemd-journald[172]: Received client request to flush runtime journal.
[   11.283951] systemd-journald[172]: /var/log/journal/526d2df7f831402999d7d78f92740820/system.journal: Monotonic clock jumped backwards relative to last journal entry, rotating.
[   11.283979] systemd-journald[172]: Rotating system journal.
[   51.945074] systemd-journald[172]: Time jumped backwards, rotating.
oleg@mobile:~:$ 

Чтобы перечислить сообщения от более чем одного объекта, указывается список объектов, разделённых запятыми:

oleg@mobile:~:$ sudo dmesg -f syslog,daemon
[    6.647848] systemd[1]: systemd 253.3-3-arch running in system mode (+PAM +AUDIT -SELINUX -APPARMOR -IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY +P11KIT -QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK +XKBCOMMON +UTMP -SYSVINIT default-hierarchy=unified)
[    6.647872] systemd[1]: Detected architecture x86-64.
[    6.682183] systemd[1]: Hostname set to <mobile>.
[    7.423036] systemd[1]: bpf-lsm: LSM BPF program attached
[    9.681271] systemd[1]: Queued start job for default target Graphical Interface.
[    9.712515] systemd[1]: Created slice Slice /system/getty.
[    9.713919] systemd[1]: Created slice Slice /system/modprobe.
[    9.715006] systemd[1]: Created slice Slice /system/systemd-fsck.
[    9.715932] systemd[1]: Created slice User and Session Slice.
[    9.716204] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    9.716418] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    9.717014] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    9.717194] systemd[1]: Reached target Local Encrypted Volumes.
[    9.717270] systemd[1]: Reached target Local Integrity Protected Volumes.
[    9.717354] systemd[1]: Reached target Path Units.
[    9.717410] systemd[1]: Reached target Remote File Systems.
[    9.717470] systemd[1]: Reached target Slice Units.
[    9.717561] systemd[1]: Reached target Local Verity Protected Volumes.
[    9.717817] systemd[1]: Listening on Device-mapper event daemon FIFOs.
[    9.734231] systemd[1]: Listening on LVM2 poll daemon socket.
[    9.752965] systemd[1]: Listening on Process Core Dump Socket.
...
[   10.062498] systemd[1]: Finished Remount Root and Kernel File Systems.
[   10.063369] systemd[1]: Mounted Huge Pages File System.
[   10.063510] systemd[1]: Mounted Kernel Debug File System.
[   10.063641] systemd[1]: Mounted FUSE Control File System.
[   10.063888] systemd[1]: First Boot Wizard was skipped because of an unmet condition check (ConditionFirstBoot=yes).
[   10.091208] systemd[1]: Rebuild Hardware Database was skipped because of an unmet condition check (ConditionNeedsUpdate=/etc).
[   10.115947] systemd[1]: Starting Load/Save OS Random Seed...
[   10.116081] systemd[1]: Create System Users was skipped because no trigger condition checks were met.
[   10.117530] systemd[1]: Starting Create Static Device Nodes in /dev...
[   10.119317] systemd[1]: Mounted Kernel Trace File System.
[   10.119494] systemd[1]: Mounted Kernel Configuration File System.
[   10.306013] systemd[1]: Finished Coldplug All udev Devices.
[   10.323164] systemd[1]: Started Journal Service.
[   10.468794] systemd-journald[172]: Received client request to flush runtime journal.
[   11.283951] systemd-journald[172]: /var/log/journal/526d2df7f831402999d7d78f92740820/system.journal: Monotonic clock jumped backwards relative to last journal entry, rotating.
[   11.283979] systemd-journald[172]: Rotating system journal.
[   51.945074] systemd-journald[172]: Time jumped backwards, rotating.
oleg@mobile:~:$ 

Уровни журнала фильтрации

Команда dmesg связывает каждое буферное сообщение с уровнем журнала, характеризующим важность сообщения.

Доступные уровни:

emerg
Экстренные сообщения
alert
Предупреждения, требующие немедленных действий
crit
Критические условия
err
Сообщения об ошибках
warn
Предупреждающие сообщения
notice
Нормальные, но существенные условия
info
Информационные сообщения
debug
Сообщения уровня отладки

Для вывода сообщений, соответствующих определённому уровню, используется параметр -l, за которым следует имя уровня:

oleg@mobile:~:$ sudo dmesg -l warn
[    0.140294] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[   14.048298] ACPI Warning: SystemIO range 0x0000000000000428-0x000000000000042F conflicts with OpRegion 0x0000000000000400-0x000000000000047F (\PMIO) (20221020/utaddress-204)
[   14.048314] ACPI Warning: SystemIO range 0x0000000000000540-0x000000000000054F conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20221020/utaddress-204)
[   14.048320] ACPI Warning: SystemIO range 0x0000000000000530-0x000000000000053F conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20221020/utaddress-204)
[   14.048326] ACPI Warning: SystemIO range 0x0000000000000500-0x000000000000052F conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20221020/utaddress-204)
[   14.048330] lpc_ich: Resource conflict(s) found affecting gpio_ich
[   16.681979] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[   16.722923] iwlwifi 0000:01:00.0: can't disable ASPM; OS doesn't have ASPM control
[   16.930594] r8169 0000:02:00.0: can't disable ASPM; OS doesn't have ASPM control
[   17.328720] at24 7-0052: supply vcc not found, using dummy regulator
[15138.290795] psmouse serio1: Touchpad at isa0060/serio1/input0 lost sync at byte 6
[20451.248953] psmouse serio1: Touchpad at isa0060/serio1/input0 lost sync at byte 6
[20459.950294] psmouse serio1: Touchpad at isa0060/serio1/input0 lost sync at byte 6
oleg@mobile:~:$ 

В приведённом выше примере из журнала извлекаются только предупреждающие сообщения.

Для получения сообщений с нескольких уровней к команде dmesg добавляется список уровней, разделённых запятыми:

oleg@mobile:~:$ sudo dmesg -l emerg,alert,crit,err
oleg@mobile:~:$

Выходные данные объединяют сообщения из указанных уровней журнала.

Заключение

В статье показано использование команды Linux dmesg для просмотра и управления кольцевым буфером ядра. Утилита удобна при устранении неполадок ядра или оборудования.

Поделиться с друзьями