linux驱动中printk的使用注意事项
生活随笔
收集整理的這篇文章主要介紹了
linux驱动中printk的使用注意事项
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天在按鍵驅動中增加printk(KERN_INFO "gpio_keys_gpio_isr()\n");在驅動加載階段可以輸出調試信息,但驅動加載起來后的信息,在串口端看不到輸出信息
在kernel/
/* We show everything that is MORE important than this.. */
#define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */
#define DEFAULT_CONSOLE_LOGLEVEL 7 /* anything MORE serious than KERN_DEBUG */
int console_printk[4] = {
? ? ? ?DEFAULT_CONSOLE_LOGLEVEL, ? ?/* console_loglevel */
? ? ? ?DEFAULT_MESSAGE_LOGLEVEL, ? ?/* default_message_loglevel */
? ? ? ?MINIMUM_CONSOLE_LOGLEVEL, /* minimum_console_loglevel */
? ? ? ?DEFAULT_CONSOLE_LOGLEVEL, ? ?/* default_console_loglevel */
};
下面是控制臺日志級別的一些簡要的介紹
?控制臺相應的日志級別定義如下:
?#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也可以抓調試信息也可以抓到這個信息。
在kernel/
/* We show everything that is MORE important than this.. */
#define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */
#define DEFAULT_CONSOLE_LOGLEVEL 7 /* anything MORE serious than KERN_DEBUG */
int console_printk[4] = {
? ? ? ?DEFAULT_CONSOLE_LOGLEVEL, ? ?/* console_loglevel */
? ? ? ?DEFAULT_MESSAGE_LOGLEVEL, ? ?/* default_message_loglevel */
? ? ? ?MINIMUM_CONSOLE_LOGLEVEL, /* minimum_console_loglevel */
? ? ? ?DEFAULT_CONSOLE_LOGLEVEL, ? ?/* default_console_loglevel */
};
下面是控制臺日志級別的一些簡要的介紹
?控制臺相應的日志級別定義如下:
?#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也可以抓調試信息也可以抓到這個信息。
總結
以上是生活随笔為你收集整理的linux驱动中printk的使用注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux Android 多点触摸协议
- 下一篇: 如何办理夫妻间的房屋产权转移手续?