linux核心 設定列印資訊

2021-09-03 08:28:25 字數 1683 閱讀 4990

有時除錯核心模組,列印資訊太多了,可以通過修改/proc/sys/kernel/printk檔案內容來控制。預設設定是6   4   1   7

# cat /proc/sys/kernel/printk

7       4       1      7

該檔案有四個數字值,它們根據日誌記錄訊息的重要性,定義將其傳送到何處。關於不同日誌級別的更多資訊,請查閱syslog(2)聯機幫助。上面顯示的4個資料分別對應:

控制台日誌級別:優先順序高於該值的訊息將被列印至控制台

預設的訊息日誌級別:將用該優先順序來列印沒有優先順序的訊息

最低的控制台日誌級別:控制台日誌級別可被設定的最小值(最高優先順序)

預設的控制台日誌級別:控制台日誌級別的預設值

數值越小,優先順序越高

其實這四個值是在kernel/printk.c 中被定義的,如下:

int console_printk[4] = ;

內 核通過printk() 輸出的資訊具有日誌級別,日誌級別是通過在printk() 輸出的字串前加乙個帶尖括號的整數來控制的,如printk("<6>hello, world!\n");。核心中共提供了八種不同的日誌級別,在 linux/kernel.h 中有相應的巨集對應。

#define kern_emerg  "<0>"   /* systemis unusable */

#define kern_alert  "<1>"   /* actionmust be taken immediately */

#define kern_crit    "<2>"   /*critical conditions */

#define kern_err     "<3>"   /* errorconditions */

#define kern_warning "<4>"   /* warning conditions */

#define kern_notice  "<5>"   /* normalbut significant */

#define kern_info    "<6>"   /*informational */

#define kern_debug   "<7>"   /*debug-level messages */

所以printk() 可以這樣用:printk(kern_info"hello, world!\n");。

未指定日誌級別的printk() 採用的預設級別是default_message_loglevel,這個巨集在kernel/printk.c 中被定義為整數4,即對應kern_warning。

如果要想在核心啟動過程中列印少的資訊,就可以根據自己的需要在kernel/printk.c中修改以上數值,重新編譯即可!

/* printk's without a loglevel use this.. */

#define default_message_loglevel 4 /* kern_warning */ 

了解了上面的這些知識後,我們就應該知道如何手動控制printk列印了。例如,我想遮蔽掉所有的核心printk列印,那麼我只需要把第乙個數值調到最小值1或者0。

# echo 1       4       1      7 > /proc/sys/kernel/printk

或者# echo 0       4       0      7 > /proc/sys/kernel/printk

**

遮蔽核心啟動列印資訊

最近做的4412板子終於經過測試形成產品,在這之前需要把核心啟動過程中的列印資訊去掉,並且更換啟動logo,下面講講自己去掉列印資訊的過程。一 去掉列印資訊方法很多,我使用乙個相對比較簡單的,就是將下面選項的 去掉 device drivers character devices support f...

定時列印資訊

class cl time event definition.public section.class methods auto exe for event finished of cl gui timer importing sender.endclass.cl time event defini...

tomcat 去掉 列印資訊

1.引用 修改startup.bat第42行 call executable start cmd line args 為 call executable run cmd line args logs catalina.txt 然後在此啟動tomcat,再次檢視catalina.txt,預期的資訊果然...