今天在按鍵驅動中增長printk(KERN_INFO "gpio_keys_gpio_isr()\n");在驅動加載階段能夠輸出調試信息,但驅動加載起來後的信息,在串口端看不到輸出信息this
在kernel/調試
/* We show everything that is MORE important than this.. */日誌
#define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */io
#define DEFAULT_CONSOLE_LOGLEVEL 7 /* anything MORE serious than KERN_DEBUG */console
int console_printk[4] = {import
DEFAULT_CONSOLE_LOGLEVEL, /* console_loglevel */im
DEFAULT_MESSAGE_LOGLEVEL, /* default_message_loglevel */ant
MINIMUM_CONSOLE_LOGLEVEL, /* minimum_console_loglevel */co
DEFAULT_CONSOLE_LOGLEVEL, /* default_console_loglevel */let
};
下面是控制檯日誌級別的一些簡要的介紹
控制檯相應的日誌級別定義以下:
#define MINIMUM_CONSOLE_LOGLEVEL 1 /*能夠使用的最小日誌級別*/
#define DEFAULT_CONSOLE_LOGLEVEL 7 /*比KERN_DEBUG 更重要的消息都被打印*/
int console_printk[4] = {
DEFAULT_CONSOLE_LOGLEVEL,/*控制檯日誌級別,優先級高於該值的消息將在控制檯顯示*/
/*默認消息日誌級別,printk沒定義優先級時,打印這個優先級以上的消息*/
DEFAULT_MESSAGE_LOGLEVEL,
/*最小控制檯日誌級別,控制檯日誌級別可被設置的最小值(最高優先級)*/
MINIMUM_CONSOLE_LOGLEVEL,
DEFAULT_CONSOLE_LOGLEVEL,/* 默認的控制檯日誌級別*/
};
在進行查看的時候,能夠使用命令 cat /proc/sys/kernel/printk來查看這四個值
6 6 1 7
可知咱們系統默認控制檯級別爲第1個6,而咱們要輸出的信息級別是KERN_INFO(恰好是6),若是要輸出這個信息,須要把第1個6改成7,修改命令:
echo 「7 6 1 7」 > /proc/sys/kernel/printk
或者是把上面printk(KERN_INFO "gpio_keys_gpio_isr()\n");改成KERN_ERR或是其餘比他高級別的也能夠。
可是在沒有改打印機級別,經過cat /proc/kmsg也能夠抓調試信息也能夠抓到這個信息。