gpt4 book ai didi

linux - 如何在引导时捕获整个内核 panic

转载 作者:IT王子 更新时间:2023-10-29 00:31:35 25 4
gpt4 key购买 nike

我正在尝试使用 Buildroot 构建自定义内核。在构建镜像并在 VirtualBox 环境中启动它之后,内核总是在 GRUB 阶段之后出现 panic。我所见的一般总结:

] CPU: 0 PID: 1 ...
] Hardware name: innotek GmbH ...
] <some registers>
] Call Trace:
] [<c0a1c995>] dump_stack+...
] [<........>] panic+...
] [<........>] do_exit+...
] ...
] Kernel Offset: 0x0 from 0xc0400000 ...
] ---[ end Kernel panic - not syncing: Attempted to kill init! ...

现在,我假设这只是我想看到的消息的尾部,但我没有办法查看它(例如:不能 Shift-PageUp)。发生 panic 时,上面的文本一秒钟都不会在屏幕上呈现。

我首先偶然发现了一个 KernelDebuggingTricks page其中指出:

Slowing down kernel messages on boot

... [Build] the kernel with the following option enabled:

CONFIG_BOOT_PRINTK_DELAY=y

And boot the machine with the following kernel boot parameter:

boot_delay=N

我已确认我的内核 (3.16) 已使用 CONFIG_BOOT_PRINTK_DELAY 选项构建,并尝试在我的 GRUB 中将 boot_delay 设置为 10、500 和 1000 毫秒。即使设置了 1000 毫秒的延迟(并等待大约 5 分钟),整个内核 panic 日志消息也会在眨眼间喷出。

有没有人对我如何查看内核 panic 的根源有任何建议?我现在唯一想的是手动将 sleep 添加到内核代码中(这是我想避免的事情)。

最佳答案

通过将console=ttyS0 console=tty0 添加到启动参数来配置您的虚拟机以登录到串行控制台以及控制台,然后配置您机器的串行端口(在 VirtualBox设置)输出到文件。如果发生内核 panic ,详细信息将在该文件中结束。

详情请见:https://www.virtualbox.org/wiki/Serial_redirect

关于linux - 如何在引导时捕获整个内核 panic ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25334587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com