Linux kernel 确定内核在启动时挂起的原因

Linux kernel 确定内核在启动时挂起的原因,linux-kernel,gentoo,Linux Kernel,Gentoo,你好: 我正在为我的GentooLinux构建内核。当我启动内核时,我 收到这个消息,不能继续了 pci_hotplug: PCI Hot Plug PCI Core version: 0.5 non-volatile memory driver v1.3 i don't know how to solve this problem . and i need help . thanks . 为什么不尝试禁用内核中的pci热插拔支持(如果我没记错的话,请参阅主配置菜单/pci支持)?你可能不

你好: 我正在为我的GentooLinux构建内核。当我启动内核时,我 收到这个消息,不能继续了

pci_hotplug: PCI Hot Plug PCI Core version: 0.5
non-volatile memory driver v1.3


i don't know how to solve this problem . and i need help . thanks .

为什么不尝试禁用内核中的pci热插拔支持(如果我没记错的话,请参阅主配置菜单/pci支持)?你可能不需要这个。

我不同意那些投票结束的人,因为我认为这里真的有一个问题,问题是“如何调试这个?”

我将提出两种方法:

1) 好学的方法:了解用于处理引导问题的机制。看看是否可以提高内核调试消息级别。按照测验建议禁用不需要的驱动程序

2) 牛仔式方法:grep内核源代码以查找最终消息中看到的字符串,并开始使用您自己的“仍然活着”printk消息对所有可能相关的代码位进行快照。一旦你知道它挂在哪里,找出原因,要么移除该机制,要么修复它

在极端情况下,还有一个用于调试内核的工具——kgdb——如果有第二台机器可用,您可以设置它

如果此框中已经运行了linux,请查看/proc或引导文件夹中是否有config.gz,您可以提取该文件并与尝试编译的配置进行比较。首先重新编译并测试与您运行的版本和配置完全相同的版本和配置,然后逐个进行所需的更改,这可能不是一个坏主意


此外,您还可以查看系统中是否有可以临时删除的奇怪硬件。例如,如果我在引导期间插入了一个大型USB外部驱动器,我拥有的一台旧电脑的bios在驱动器枚举期间会挂起

我通过在内核配置文件中启用所有pci热插拔标志解决了这个问题。
想都想。

这里没有足够的信息来帮助您。你需要添加更多的细节;这个问题无法回答。@sharth-你认为应该添加什么样的细节?@Chris Stratton:他说他收到了两条信息:和。这些都是信息性消息,实际上并不描述问题。如果他描述了他想要解决的问题,那会很有帮助。@Chris Stratton:我也不确定你是如何从这篇文章中引出“内核无法启动”的问题的。但是,这两条消息都与此无关,因为它们没有报告错误情况。我不知道“非易失性内存驱动程序v1.3”是否是由“pci_热插拔:pci热插拔pci核心版本:0.5”导致的。请对源代码进行grep,并查找这些字符串所在的文件。他们有关系吗?或不相关的组件,它们恰好按顺序启动?