linux裝置驅動除錯,我們在核心中看到核心使用dev_dbg來控制輸出資訊,這個函式的實質是呼叫 printk(kern_debug )來輸出列印資訊。要開啟這個開關需要下面兩步。
1、開啟除錯開關:你除錯的檔案中必然包含了,或者《linux /paltforam_device.h》,後者包含了前者,在包含此標頭檔案之前,使用#define debug 1 來開啟除錯開關:例如
#include
#include
#include
#include
#define debug 1
#include
在linux/device.h檔案中:
#define dev_printk(level, dev, format, arg...) \
printk(level "%s %s: " format , dev_driver_string(dev) , (dev)->bus_id , ## arg)
#ifdef debug
#define dev_dbg(dev, format, arg...) \
dev_printk(kern_debug , dev , format , ## arg)
#else
static inline int __attribute__ ((format (printf, 2, 3)))
dev_dbg(struct device * dev, const char * fmt, ...)
#endif
但是這個開啟了之後,也不能順利的輸出資訊,原因是printk有預設的資訊級別。
linux/kernel檔案中
#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 condition */
#define kern_info "<6>" /* informational */
#define kern_debug "<7>" /* debug-level messages */
可以看到kern_debug是級別最低的。
2、修改檔案kernel/printk檔案
/* printk's without a loglevel use this.. */
#define default_message_loglevel 4 /* kern_warning */
/* we show everything that is more important than this.. */
#define minimum_console_loglevel 1 /* minimum loglevel we let people use */
#define default_console_loglevel 8 /* anything more serious than kern_debug */
其中default_console_loglevel 為終端console輸出的最低級別,比這嚴重的都將輸出。原來該值為7,則除錯資訊無法輸出,修改為8則全部有輸出。
可能比較關鍵的是debug需要在標頭檔案之前定義!!!
開啟linux 核心執行緒
函式說明 kthread create 建立執行緒。struct task struct kthread create int threadfn void data void data,const char namefmt,執行緒建立後,不會馬上執行,而是需要將kthread create 返回的t...
Linux驅動開發之使用dev dbg除錯裝置驅動
gqb666 1 最近在寫i2c下eeprom的驅動程式,但發現使用i2c new probed device函式無法列舉到裝置,於是想除錯該函式 位於driver i2c i2c core.c內 看到其中有些除錯資訊如下 cpp view plain copy i2c new probed dev...
樹莓派Linux核心編譯選項如何開啟TPM 2 0
本文更新於2018 08 11 同步至github 定製樹莓派核心原始碼,通過樹莓派spi介面載入並訪問tpm2.0裝置 所需硬體 x86主機一台,樹莓派3 b型號開發板一塊,大容量micro sd卡 usb讀卡器乙個,英飛凌tpm2.0評估板一套 所需軟體 任意版本樹莓派韌體 推薦使用最新版本 u...