Hide boot on-screen errors, or get TV-out working on ATI Radeon X300
John Hupp
ubuntu at prpcompany.com
Mon Dec 8 20:22:01 UTC 2014
On 12/8/2014 2:45 AM, Marius Gedminas wrote:
> On Sun, Dec 07, 2014 at 02:33:47PM -0500, John Hupp wrote:
>> Victory!
>>
>> I created /etc/sysctl.d/20-quiet-printk.conf with content:
>> kernel.printk = 3 3 3 3
> ...
>> Though I was curious to know a bit more about the mechanisms in
>> play, I didn't dig much further than that. I wondered, for
>> instance, what behavior the default '4 4 1 7' specified, but never
>> did find out. The files in sysctl.d are installed by procps (see
>> the List of Files link at
>> http://packages.ubuntu.com/trusty/admin/procps). And these, in turn,
>> are part of the kernel configuration governed by sysctl (see
>> http://manpages.ubuntu.com/manpages/trusty/en/man8/sysctl.8.html).
>>
>> Still looking for the meaning of '4 4 1 7' vs '3 3 3 3' I came to
>> https://www.kernel.org/doc/Documentation/printk-formats.txt, but my
>> eyes glazed over just skimming that, and I stopped there.
> This is a bit unobvious, but you can find the description of the
> kernel.printk sysctl setting in
> http://manpages.ubuntu.com/manpages/trusty/en/man5/proc.5.html:
>
> /proc/sys/kernel/printk
> The four values in this file are console_loglevel, default_mes‐
> sage_loglevel, minimum_console_level, and default_con‐
> sole_loglevel. These values influence printk() behavior when
> printing or logging error messages. See syslog(2) for more info
> on the different loglevels. Messages with a higher priority
> than console_loglevel will be printed to the console. Messages
> without an explicit priority will be printed with priority
> default_message_level. minimum_console_loglevel is the minimum
> (highest) value to which console_loglevel can be set.
> default_console_loglevel is the default value for con‐
> sole_loglevel.
>
> (/proc/sys is one of the possible ways of changing systcl settings,
> which I guess explain why this is documented in proc(5).)
>
> Marius Gedminas
Thanks Marius, and also Tom H, for the helpful documentation and also a
caution against fiddling with the default settings more than is needed.
If I understand correctly, the 7 in 4 4 1 7 means that console_loglevel
is initially set to 7, but "is set to 10 if the kernel command line
contains the word "debug", and to 15 in case of a kernel fault (the
10 and 15 are just silly, and equivalent to 8)." With console_loglevel
set to 8 in those conditions, console messages would become as verbose
as possible.
The 1 in 4 4 1 7 means that any mechanism that attempts to set
console_loglevel to 0 would be thwarted. This assures that
system-is-unusable kernel emergency messages would print to console.
The second 4 in 4 4 1 7 means that any line of a message that does not
have a priority level already assigned to it will be assigned level 4
and treated accordingly.
The first 4 in 4 4 1 7 means that only messages with a priority of 3 or
lower (error conditions, but not warnings) will print to console.
So if I want to stop erroneous error (!!) messages from printing to
console, the most conservative change would be to 4 4 1 7 --> 3 4 1 7
(not 3 3 3 3).
This I have now done, and 3 4 1 7 still achieves suppression of the
unwanted messages.
More information about the ubuntu-users
mailing list