58

My wireless driver is noisy. It prints out messages to the console every 10-30 seconds. So, if I'm working on VT1 or something, I get messages scrolling by all the time. Is there a way to shut this feature off? I like working on the virtual terminals, but this is making it hard to deal with. :)

Any ideas?

Zanna
  • 72,312
dpb
  • 7,209

4 Answers4

65

You can use the command

sudo dmesg -n 1

to suppress all messages from the kernel (and its drivers) except panic messages from appearing on the console.

To fix at each boot, add the command to:

/etc/rc.local
dpb
  • 7,209
oddfellow
  • 3,151
53

dmesg comes with two handy options for that:

-D, --console-off           disable printing messages to console
-E, --console-on            enable printing messages to console

dmesg -D is just a shortcut for dmesg -n 1, except that it stores the current log level, so that you can easily restore it with dmesg -E. So it's a bit more convenient than changing the log level with dmesg -n.

Additionally, you can check the current log level with:

$ cat /proc/sys/kernel/printk
7       4       1       7

man klogctl for more explanations on these numbers...

elboulangero
  • 684
  • 7
  • 8
10

/proc/sys/kernel/printk

You can also set the log level directly with

echo 1 > /proc/sys/kernel/printk

which is basically what dmesg is doing.

The format of that file is explained at: https://superuser.com/a/793692/128124

loglevel command line boot parameter

Sets the initial value at boot time, which allows you to see pre-init messages.

0

For me the other answers did not work because it was a syslog-ng config causing the messages.

I edited the /etc/syslog-ng/syslog-ng.conf file.

I changed all of the lines with destination(d_console); occurrences with sed.

sed -i 's/ destination(d_console);//g' /etc/syslog-ng/syslog-ng.conf

I reloaded the syslog-ng service.

systemctl reload syslog-ng.service

The notifications are no longer going to terminal.