對於沒有 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 驅動程序是正確的,核心似乎沒有載入任何與幀緩衝區相關的驅動程序。我很困惑!
我自己一直在對此進行一些研究,簡短的回答似乎是:是的 - 我需要一個幀緩衝區來啟用控制台。
根據維基百科關於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 模組(這似乎是我的螢幕上沒有列印任何內容的原因)。