How do I disable messages or logging from printing on the console/virtual terminals?

  • 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?

  • oddfellow

    oddfellow Correct answer

    9 years ago

    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
    

    Great, that is just what I was looking for. :)

    The `dmesg -n 1` must be run as root, e.g. `sudo dmesg -n 1`.

  • 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...

  • /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.

License under CC-BY-SA with attribution


Content dated before 6/26/2020 9:53 AM