#关闭内核打印信息
echo "1 4 1 7" > /proc/sys/kernel/printk
#打开内核的打印信息,有些板子默认打开了。数字越小优先级越高
echo "7 4 1 7" > /proc/sys/kernel/printk
分别表示:
当前控制台日志级别
默认消息日志级别
最小的控制台级别
默认控制台日志级别
无论当前控制台日志级别是何值,即使没有在控制台打印出来:
1.打印内核所有信息:dmesg。
2.还可以使用 cat /proc/kmsg& 后台运行,实时打印出调试信息
内核log缓冲区有大小限制,CONFIG_LOG_BUF_SHIFT宏可调整
3.log_buf存放消息
当uboot的命令行里的“console=tty1”时,表示printk()输出在开发板的LCD屏上
当uboot的命令行里的“console=ttySA0,115200”时,表示printk()输出在串口UART0上,波特率=115200
当uboot的命令行里的“console=tty1 console=ttySA0,115200”时,表示printk()同时输出在串口上,以及开发板的LCD屏上
显然printk(),还是根据命令行参数来调用不同控制台的硬件处理函数
内核又是怎么根据上面命令行参数来确定printk()的输出设备?
printk函数的用法
Linux程序调试–printk
驱动程序调试方法之printk——printk的原理与直接使用
38.驱动调试——printk
驱动调试神器printk你掌握了吗?