1. 程式人生 > 實用技巧 >01Linux驅動模組02

01Linux驅動模組02

二、核心中的資訊列印-->printk

1、列印級別

vim include/linux/printk.h +9
核心中的列印級別,8個級別,(0~7)級,數值越小,級別越高
(0~2)3個級別不常用,
(3~7)4個級別會常用,

  vim ./include/linux/printk.h +9

  09 #define 	KERN_EMERG  	"<0>"   系統(不使用)	     /* system is unusable           */
  10 #define 	KERN_ALERT  	"<1>"   立即執行(作業系統使用) /* action must be taken immediately */
  11 #define 	KERN_CRIT   	"<2>"  	緊急情況(臨界條件)     /* critical conditions          */
  12 #define 	KERN_ERR    	"<3>"   錯誤	             /* error conditions         */
  13 #define 	KERN_WARNING    "<4>"   警告	             /* warning conditions           */
  14 #define 	KERN_NOTICE 	"<5>"   提示	             /* normal but significant condition */
  15 #define 	KERN_INFO   	"<6>"   正常列印	             /* informational            */
  16 #define 	KERN_DEBUG  	"<7>"   除錯	             /* debug-level messages         */

printk(列印級別 "這裡和printf的使用方法一樣");
printk("這裡和printf的使用方法一樣"); --->不填列印級別即為預設級別

2、終端顯示

終端顯示的時候有一個終端級別,只有列印級別大於終端級別的時候,訊息才會在終端上顯示
檢視終端級別 cat /proc/sys/kernel/printk 結果為 4 4 1 7

4                4                     1                       7
終端級別    預設訊息級別    終端最高級別    終端最低級別

ubuntu終端預設被修改為不能顯示核心列印資訊
需要進入虛擬終端中進行測試上述效果

進入虛擬終端	Ctrl + Alt + [F1~F6]
退出虛擬終端	Ctrl + Alt + [F7]

Ubuntu上修改printk檔案的預設訊息級別

su    root           進入 root 使用者模式
echo 4 3 1 7 > /proc/sys/kernel/printk
exit                 退出 root 使用者模式

以後在使用的時候就是修改後的訊息級別

開發板上修改printk檔案的預設訊息級別

vim ~/rootfs/etc/init.d/rcS                 rcS--->核心啟動後執行的第一個指令碼
新增內容
echo 4 3 1 7 > /proc/sys/kernel/printk

dmesg命令

dmesg	將Ubuntu開機到目錄的時間點所有的資訊顯示出來
dmesg -c	清除列印資訊,先回顯後清除
dmesg -C	清除列印資訊,直接清除,不回顯

如果不會主動回顯,可以使用dmesg命令檢視