Запретить появление сообщений ядра в dmesg

Можно ли предотвратить появление сообщений ядра в выводе dmesg?

Например, я использую программное обеспечение, которое завершает туннели PPPoE. Одной из функций, которые он предоставляет, является возможность задания имен пользовательских интерфейсов.

Однако это приводит к сообщениям в dmesg, таких как:

... 
[Mon May 28 09:50:06 2018] ifname.3: renamed from pppoe3 
[Mon May 28 11:07:40 2018] ifname.4: renamed from pppoe4 
[Mon May 28 11:11:37 2018] ifname.5: renamed from pppoe5 
[Mon May 28 11:18:26 2018] ifname.6: renamed from pppoe6 
[Mon May 28 11:40:46 2018] ifname.7: renamed from pppoe7
...

Я отслеживал функцию, ответственную за это netdev_info: https://github.com/torvalds/linux/blob/v4.16/net/core/dev.c#L1204

Проблема с этими сообщениями заключается в том, что они заполняют буфер и переопределяют любые другие важные сообщения (сбой драйвера, предупреждения iptable и т. Д.).

Можно ли подавить появление этого конкретного сообщения в выводе dmesg?

Я попытался установить sysctl kernel.printk, но это, похоже, не имеет никакого эффекта, и сообщения появляются в выводе dmesg независимо от настроек.

Спасибо.

2 ответа

Хорошо, что функция netdev_info печатает сообщения ядра через printk на уровне INFO. Я считаю, что вы можете настроить свой kernel.printk контролировать уровень сообщений, которые фактически регистрируются. Таким образом, вы можете отрегулировать вниз от уровня INFO до менее шумных уровней WARN или ERR.

Я вообще люблю идти с этим 3 4 1 3 по умолчанию

# /etc/sysctl.d/printk.conf
# Uncomment the following to stop low-level messages on console
kernel.printk = 3 4 1 3

Смотрите эти ссылки для более подробной информации о kernel.printk

Это подавит не только это конкретное сообщение. Если у вас есть другая информация, записанная на уровне INFO, которую вы на самом деле хотите или должны увидеть, это может быть не лучшим решением.

Если вас волнует только то, что регистрируется в журналах, управляемых системным журналом, тогда вы сможете применять фильтры в зависимости от того, какой демон syslog вы используете.

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

В любом случае, в зависимости от вашего дистрибутива, старые журналы ядра можно найти в /var/log/messages или же /var/log/syslog,

Другие вопросы по тегам