Linux 内核在 Pentium 4 上的“切换到时钟源 tsc”时挂起

rfm*_*tor 12 linux linux-kernel

硬件:戴尔 Dimension 4500S:i845G、奔腾 4、库存 + 2GB RAM 和最新(大约 2002 年)BIOS 更新。

我一直在从源代码构建 Linux 系统,到目前为止它是本书的LFS 7.0。我构建的第一个内核运行良好,但有很多问题和膨胀,所以我现在正在为我的目标硬件优化内核(见上文)。

我最近的配置尝试,以及几次尝试和错误的变化,一直在打印“切换到时钟源 tsc”语句上。我的“好”内核从来没有出现过问题……顺便说一下,这是 3.1.0 版。两者都是从相同的源代码树构建的,没有补丁make mrpropermake menuconfig、 等,所以显然我只是缺少一些关键CONFIG_XXX标志。

我已经盯着这个问题一天多了,我已经构建了多少次内核,但无济于事。

我觉得有趣的一件事是我得到的好内核:

# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
tsc
Run Code Online (Sandbox Code Playgroud)

另外,了解一下可能很有用....

# cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc acpi_pm
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种选项的构建配置,但此时我不记得任何细节,所以请不要问。从我的搜索中,我发现并测试了几个内核参数,比如clocksource=pitnotsc,但所有这些都失败了。再一次,我希望我已经写下了迄今为止我尝试过的每一件事,事后看来……

大多数论坛示例都是针对 2.x 内核的,并通过引导选项的一些变化解决了问题,但我的好内核仅使用root=/dev/sdaX ro. 所以我知道如果我能找到正确的构建配置,我对这个硬件和内核 3.1.0 组合很满意。

此外,大多数发布类似问题的人都说几分钟后系统将继续加载并且一切正常。我已经让它闲置了足够长的时间来做晚饭,但它仍然没有恢复加载。

我希望你们中的一位大师会读到这个并说“嘿,是的,我只是在我的 P4 恐龙上设置了 CONFIG_XXX=y,它工作得很好。” :)

让我知道您需要我尝试或检查什么,我很乐意发布结果。

har*_*ymc 8

通过快速搜索,这个问题似乎有很多可能的原因,并且似乎表明您的新内核的时钟源默认值对于您的主板是错误的。

某些人有用的一个建议是使用clocksource=hpetclocksource=acpi_pm

另一个线程中,有人用 修复了这个问题clocksource=jiffies,另一个建议尝试noapicnolapic,另一个在 BIOS 中关闭 acpi,还有一个人指责 Synaptics 触摸板并通过删除 Xorg.conf 解决了他的问题。

一位内核构建者通过在没有 fbcondecor 的情况下重新编译 initrd 解决了他的问题。

希望这会有所帮助,因为这个问题似乎有很多原因。