Hi 大家好
千篇一律的第一句話開頭[謎之音:你是都沒梗了嗎?]
ㄜ..... 這個嗎!! 梗是一定有 只是都很弱.
好拉 紀錄一下之前 遇到的一些狀況
因為 某些不知名原因 小弟想要把開發平台上 Kernel 在ext4 fs 目錄夾內的 運作訊息 印出來看
也就是說要印出 printk的訊息 或是想辦法儲存起來
先總結一下 我幹了哪些傻事
以為用 sed command 把 想秀出訊息的 目錄夾內的 .c .h檔案 的printk
printk() 預設層級 是 在kernel的 .config 的 DEFAULT_MESSAGE_LOGLEVEL
在 kernel/printk.c 中被定義為整數 4,即對應KERN_WARNING
預設好像都是 define 4
把層級都從KERN_INFO換到KERN_EMERG
Linux 有八個系統 日誌層級
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
但卻沒注意到 那個目錄 printk的訊息是用 ext4_msg
e.g.
千篇一律的第一句話開頭[謎之音:你是都沒梗了嗎?]
ㄜ..... 這個嗎!! 梗是一定有 只是都很弱.
好拉 紀錄一下之前 遇到的一些狀況
因為 某些不知名原因 小弟想要把開發平台上 Kernel 在ext4 fs 目錄夾內的 運作訊息 印出來看
也就是說要印出 printk的訊息 或是想辦法儲存起來
先總結一下 我幹了哪些傻事
以為用 sed command 把 想秀出訊息的 目錄夾內的 .c .h檔案 的printk
printk() 預設層級 是 在kernel的 .config 的 DEFAULT_MESSAGE_LOGLEVEL
在 kernel/printk.c 中被定義為整數 4,即對應KERN_WARNING
預設好像都是 define 4
把層級都從KERN_INFO換到KERN_EMERG
Linux 有八個系統 日誌層級
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
但卻沒注意到 那個目錄 printk的訊息是用 ext4_msg
e.g.
ext4_msg(sb, KERN_ERR, "can't get new inode");
接著然後因為沒有更改 層級 所以dmesg 還是看不到(但其實是因為根本沒有存到那個log)
因為在開發版上 只有一個console 所以 先 more /proc/kmsg 再開一個終端 此招也沒用
參考 這位大大文章 和 同事建議
busybox syslogd & klogd
仿照 鳥哥 這篇文章提到的
http://linux.vbird.org/linux_basic/0570syslog.php#syslogd_conf
開發版上有 syslogd的 daemon但是 沒有儲存 messages的log
所以修改 /etc/syslog.conf 新增一個
kern.* /var/log/cern
這樣當你去 cat /var/log/cern 就會有很詳細的訊息了,理論跟 dmesg的訊息很像
但是 在時間點等 細節上 會比較詳細一些
延伸參考:
http://www.embedded-bits.co.uk/2010/printk-format-specifiers/
以上 下台一鞠躬
留言