如何讓我的幀緩衝控制台工作?
我有一台執行我建構的 Linux From Scratch 系統的 Apple MacBook。這是一個最小的系統,只是啟動到一個 bash 提示符,沒有安裝 X Window 系統。圖形晶片是 Intel GMA 950,它使用 i915 驅動程序。以前,我讓它啟動到幀緩衝控制台;但是,前幾天我調整了一些核心配置設置,現在幀緩衝區控制台似乎不再載入(儘管螢幕變黑然後在啟動過程中重置)。
愚蠢的是,我沒有為我正在工作的設置保存核心配置文件,儘管我確實列印了
lsmod
該設置的命令,其中顯示了載入了哪些核心模組:Module Size Used by ccm 20480 6 hid_generic 16384 0 isight_firmware 16384 0 usbhid 32768 0 i915 1343488 1 i2c_algo_bit 16384 1 i915 arc4 16384 2 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 drm_kms_helper 114688 1 i915 ath9k 81920 0 cfbfillrect 16384 1 drm_kms_helper ath9k_common 16384 1 ath9k syscopyarea 16384 1 drm_kms_helper cfbimgblt 16384 1 drm_kms_helper ath9k_hw 389120 2 ath9k,ath9k_common sysfillrect 16384 1 drm_kms_helper sysimgblt 16384 1 drm_kms_helper mac80211 405504 1 ath9k fb_sys_fops 16384 1 drm_kms_helper cfbcopyarea 16384 1 drm_kms_helper drm 282624 3 i915,drm_kms_helper ath 28672 3 ath9k_hw,ath9k,ath9k_common pata_acpi 16384 0 intel_agp 16384 0 coretemp 16384 0 video 36864 1 i915 uhci_hcd 40960 0 pcspkr 16384 0 backlight 16384 2 video,i915 ehci_pci 16384 0 ehci_hcd 73728 1 ehci_pci ata_piix 36864 0 rng_core 16384 0 intel_gtt 20480 2 intel_agp,i915 fb 65536 8 fbcon_ud,fbcon_cw,fbcon_ccw,bitblit,softcursor,i915,fbcon,drm_kms_helper agpgart 32768 3 intel_agp,intel_gtt,drm evdev 24576 0 fbdev 16384 2 fb,fbcon mac_hid 16384 0
因此,您可以看到fbcon(它是幀緩衝區控制台的驅動程序)已載入。
但是,
lsmod
較新的核心版本(未載入控制台)的輸出如下:Module Size Used by hid_generic 12288 0 arc4 12288 2 i915 1314816 0 usbhid 28672 0 prime_numbers 12288 1 i915 i2c_algo_bit 12288 1 i915 drm_kms_helper 98304 1 i915 cfbfillrect 12288 1 drm_kms_helper syscopyarea 12288 1 drm_kms_helper cfbimgblt 12288 1 drm_kms_helper pata_acpi 12288 0 sysfillrect 12288 1 drm_kms_helper ath9k 73728 0 ath9k_common 12288 1 ath9k ath9k_hw 368640 2 ath9k,ath9k_common sysimgblt 12288 1 drm_kms_helper fb_sys_fops 12288 1 drm_kms_helper cfbcopyarea 12288 1 drm_kms_helper mac80211 356352 1 ath9k coretemp 12288 0 ata_piix 32768 0 ath 24576 3 ath9k_hw,ath9k,ath9k_common drm 241664 3 i915,drm_kms_helper uhci_hcd 36864 0 video 32768 1 i915 intel_agp 12288 0 pcspkr 12288 0 intel_gtt 16384 2 intel_agp,i915 fb 57344 2 i915,drm_kms_helper ehci_pci 12288 0 ehci_hcd 65536 1 ehci_pci agpgart 28672 3 intel_agp,intel_gtt,drm rng_core 12288 0 fbdev 12288 1 fb backlight 12288 2 video,i915 evdev 20480 0 mac_hid 12288 0
fb,fbdev,i915,drm,intel_agp都在那裡,但fbcon不是。
有誰知道fbcon沒有載入的可能原因?
**編輯:(**回答評論中的問題)
的輸出
grep CONFIG_FRAMEBUFFER_CONSOLE .config
是:$ grep CONFIG_FRAMEBUFFER_CONSOLE .config CONFIG_FRAMEBUFFER_CONSOLE=m CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
fbcon
被配置為一個模組(就像在以前的設置中一樣)。我相信第二行意味著它應該預設將 fbcon 設置為主顯示設備。更新:
我手動載入了模組,使用
modprobe fbcon
它並且它工作 - 所有文本都出現在螢幕上。我仍然需要弄清楚為什麼它沒有在啟動時載入,以及如何讓它做到這一點。另外,我跑
cat $(readlink -f /sys/class/graphics/fb0/name)
並列印了inteldrmfb
. 因此,它似乎正在使用內置於 i915 Intel 驅動程序的幀緩衝區。
要發布我自己的問題的答案:
它不工作的原因是因為
fbcon
模組在引導期間沒有被載入,即使它已經被建構和安裝。立即執行modprobe fbcon
載入模組使控制台出現在我的螢幕上。我已經添加fbcon
到/etc/sysconfig/modules
它現在再次在啟動時正確初始化。不過,這似乎有點奇怪,該模組之前是自動載入的,而我無需做任何事情。