(请注意,我将这个问题作为一个独立的问题与我之前提出的问题分开:Linux 显示设备文件到底是如何工作的?)
我有一个从头开始构建的 Linux 系统(包括内核)并安装在 Apple Macbook 2,1 上(只是一个基本的文本控制台,没有 X 服务器)。系统一直工作正常,直到大约一个月前,当我开始遇到显示问题时。现在,当我启动系统时,GRUB 菜单就会出现,此时,显示屏看起来绝对正常 - 没有闪烁,什么也没有。完美的。然而,当我启动 LFS(在调试模式下)时,我看到大量启动消息飞过,然后屏幕变成空白。我知道系统正在启动,因为我可以“盲”登录并执行命令。
我怀疑问题可能出在 i915 GPU 驱动程序上(我听说它是出了名的错误),所以我重建了内核以排除 i915 和 drm 的模块。基本上,我只想使用帧缓冲区(即 efifb 或 vesafb)并完全绕过 GPU。然而,黑屏问题不断发生并且不会消失。我已经尝试了很多事情,并且一直在挖掘日志和初始化文件,一旦 udev 加载并开始处理 uevents,它似乎就会发生。我一直在修改 udev 规则文件,但似乎无法识别导致问题的特定规则。
有谁知道可能是什么原因造成的?令人沮丧的是,当 GRUB 菜单出现时,显示器似乎工作得很好 - 似乎如果我能让 Linux 在启动时不理会显示器设置,就不会有任何问题。
(我还应该提到我有自由引导安装在这台 Macbook 上,这是一个仅包含免费固件的 coreboot 版本)