为了确认内核打印等级以及prink 参数对打印的分级,在led驱动初始化代码【以及exit出口】加入如下代码。

每次insmod 、rmmod led模块时,根据打印等级的设置,得到不同的打印结果:

static int __init s3c24xx_leds_init()

{

int ret ;

int minor = 0 ;

printk(KERN_EMERG " 1111111 KERN_EMERG\n");

printk(KERN_ALERT " 2222 KERN_ALERT\n");

printk(KERN_CRIT " 3333333 KERN_CRIT\n");

printk(KERN_ERR " 44444444 KERN_ERR\n");

printk(KERN_WARNING " 55555 KERN_WARNING\n");

printk(KERN_NOTICE " 66666 KERN_NOTICE\n");

printk(KERN_INFO " 77777 KERN_INFO\n");

printk(KERN_DEBUG " 888888 KERN_DEBUG\n");

printk(" 9999 no_fix\n");

}

操作:

一次性地设置编译内核源码时默认的打印级数:【它们在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的printk,

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

/* 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 7 /* anything MORE serious than KERN_DEBUG */

DECLARE_WAIT_QUEUE_HEAD(log_wait);

int console_printk[4] = {

DEFAULT_CONSOLE_LOGLEVEL, /* console_loglevel */

DEFAULT_MESSAGE_LOGLEVEL, /* default_message_loglevel */

MINIMUM_CONSOLE_LOGLEVEL, /* minimum_console_loglevel */

DEFAULT_CONSOLE_LOGLEVEL, /* default_console_loglevel */

};

Include/linux/kernel.h

#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 */

终端下更改printk打印级别

如何去更改printk的打印级别? 1.查看当前控制台的打印级别 # cat /proc/sys/kernel/printk 该文件有4个数字值,它们根据日志记录消息的重要性,定义将其发送到何处,上面 ...

C语言:类似linux内核的分等级DEBUG宏(打印宏)

总结几种log打印printf函数的宏定义 http://blog.chinaunix.net/uid-20564848-id-73402.html #include ...

更改printk打印级别

1.查看当前控制台的打印级别 cat /proc/sys/kernel/printk 4    4    1    7 其中第一个"4"表示内核打印函数printk的打印级别,只有 ...

41&period;Linux应用调试-修改内核来打印用户态的oops

1.在之前第36章里,我们学习了通过驱动的oops定位错误代码行 第36章的oops代码如下所示: Unable to handle kernel paging request at //无法处理内核 ...

限制printk打印频率函数printk&lowbar;ratelimit【转】

转自:http://blog.csdn.net/lkkey80/article/details/45190095 版权声明:博文地址 http://blog.csdn.net/lkkey80?view ...

更改printk打印级别【转】

本文转载自:http://blog.csdn.net/weed_hz/article/details/8949140 1.查看当前控制台的打印级别 cat /proc/sys/kernel/print ...

printk打印级别

默认级别 # cat /proc/sys/kernel/printk 4 4 1 7 分别是:控制台日志级别.默认的消息日志级别.最低的控制台日志级别和默认的控制台日志级别 举例 # echo 0 & ...

调整busybox中syslogd读取内核printk信息长度

busybox 默认读取内核printk信息长度256, 通过CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE宏可调整, 如下: #cd busybox-1.21.1#m ...

Nginx之旅系列 - Nginx日志功能 PK Linux内核printk

题记:Nginx之旅系列是用来记录Nginx从使用到源码学习的点点滴滴,分享学习Nginx的快乐 Nginx 首页: http://nginx.org/ Nginx日志功能 PK Linux内核pri ...

随机推荐

利用django创建一个投票网站(二)

