我的手刹/ffmpeg 有问题。转码约 5 分钟后,计算机锁定。我相当确定这是内核恐慌,因为大写锁定开始闪烁。
关于该做什么和一些关于特定错误有一些合乎逻辑的问题,但我真的在追求一件事:在一切都消失之前发生了什么?!
我已经检查过了/var/log/kern.log,当时我看到的只是我粘在 DVD 中,然后几分钟后,系统启动了。没有错误,没有恐慌通知。
有没有办法强制记录恐慌?我相当确定我可以重现这个(我最近尝试过的次数是 100%)所以虽然我宁愿这“只是有效”,但如果这意味着我可以重新启动几次,我很高兴找到恐慌的原因。
Cae*_*ium 29
如果它真的是内核恐慌,那么它不会通过正常方法写入日志。由于此时内核已经崩溃,因此写入文件系统是一项冒险的操作——不再可以信任大部分内核,因此写入日志实际上可能会在您的引导加载程序上喷出随机废话!
相反,您可以将内存内容转储到交换中,然后稍后对其进行调试。这称为内核崩溃/核心转储。
Ubuntu Wiki 有一个可能有用的CrashdumpRecipe - 虽然它看起来有点过时,但我认为不应该改变太多。
Bru*_*ira 24
您在 Ubuntu 中的所有系统日志都由rsyslog它将其配置保存在/etc/rsyslog.conf和 中处理/etc/rsyslog.d/。
有关如何配置rsyslog和可能的选项的更多信息,请访问rsyslog.conf man page.
打开/etc/rsyslog.d/50-default.conf你可以看到其中一行包含
*.*;auth,authpriv.none -/var/log/syslog*
这意味着在这种情况下您要查找的文件是/var/log/syslog您可能拥有的任何大型日志。
可以看到文件名也是以a开头的-,这意味着文件在写入之前被缓存,这很好,但会给你留下一个坏日志,你想要的是一旦出现问题就写入日志。删除破折号并重新启动或重新加载rsyslog,然后再次使您的计算机崩溃,请检查/var/log/syslog。
串行端口
串口是计算机之间简单的低级通信机制。
好处:
缺点:
串口如下所示:
在 RPI 上可以通过 GPIO 获得,这是它的样子(在另一侧有一个笔记本电脑的 USB 接口):
可以在此处查看使用中的 uller 示例。
然后,如果您有所需的硬件,请使用以下命令从第二台计算机连接到主计算机:
screen /dev/ttyS0 115200
Run Code Online (Sandbox Code Playgroud)
这实际上为您提供了一个外壳。
然后在主机上,启动panic的操作。
当恐慌发生时,恐慌转储被传输到第二台机器,你可以通过在终端上向上滚动来看到这一切。
其他方法
还有其他方法可以克服上述硬件限制,但代价是更复杂和更不可靠。值得注意的方法:
另见这个很好的答案:https : //unix.stackexchange.com/questions/60574/determining-cause-of-linux-kernel-panic
步进调试
最终,获得恐慌输出需要一些内核功能工作,任何内核功能都可能被恐慌破坏。
但是,如果您可以在内核上使用 GDB,谁需要恐慌呢?如果你是那个铁杆,看看:
一旦您拥有完全的可见性(并且有足够的时间!),每个问题都会解决。
| 归档时间: |
|
| 查看次数: |
113374 次 |
| 最近记录: |