linux - 如何在启用调试日志的情况下编译内核模块

标签 linux logging kernel driver printk

我已经下载了 linux 内核源代码 v4.2.0 并构建了它。现在我正在尝试编译一个驱动程序模块并在控制台上查看调试日志。

我正在通过以下命令编译模块:

make -C /lib/modules/4.2.0-16-generic/build M=$PWD

还启用了所有内核调试日志,如下所示:

    #echo 8 > /proc/sys/kernel/printk

    sanjeev@sanjeev:~$ cat /proc/sys/kernel/printk
    8   4   1   7

当我加载此模块时,无法使用 dmesg 查看内核日志(具有日志级别)。如果我使用 printk("Some message") 打印消息,它会在控制台上打印,但是如果我通过 printk(KERN_INFO, "Some message") 它没有打印在控制台上。编译模块时是否缺少任何配置?

最佳答案

这个问题是因为 printk 中日志级别后的逗号 ',' 它应该是 printk(KERN_INFO "Some message")

关于linux - 如何在启用调试日志的情况下编译内核模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40653110/

相关文章:

android - P线程和k线程

linux - 保护 RPi SD 卡在日常电源循环中免遭损坏

php - Laravel 在非对象上调用成员函数 parameters()

logging - 如何在 Docker 容器内为 iptables 启用日志记录?

linux - 控制程序执行

linux - 使用 linux 内核模块计算 cpu-time 来执行函数?

linux shell获取多文件交集

linux - Yocto Bitbake - Git Fetch 总是卡住

linux - 在 Linux bash 中, sleep 一定的数字会永远持续下去

java - Log4j2,如何使用命令行参数控制日志输出目录