创建你的第一个 Django 项目, 第二部分 这一篇从第一部分(zh)结尾的地方继续讲起.本节我们将继续写 Web 投票应用,并主要关注 Django 提供的自动生成的管理页面(admin site ...

数据库查询优化-SQL优化

1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默 ...

maya2105 - windows8 - numpy&sol;scipy

To compile numpy, create a site.cfg file in numpy's source directory with the following or similar c ...

Bear 實驗室&colon; 什麼是Git flow &quest; 如何在SourceTree使用Git flow管理開發&excl;

http://www.takobear.tw/12/post/2014/02/bear-git-flow-sourcetreegit-flow.html     Bear 實驗室: 什麼是Git ...

jquery 直接调用 wcf,面向服务的SOA架构 ( 第三天)

所谓万事 具备,只欠东风了!! 接下来就是 wcf 的调用, 首先 在客户端下,随便 写一个 html页面,然后写入如下方法:

linux设置printk打印级别,内核printk打印等级相关推荐

  1. 永久linux修改内核打印级别,终端下更改printk打印级别

    如何去更改printk的打印级别? 1.查看当前控制台的打印级别 # cat /proc/sys/kernel/printk 该文件有4个数字值,它们根据日志记录消息的重要性,定义将其发送到何处,上面 ...

  2. linux设置printk打印级别,printk打印等级

    cat /proc/sys/kernel/printk可以查询当前系统printk打印信息. zynq> cat printk 7       4       1       7 这四个数字分别 ...

  3. linux内核中printk的打印级别

    内核中预定义的内核log等级 // include/linux/kern_levels.h#define KERN_SOH "\001" /* ASCII Start Of Hea ...

  4. Linux 内核 printk打印

    调整内核打印信息级别: cat  /proc/sys/kernel/printk 7       7       1       7          其中第一个"7"表示内核打印 ...

  5. printk在应用层的设置方式及读取内核打印信息的方法

    如果 printk 中没有加调试级别,则使用默认的调试级别.注意,调试级别和格式化字符串之间没有逗号.当前控制台的各打印级别可以通过下面的命令来查看. # cat /proc/sys/kernel/p ...

  6. 终端下更改printk打印级别

    如何去更改printk的打印级别? (1)查看当前控制台的打印级别 # cat /proc/sys/kernel/printk 该文件有4个数字值,它们根据日志记录消息的重要性,定义将其发送到何处,上 ...

  7. Linux 内核打印级别

    printk的打印级别 #define KERN_EMERG "<0>" /* system is unusable */ #define KERN_ALERT &qu ...

  8. printk打印级别输出

    内核的打印函数和用户空间的打印函数是相同的,只是关键字不太一样,内核是printk,而用户空间则是printf. 在内核空间只不过有一个打印级别的设置,所谓的打印级别不过是几个宏定义 printk的打 ...

  9. 修改内核printk函数打印等级

    1.前言 内核是很庞大的,其中的打印信息也很多,太多的打印信息会拖慢内核的启动速度,也不利于我们查找有用的打印信息.于是内核有了打印优先级的机制,在用printk()打印信息时需要设置优先级,如果不设 ...

最新文章

  1. 开源全能播放器Vitamio的使用
  2. 关于 pip install mysqlclent安装失败 ERROR: No matching distribution found for mysqlclient 的解决方案
  3. JSP简单练习-EL获取表单数据
  4. 数据结构课程设计---学生信息管理系统
  5. 批处理系统和分时系统各具有什么特点?为什么分时系统的响应比较快?
  6. DNS的一些实际应用(一)
  7. python在材料模拟中的应用_材料模拟在计算机中使用的软件
  8. Altium Designer中PCB关于Import Changes报错最终解决方案
  9. 断网情况下,前端页面处理
  10. Java实现JPBC密码库的实验
  11. ESC/POS协议打印机工具类(java)
  12. 指导CoVaR,基于Copula、GARCH、DCC、分位数回归、藤VineCopula
  13. uniapp 打包app后,选择文件上传时,编辑上传文件
  14. AWS之Glue使用方法
  15. 字母序列号生成 A...Z..AA..ZZ....
  16. 快速拷贝文件经验及工具分享 - 天缘博客
  17. Java之Builder模式
  18. AC/DC 反激 (Flyback) 控制器
  19. 动态给div背景图片赋值
  20. 树莓派 EC20 mini pcie 开机自动拨号

热门文章

  1. horizon部署linux桌面,7-horizon仪表盘服务部署
  2. 网络编程套接字之预备知识
  3. 全基因组关联分析(GWAS)简介
  4. FBEC2021 | Unity大中华区平台技术总监杨栋:从Unity引擎出发,助推元宇宙技术实现
  5. 力扣一日一练(7)——爬楼梯(斐波那契数列)
  6. 达内培训python可以吗
  7. STM32实战 1 | STM32Cube生态系统认识与介绍
  8. Java - 锁和监视器有什么区别?
  9. 如何做html5山寨版愤怒的小鸟
  10. 网易易盾饶晓艳:内容安全“第三方”这条路,曾经不好“走”...