1

I have an Apple MacBook that is running a Linux From Scratch system that I have built. It is a minimal system, just booting into a bash prompt, with no X Window System installed. The graphics chip is an Intel GMA 950, which uses the i915 driver. Previously, I had it booting up into the framebuffer console; however, I tweaked some of the kernel configuration settings the other day and now the framebuffer console doesn't seem to load up any more (although the screen goes black and then resets during boot).

Stupidly, I didn't save the kernel config file for the setup I had working, although I do have a printout of the lsmod command for that setup, which shows which kernel modules were loaded:

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

So, you can see that fbcon (which is the driver for the framebuffer console) was loaded.

However, the output of lsmod for the newer kernel build (where the console isn't loading) is as follows:

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 are all there, but fbcon isn't.

Does anyone know of a possible reason why fbcon isn't loading up?

Edit: (to answer a question in the comments)

The output of grep CONFIG_FRAMEBUFFER_CONSOLE .config is:

$ grep CONFIG_FRAMEBUFFER_CONSOLE .config
CONFIG_FRAMEBUFFER_CONSOLE=m
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set

fbcon is configured as a module (as it seemed to be in the previous setup). I believe the second line means that it should be setting fbcon to the primary display device by default.

Update:

I loaded the module manually, using modprobe fbcon and it worked - all of the text appeared on the screen. I still have to figure out why it didn't load on boot though and how I can make it do that.

Also, I ran cat $(readlink -f /sys/class/graphics/fb0/name) and that printed inteldrmfb. So, it appears it is using a framebuffer that is built in to the i915 Intel driver.

  • what's the output of grep CONFIG_FRAMEBUFFER_CONSOLE .config. .config is the current linux config file that has no fbcon. – Bruce Dec 3 '17 at 0:27
  • @Bruce I will add it at the end of my question. – Time4Tea Dec 3 '17 at 0:50
  • Load this module manually. See what will happen. – Bruce Dec 3 '17 at 1:08
  • @Bruce Bingo! It worked - now I can see what I am doing again ;-) . Although, I'm not sure why the module wasn't loaded automatically on boot, like before .. – Time4Tea Dec 3 '17 at 1:25
  • @Bruce I swear I tried that before and it didn't work, lol! Btw, if you feel like posting an answer, I'll happily give you some points - thanks for your help :-) – Time4Tea Dec 3 '17 at 2:41
0

To post an answer to my own question:

The reason it wasn't working was because the fbcon module wasn't being loaded during boot, even though it had been built and installed. Running modprobe fbcon to load the module immediately made the console appear on my screen. I have added fbcon to /etc/sysconfig/modules and it's initializing properly on boot again now.

It seems a little strange though, that the module was loading automatically before, without me having to do anything.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.