我是一个更新的驱动程序开发。我根据 Linux设备驱动程序 chaper 4配置了我的linux内核,启用了大量的调试配置。当我尝试测试由我编写的驱动程序时,内核会发出一个oops。然而,这些oops立即被其他调试信息块刷新。那么,我在哪里可以找到闪光灯中出现的oops信息。
顺便问一下,任何人都可以解释下面调试信息的含义吗?
[ 1698.129712] evbug: Event. Dev: input0, Type: 0, Code: 0, Value: 0
这种类型的消息被屏幕刷新,我甚至无法阻止它们。
答案 0 :(得分:1)
为了避免大量无用信息(在您的情况下),您必须仅启用并且仅启用您需要调试模块的内容。我强烈建议禁用您启用的所有内容。然后根据具体情况启用调试功能。
接下来,内核中有一个名为Dynamic Debug的好框架。它允许在运行时启用或禁用某些调试消息(确保在Linux内核配置中有CONFIG_DYNAMIC_DEBUG=y
)。有关详细说明,请参阅Documentation/dynamic-debug-howto.txt。
evbug
是一个监视内核中输入事件的模块。它可以发出一条消息。你可以在drivers / input / evbug.c查看它非常简单。不幸的是,它直接使用printk()
调用,您无法通过动态调试来操作其输出。
最后,您的主题问题的答案是检查dmesg
命令的输出。但要注意输出的内核缓冲区足够小,如果你有很多日志,你可能会错过其中一些。