printk打印无输出是的解决方法

打印级别格式:

printk(KERN_EMERG " 1111111 KERN_EMERG\n");

printk( "<0> 1111111 KERN_EMERG\n");

*******************************************************************************

1.基本解决方法(如果这种方法不行,结尾处说明另一种小众原因)

用到的命令

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

    2>echo 8 > /proc/sys/kernel/printk 设置当前的日志级别

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

使用printk时,Linux内核根据日志级别,可能把消息打印到当前控制台上,这个控制台是一个字符设备。这些消息从终端输出的前提是日志输出级别小于console_loglevel。

(越小级别越高)

日志级别有八个:0-7

上面显示的数字:4、4、1、7分别对应控制台日志级别、默认的消息日志级别、最低的控制台日志级别和默认的控制台日志级别。

2.小众错误(我就是在这个上面死的)

通过ssh或者telent建立的命令行无法接受printk的输出,可以通过串口命令工具查看到。算是不彻底的解决吧,

具体原因日后补全。

猜你喜欢

转载自blog.csdn.net/wx601056818/article/details/80113983