控制Linux kernel启动console的打印级别

注:代码来自内核版本2.6.36

在Build kernel时,在CONFIG_CMDLINE宏中设定级别:
CONFIG_CMDLINE=" debug| quiet| loglevel=5",这个宏会在kernel启动时作为默认配置参数。
debug表示loglevel=10
quiet表示loglevel=4
loglevel=5表示loglevel=5

处理log级别的代码如下(见内核代码init/main.c)
235 /*
236  * This should be approx 2 Bo*oMips to start (note initial shift), and will
237  * still work even if initially too large, it will just take slightly longer
238  */
239 unsigned long loops_per_jiffy = (1<<12);
240 
241 EXPORT_SYMBOL(loops_per_jiffy);
242 
243 static int __init debug_kernel(char *str)
244 {
245     console_loglevel = 10;
246     return 0;
247 }
248 
249 static int __init quiet_kernel(char *str)
250 {
251     console_loglevel = 4;
252     return 0;
253 }
254 
255 early_param("debug", debug_kernel);
256 early_param("quiet", quiet_kernel);
257 
258 static int __init loglevel(char *str)
259 {
260     get_option(&str, &console_loglevel);
261     return 0;
262 }
263 
264 early_param("loglevel", loglevel);

注意:在系统启动时,可以从bootloader中将CONFIG_CMDLINE参数传递给kernel。

你可能感兴趣的:(linux)