二、内核中的信息打印-->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命令查看