对于没有 X 的最小 CLI 系统,我是否需要帧缓冲区驱动程序?

对于没有 X 的最小 CLI 系统,我是否需要帧缓冲区驱动程序?

我最近在我的 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 模块(这似乎是屏幕上没有打印任何内容的原因)。

相关内容