console_loglevel

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
console_loglevel [2018/11/23 13:36] – [include/linux/printk.h] rpjdayconsole_loglevel [2018/11/23 15:33] (current) – [Overview] rpjday
Line 1: Line 1:
 ===== Overview ===== ===== Overview =====
  
-How to mess with ''loglevel'' at boot time.+Properties of console loglevel, and how to use it.
  
 ===== Files ===== ===== Files =====
Line 15: Line 15:
     * [[https://github.com/torvalds/linux/blob/master/init/main.c|main.c]]     * [[https://github.com/torvalds/linux/blob/master/init/main.c|main.c]]
   * [[https://github.com/torvalds/linux/tree/master/kernel|kernel/]]   * [[https://github.com/torvalds/linux/tree/master/kernel|kernel/]]
 +    * [[https://github.com/torvalds/linux/blob/master/kernel/sysctl.c|sysctl.c]]
     * [[https://github.com/torvalds/linux/tree/master/kernel/printk|printk/]]     * [[https://github.com/torvalds/linux/tree/master/kernel/printk|printk/]]
       * [[https://github.com/torvalds/linux/blob/master/kernel/printk/printk.c|printk.c]]       * [[https://github.com/torvalds/linux/blob/master/kernel/printk/printk.c|printk.c]]
Line 26: Line 27:
   * /sys/module/printk/parameters   * /sys/module/printk/parameters
   * /proc/sys/kernel/printk/*   * /proc/sys/kernel/printk/*
 +
 +===== Kernel parameters =====
 +
 +<code>
 +loglevel=       All Kernel Messages with a loglevel smaller than the
 +                console loglevel will be printed to the console. It can
 +                also be changed with klogd or other programs. The
 +                loglevels are defined as follows:
 +
 +                0 (KERN_EMERG)          system is unusable
 +                1 (KERN_ALERT)          action must be taken immediately
 +                2 (KERN_CRIT)           critical conditions
 +                3 (KERN_ERR)            error conditions
 +                4 (KERN_WARNING)        warning conditions
 +                5 (KERN_NOTICE)         normal but significant condition
 +                6 (KERN_INFO)           informational
 +                7 (KERN_DEBUG)          debug-level messages
 +</code>
 +
 +<code>
 +ignore_loglevel [KNL]
 +                Ignore loglevel setting - this will print /all/
 +                kernel messages to the console. Useful for debugging.
 +                We also add it as printk module parameter, so users
 +                could change it dynamically, usually by
 +                /sys/module/printk/parameters/ignore_loglevel.
 +</code>
  
 ===== Kernel source files ===== ===== Kernel source files =====
 +
 +==== kernel/printk/printk.c ====
 +
 +<code>
 +int console_printk[4] = {
 + CONSOLE_LOGLEVEL_DEFAULT, /* console_loglevel */
 + MESSAGE_LOGLEVEL_DEFAULT, /* default_message_loglevel */
 + CONSOLE_LOGLEVEL_MIN, /* minimum_console_loglevel */
 + CONSOLE_LOGLEVEL_DEFAULT, /* default_console_loglevel */
 +};
 +</code>
  
 ==== include/linux/printk.h ==== ==== include/linux/printk.h ====
Line 37: Line 76:
 /* We show everything that is MORE important than this.. */ /* We show everything that is MORE important than this.. */
 #define CONSOLE_LOGLEVEL_SILENT  0 /* Mum's the word */ #define CONSOLE_LOGLEVEL_SILENT  0 /* Mum's the word */
-#define CONSOLE_LOGLEVEL_MIN     1 /* Minimum loglevel we let people use */ +#define CONSOLE_LOGLEVEL_MIN  1 /* Minimum loglevel we let people use */ 
-#define CONSOLE_LOGLEVEL_DEBUG  10 /* issue debug messages */ +#define CONSOLE_LOGLEVEL_DEBUG 10 /* issue debug messages */ 
-#define CONSOLE_LOGLEVEL_MOTORMOUTH 15  /* You can't shut this one up */+#define CONSOLE_LOGLEVEL_MOTORMOUTH 15 /* You can't shut this one up */
  
 /* /*
Line 46: Line 85:
  */  */
 #define CONSOLE_LOGLEVEL_DEFAULT CONFIG_CONSOLE_LOGLEVEL_DEFAULT #define CONSOLE_LOGLEVEL_DEFAULT CONFIG_CONSOLE_LOGLEVEL_DEFAULT
-#define CONSOLE_LOGLEVEL_QUIET   CONFIG_CONSOLE_LOGLEVEL_QUIET+#define CONSOLE_LOGLEVEL_QUIET  CONFIG_CONSOLE_LOGLEVEL_QUIET
  
 extern int console_printk[]; extern int console_printk[];
Line 57: Line 96:
 static inline void console_silent(void) static inline void console_silent(void)
 { {
-        console_loglevel = CONSOLE_LOGLEVEL_SILENT;+ console_loglevel = CONSOLE_LOGLEVEL_SILENT;
 } }
  
 static inline void console_verbose(void) static inline void console_verbose(void)
 { {
-        if (console_loglevel) + if (console_loglevel) 
-                console_loglevel = CONSOLE_LOGLEVEL_MOTORMOUTH;+ console_loglevel = CONSOLE_LOGLEVEL_MOTORMOUTH;
 } }
- 
 </code> </code>
 ==== lib/Kconfig.debug ==== ==== lib/Kconfig.debug ====
Line 111: Line 149:
 or pick a different CONSOLE_LOGLEVEL_DEFAULT configuration value. or pick a different CONSOLE_LOGLEVEL_DEFAULT configuration value.
 </code> </code>
- 
  
 ==== init/main.c ==== ==== init/main.c ====
  • console_loglevel.1542980167.txt.gz
  • Last modified: 2018/11/23 13:36
  • by rpjday