【问题标题】:Where could I find the oops info from kernel logs我在哪里可以从内核日志中找到 oops 信息
【发布时间】:2015-03-08 15:27:59
【问题描述】:

我是驱动程序开发的新手。我已经根据 Linux Device Driver 第 4 章配置了我的 linux 内核,启用了很多调试配置。当我尝试测试我编写的驱动程序时,内核发出 oops。然而,这 oops 立即被大量其他调试信息刷新。那么,我在哪里可以找到一闪而过的 oops 信息。

对了,谁能解释一下下面调试信息的含义?

[ 1698.129712] evbug: Event. Dev: input0, Type: 0, Code: 0, Value: 0

这种类型的消息被屏幕刷新,我什至无法阻止它们。

【问题讨论】:

    标签: linux kernel linux-device-driver device-driver


    【解决方案1】:

    为了避免大量无用信息(在您的情况下),您必须仅启用调试模块真正需要的信息。我强烈建议禁用您启用的所有内容。然后根据具体情况,您可以启用调试功能。

    接下来,内核中有一个很好的框架,叫做Dynamic Debug。它允许在运行时启用或禁用某些调试消息(确保您在 Linux 内核配置中有 CONFIG_DYNAMIC_DEBUG=y)。更详细的描述在Documentation/dynamic-debug-howto.txt

    evbug 是一个在内核中监控输入事件的模块。它可以发出一条消息。它非常简单,您可以在 drivers/input/evbug.c 中查看。不幸的是,它直接使用printk() 调用,您无法通过动态调试来操作它的输出。

    最后,您的主题问题的答案是检查dmesg 命令的输出。但请注意,用于输出的内核缓冲区足够小,如果您有很多日志,您可能会错过其中的一些。

    【讨论】:

    • 您的回答对我帮助很大。我发现evbug 被编译为不在内核中的模块,所以如果我不使用它,我可以从系统中手动卸载它。
    猜你喜欢
    • 2023-03-19
    • 2021-11-04
    • 2022-01-23
    • 2018-07-02
    • 2011-03-03
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    相关资源
    最近更新 更多