私が構築したApple MacBookはLinux From Scratchシステムを実行しています。これは最小限のシステムであり、X Window Systemがインストールされていないbashプロンプトで起動するだけです。グラフィックチップは、i915ドライバーを使用するIntel GMA 950です。以前は、フレームバッファーコンソールで起動していましたが、先日、カーネル構成設定の一部を調整したところ、フレームバッファーコンソールがロードされていないようです。 more(ただし、画面が真っ暗になり、起動中にリセットされます)。
愚かなことに、作業中のセットアップのカーネル構成ファイルを保存しませんでしたが、そのセットアップの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
はモジュールとして構成されています(以前のセットアップのように見えたため)。 2行目は、デフォルトでfbconをプライマリディスプレイデバイスに設定する必要があることを意味していると思います。
更新:
_modprobe fbcon
_を使用してモジュールを手動でロードしましたが、機能しました。すべてのテキストが画面に表示されました。それでも、起動時にロードされなかった理由と、それをどのように実行できるかを理解する必要があります。
また、cat $(readlink -f /sys/class/graphics/fb0/name)
を実行すると、inteldrmfb
が出力されました。そのため、i915 Intelドライバーに組み込まれているフレームバッファーを使用しているようです。
私自身の質問への回答を投稿するには:
これが機能しなかった理由は、ビルドおよびインストールされていても、ブート中にfbcon
モジュールがロードされなかったためです。 modprobe fbcon
を実行してモジュールをロードすると、すぐにコンソールが画面に表示されます。 fbcon
を/etc/sysconfig/modules
に追加しましたが、起動時に正しく初期化されています。
少し奇妙なことに、私が何もしなくても、モジュールが以前に自動的にロードされていました。