我正在调试我的设备,它使用qc7000驱动程序(qca_spi.c)
它有一堆有用的netdev_dbg消息散落在周围。
如何访问存储这些消息的日志?
发布于 2021-04-19 11:50:59
Short答案:这些打印应该总是显示在/proc/kmsg中,这样您就可以运行
$ cat /proc/kmsg去看他们。每个条目甚至指定它旁边的日志级别,因此查找以“<7>”开头的条目。
More信息: netdev_dbg()是在include/linux/netdevice.h中定义的宏,它最终导致对netdev_printk(KERN_DEBUG,.)的调用。这将导致带有KERN_DEBUG日志级别的printk()调用。每个系统都有自己的printk配置,它定义哪些级别将打印到dmesg,哪些级别将被忽略。不过,无论日志级别如何,所有printk调用都将打印到/proc/kmsg。
您可以通过运行以下命令来检查dmesg设置:
$cat /proc/sys/kernel/printk该文件的输出有4个值:当前、默认、最小和启动时间默认级别.你对“当前”很感兴趣。对我来说,重启后的调试级别是3 (KERN_ERR)。这意味着任何级别为>= 3的printk调用都将被忽略:
$cat /proc/sys/kernel/printk
3 4 1 7您可以通过多种方式更改这一点,我使用了dmesg -n并将其设置为'8‘,这将打印调试级别printk调用:
$sudo dmesg -n 8
$cat /proc/sys/kernel/printk
8 4 1 7完成此操作后,您应该能够在dmesg中看到调试打印。
备注:
有关printk和打印级别的更多信息:https://elinux.org/Debugging_通过_printing#Log_级别
https://unix.stackexchange.com/questions/642666
复制相似问题