dmesg cat /var/log/messages
more /proc/kmsg 修改proc/sys/kernel/printk
在kernel 中模組如果要列印出訊息,由於不能連結一般函式庫,只能與核心的函式庫連結。
因此printf() 就不能使用了,只能使用printk()。
EX:
printk(KERN_DEBUG "Here I am: %s:%i\n", __FILE__, __LINE__);
printk(KERN_CRIT "I'm trashed; giving up on %p\n", ptr);
38#define KERN_EMERG "<0>" /* system is unusable */ 39#define KERN_ALERT "<1>" /* action must be taken immediately */ 40#define KERN_CRIT "<2>" /* critical conditions */ 41#define KERN_ERR "<3>" /* error conditions */ 42#define KERN_WARNING "<4>" /* warning conditions */ 43#define KERN_NOTICE "<5>" /* normal but significant condition */ 44#define KERN_INFO "<6>" /* informational */ 45#define KERN_DEBUG "<7>" /* debug-level messages */
它有 8 種可能的記錄字串, 在頭檔 <linux/kernel.h> 裏定義; 我們按照嚴重性遞減的順序列出它們:
KERN_EMERG
用於緊急消息, 常常是那些崩潰前的消息.
KERN_ALERT
需要立刻動作的情形.
KERN_CRIT
嚴重情況, 常常與嚴重的硬體或者軟體失效有關.
KERN_ERR
用來報告錯誤情況; 設備驅動常常使用 KERN_ERR 來報告硬體故障.
KERN_WARNING
有問題的情況的警告, 這些情況自己不會引起系統的嚴重問題.
KERN_NOTICE
正常情況, 但是仍然值得注意. 在這個級別一些安全相關的情況會報告.
KERN_INFO
資訊型消息. 在這個級別, 很多驅動在啟動時列印它們發現的硬體的資訊.
KERN_DEBUG
用作調試消息.
每個字串( 在巨集定義擴展裏 )代表一個在角括弧中的整數,整數的範圍從 0 到 7,越小的數表示越大的優先順序。