如何从控制台保存或长时间查看Linux内核BUG消息?

时间:2015-05-07 08:12:21

标签: linux console kernel tty

我正在尝试为linux内核开发设备驱动程序,但我在调试错误消息方面遇到了问题。

我在桌面(x64)上使用linux内核(ubuntu 14.04,我也尝试过ubuntu服务器14.04)。 并且,我正在使用tty控制台(ctrl + alt + f1)进行测试,因为当我将日志级别设置为7时,tty控制台总是打印printk消息。

我的问题是,首先我的开发设备驱动程序代码存在错误,其次,我无法得到错误的实际原因,因为我无法查看除最后留下的几条错误消息之外的所有错误消息。

我试过ssh进行调试,(测试PC是ssh服务器,ssh客户端从ssh中拉dmesg或者ftrace printk消息)但是ssh服务器比内核bug消息早死了,所以我只能看到来自监视器的bug消息用tty控制台。

我也尝试使用较小尺寸的控制台字体,但这只是暂时的解决方案。

所以,我的问题是,有没有适合这个问题的调试技术?

喜欢,在第一个bug消息后停止打印内核bug消息,或者使用硬件或其他东西将tty console重定向到其他PC ..

请帮我解决问题 谢谢,

1 个答案:

答案 0 :(得分:0)

您可以通过修改 rsyslog.conf 将各种系统日志流(包括出现在dmesg中的日志流)重定向到任何终端或文件。

签入时您已经有类似于

的行
kern.* /some/file

/some/file应包含发送给dmesg的邮件。如果不存在此类行,请创建一行。如果由于某些原因无效,请将kern.*替换为*.*并尝试使用此方式。

你也可以使用像dmesg > /var/log/dmesg这样的命令将dmesg的内容推送到一个文件,这可以由Cron定期完成。