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命令查看

上一篇:linux 使用set_task 杀死D状态进程


下一篇:(一) C语言的字符