我试图了解 SATA 主机设备通信,为此我在内核驱动程序代码中放入了大量调试消息。现在消息数量如此巨大,以至于我无法在 dmesg 日志中看到设备枚举的初始消息。同样,我修改了 CONFIG_LOG_BUF_SHIFT(=21) 配置变量以增加 dmesg 获取消息的环形缓冲区大小,但我仍然面临同样的问题。
那么,是否有任何方法可以将内核启动中的所有 dmesg 记录到特定文件中?
我在这里先向您的帮助表示感谢。
答案1
您可以使用:
cat /var/log/dmesg > file.txt
并使用:
head /var/log/dmesg
如果你想查看 dmesg 的第一行。
更多规格请参见“人头”。 “>”符号将“cat”的输出重定向到“file.txt”
答案2
有一个名为的命令dmesg
会将日志打印到标准输出。您可以将标准输出重定向到文本文件。
dmesg > /path/to/dmesg.txt
你可以扩展这个。一个真正有用的选项是在您的~/.profile
文件(在您的主目录中)中添加一行,该行在登录时附加 dmesg 的输出。只需添加一行:
dmesg >> /path/to/dmesg.txt
如果您只想要前几行(0.000000 条消息),您可以head
像这样通过管道将其输入。
使用标准输出:
dmesg | head
或head
使用已保存的 .txt 文件。
head /path/to/dmesg.txt
差不多就这些了,希望对你有帮助!
编辑:顺便说一句,这确实包含 0.000000 条消息