Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1088615
  • 博文数量: 132
  • 博客积分: 612
  • 博客等级: 中士
  • 技术积分: 1389
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-14 16:06
文章分类

全部博文(132)

文章存档

2015年(2)

2014年(55)

2013年(53)

2012年(2)

2011年(20)

分类: LINUX

2013-06-05 15:28:43

有时候看代码明明已经用了printk但是在加载进kernel的时候却不能打印出来信息,而自己用printk(“xxx”)却可以打印出来。why?
仔细对比发现,不能打印的printk()调用方式与能打印的printk()有区别,前者一般是printk(KERN_DEBUG msg);这样调用的,其中KERN_DEBUG表示输出的级别,很明显,没有打印出来是因为设置的级别不够,默认的kernel是设置为4的,而KERN_DEBUG是7的,通过
cat 7 /proc/sys/kernel/pritnk
可以修改printk的级别。
具体的可以从源码中看到 include/linux/printk.h
或是make menuconfig的时候从kernel hacking中看到log级别。

附上:

点击(此处)折叠或打开

  1. #defineKERN_EMERG""/*紧急事件消息,系统崩溃之前提示,表示系统不可用*/
  2. #defineKERN_ALERT""/*报告消息,表示必须立即采取措施*/
  3. #defineKERN_CRIT""/*临界条件,通常涉及严重的硬件或软件操作失败*/
  4. #defineKERN_ERR""/*错误条件,驱动程序常用KERN_ERR来报告硬件的错误*/
  5. #defineKERN_WARNING""/*警告条件,对可能出现问题的情况进行警告*/
  6. #defineKERN_NOTICE""/*正常但又重要的条件,用于提醒。常用于与安全相关的消息*/
  7. #defineKERN_INFO""/*提示信息,如驱动程序启动时,打印硬件信息*/
  8. #defineKERN_DEBUG""/*调试级别的消息*/


阅读(7170) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~