标签:style color io 使用 ar for strong sp div
为了确认内核打印等级以及prink 参数对打印的分级,在led驱动初始化代码【以及exit出口】加入如下代码。
每次insmod 、rmmod led模块时,根据打印等级的设置,得到不同的打印结果:
操作:
一次性地设置编译内核源码时默认的打印级数:【它们在kernel/printk.c中定义】
echo 8 4 1 7 > /proc/sys/kernel/printk
8. 为KERN_DEBUG
# echo 8 4 1 7 > /proc/sys/kernel/printk
# insmod myleds_new.ko
1111111 KERN_EMERG
2222 KERN_ALERT
3333333 KERN_CRIT
44444444 KERN_ERR
55555 KERN_WARNING
66666 KERN_NOTICE
77777 KERN_INFO
888888 KERN_DEBUG
9999 no_fix
7. 为默认
#cat /proc/sys/kernel/printk
#7 4 1 7
打印结果:
111111 KERN_EMERG
2222 KERN_ALERT
3333333 KERN_CRIT
44444444 KERN_ERR
55555 KERN_WARNING
66666 KERN_NOTICE
77777 KERN_INFO
9999 no_fix
6.
# echo 6 4 1 7 > /proc/sys/kernel/printk
# insmod myleds_new.ko
1111111 KERN_EMERG
2222 KERN_ALERT
3333333 KERN_CRIT
44444444 KERN_ERR
55555 KERN_WARNING
66666 KERN_NOTICE
9999 no_fix
5.
# echo 5 1 4 7 > /proc/sys/kernel/printk
# rmmod myleds_new.ko
1111111 KERN_EMERG
2222 KERN_ALERT
3333333 KERN_CRIT
44444444 KERN_ERR
55555 KERN_WARNING
9999 no_fix
4.
# echo 4 4 1 7 > /proc/sys/kernel/printk
# insmod myleds_new.ko
1111111 KERN_EMERG
2222 KERN_ALERT
3333333 KERN_CRIT
44444444 KERN_ERR
3.
# echo 3 4 1 7 > /proc/sys/kernel/printk
# rmmod myleds_new.ko
1111111 KERN_EMERG
2222 KERN_ALERT
3333333 KERN_CRIT
2.
# echo 2 4 1 7 > /proc/sys/kernel/printk
# insmod myleds_new.ko
1111111 KERN_EMERG
2222 KERN_ALERT
1.
# echo 1 4 1 7 > /proc/sys/kernel/printk
# insmod myleds_new.ko
1111111 KERN_EMERG
分析:
手动设置打印等级为5 1 4 7 及其以上时(重启会失效),会打印KERN_WARNING 以及没有加格式参数的printk打印信息。
KERN_DEBUG优先级最低。
KERN_EMERG优先级最高。
其它的,按级数递推。
假设要默认打印无fix的printfk,
kernel/printk.c
#define DEFAULT_CONSOLE_LOGLEVEL (XX); xx >=5
假设要默认打印KERN_DEBUG信息
#define DEFAULT_CONSOLE_LOGLEVEL (XX); xx=8
//上述操作,一次性的可以使用echo xx 4 1 7 > /proc/sys/kernel/printk
源代码参考:
kernel/printk.c
Include/linux/kernel.h
标签:style color io 使用 ar for strong sp div
原文地址:http://www.cnblogs.com/mylinux/p/4028787.html