linux内核打印数据到串口控制台,printk数据不打印问题

转载地址:https://www.cnblogs.com/wmx-learn/p/5344821.html

1、查看当前控制台的打印级别
 cat /proc/sys/kernel/printk
 4    4    1    7
 其中第一个“4”表示内核打印函数printk的打印级别,只有级别比他高的信息才能在控制台上打印出来,既 0-3级别的信息

2、修改打印
 echo "新的打印级别  4    1    7" >/proc/sys/kernel/printk

3、不够打印级别的信息会被写到日志中可通过dmesg 命令来查看

4、printk的打印级别

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

5、printk函数的使用

  printk(打印级别"要打印的信息")这里需要注意打印级别和需要打印的数据中中间没有逗号

       打印级别  既上面定义的几个宏

KERN_EMERG 
  用于突发性事件的消息,通常在系统崩溃之前报告此类消息。 
KERN_ALERT
  在需要立即操作的情况下使用此消息。 
KERN_CRIT 
  用于临界条件下,通常遇到严重的硬软件错误时使用此消息。 
KERN_ERR
  用于报告错误条件;设备驱动经常使用KERN_ERR报告硬件难题。 
KERN_WARNING
  是关于问题状况的警告,一般这些状况不会引起系统的严重问题。 
KERN_NOTICE 
  该级别较为普通,但仍然值得注意。许多与安全性相关的情况会在这个级别被报告。 
KERN_INFO
  信息消息。许多驱动程序在启动时刻用它来输出获得的硬件信息。

KERN_DEBUG 

 

猜你喜欢

转载自blog.csdn.net/kunkliu/article/details/80429928