【发布时间】:2014-10-09 16:06:42
【问题描述】:
我正在尝试使用 Buildroot 进行自定义内核构建。在构建映像并在 VirtualBox 环境中启动它之后,内核总是在 GRUB 阶段后出现恐慌。我所看到的一般摘要:
] 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)。当恐慌发生时,上面的文本永远不会在屏幕上呈现一秒钟。
我第一次偶然发现了KernelDebuggingTricks page,它说:
启动时减慢内核消息
... [构建] 启用以下选项的内核:
CONFIG_BOOT_PRINTK_DELAY=y
并使用以下内核引导参数引导机器:
boot_delay=N
我已确认我的内核 (3.16) 已使用 CONFIG_BOOT_PRINTK_DELAY 选项构建,并已尝试在我的 GRUB 中将 boot_delay 设置为 10、500 和 1000 毫秒。即使设置了 1000 毫秒的延迟(并等待大约 5 分钟),整个内核恐慌日志消息也会在眨眼间喷出。
有人对我如何查看内核恐慌的根源有任何建议吗?我现在唯一想到的就是在内核代码中手动添加睡眠(这是我想避免的)。
【问题讨论】:
-
“上面的文字永远不会在屏幕上呈现一秒钟。” -- 嗯?你能用积极的语气和没有否定的语气来说明会发生什么吗?您是否尝试将系统控制台分配给允许记录/捕获的串行端口(又名 tty)(在内核命令行中)?
-
尝试了你自己和duskwulf提到的串口;谢谢。
-
任何想法,有什么问题?我也试图在 VM 环境中加载自定义内核,它的恐慌类似于你的......你如何进行的任何提示?
标签: linux debugging linux-kernel virtualbox