Drivers

對於沒有 X 的最小 CLI 系統,我是否需要幀緩衝驅動程序?

  • December 2, 2017

我最近在我的 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 驅動程序是正確的,核心似乎沒有載入任何與幀緩衝區相關的驅動程序。

我很困惑!

我自己一直在對此進行一些研究,簡短的回答似乎是:是的 - 我需要一個幀緩衝區來啟用控制台。

根據維基百科關於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 模組(這似乎是我的螢幕上沒有列印任何內容的原因)。

引用自:https://unix.stackexchange.com/questions/408274