我最近在我的 Apple Macbook 笔记本电脑上构建了一个 Linux From Scratch 系统;但是,我一直在努力了解图形硬件以及需要启用哪些内核驱动程序选项。
LFS 系统(目前)是一个相当小的系统,可以启动到 Bash,但没有 X Window 系统或任何 DE。该笔记本电脑是 Macbook 2,1,包含 Intel GMA 950 图形芯片。我已经在内核中启用了我认为适合该 GPU 的驱动程序,即 i915 驱动程序;但是,除非我还启用了与“帧缓冲设备”相关的一些其他选项(我尚未确定确切的配置选项),否则在启动过程中屏幕上不会打印任何内容(尽管屏幕会多次更改为不同的黑色阴影) )。
有人可以解释一下这是怎么回事吗?如果 i915 驱动程序对于 GPU 来说是正确的,那么这难道不足以让系统将终端输出打印到屏幕上吗?如果没有,那么除了 i915 驱动程序之外我还需要什么?
我还在同一台笔记本电脑上安装了 Trisquel,它可以正常启动到 LXDE 环境,并且根据lsmod
,i915 驱动程序是正确的,并且内核似乎没有加载任何与帧缓冲区相关的驱动程序。
我很困惑!
答案1
我自己对此进行了一些研究,简短的答案似乎是:是的 - 我需要一个帧缓冲区来启用控制台。
根据维基百科的文章Linux控制台,控制台有两种模式:文本模式和帧缓冲。从描述来看,文本模式似乎非常基本,可能不适用于所有图形硬件。因此,剩下的就是帧缓冲区控制台,这显然需要帧缓冲区才能工作。
我将 的输出复制lsmod
到一个文件中,用于我让它工作的内核配置,当通过管道传输到 时,该文件显示了这一点grep fb
:
$ less lsmod_LFS | grep fb
fbcon 49152 70
bitblit 16384 1 fbcon
fbcon_rotate 16384 1 bitblit
fbcon_ccw 16384 1 fbcon_rotate
fbcon_ud 20480 1 fbcon_rotate
fbcon_cw 16384 1 fbcon_rotate
softcursor 16384 4 fbcon_ud,fbcon_cw,fbcon_ccw,bitblit
cfbfillrect 16384 1 drm_kms_helper
cfbimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
cfbcopyarea 16384 1 drm_kms_helper
fb 65536 8 fbcon_ud,fbcon_cw,fbcon_ccw,bitblit,softcursor,i915,fbcon,drm_kms_helper
fbdev 16384 2 fb,fbcon
因此,它使用帧缓冲区控制台(fbcon)。
下一个问题是为什么我无法再加载 fbcon 模块(这似乎是屏幕上没有打印任何内容的原因)。