1

I've recently built a Linux From Scratch system on my Apple Macbook laptop; however, I've been struggling to understand the graphics hardware and what kernel driver options I need to enable.

The LFS system is (currently) a fairly minimal system that boots up into Bash, but doesn't have the X Window system or any DE. The laptop is a Macbook 2,1 which includes an Intel GMA 950 graphics chip. I have enabled what I believe to be the appropriate driver in the Kernel for this GPU, which is the i915 driver; however, unless I also enable some other options relating to 'framebuffer devices' (I have yet to identify the exact config options), nothing prints on the screen during boot (although, the screen changes to a different shade of black a couple of times).

Can someone explain what is going on here? If that i915 driver is the correct one for the GPU, then shouldn't that be enough for the system to print the terminal output to the screen? If not, then what else should I need, other than the i915 driver?

I also have Trisquel installed on the same laptop, which boots up fine into the LXDE environment and, according to lsmod, the i915 driver is the correct one and the kernel doesn't seem to be loading any framebuffer-related drivers.

I'm confused!

  • Can you post the effective (grub?) boot command that is being run? It could be that you are setting a video mode that isn't supported there, or perhaps suppressing output, etc. I did a LFS back in '99-00-01 era, learned a LOT about how a linux system works – ivanivan Dec 1 '17 at 23:09
  • @ivanivan I'm not setting any specific video options via the grub boot command. Previously, the graphics console seemed to be initializing fine, without me needing to do that. However, I fiddled with some of the kernel config settings yesterday and it seems to have broken the console init. – Time4Tea Dec 2 '17 at 11:31
0

I've been doing some research into this myself, and the short answer seems to be: yes - I need a framebuffer to enable the console.

According to the Wikipedia article on the Linux Console, the console has two modes: text mode and framebuffer. From the description, it seems that the text mode is quite basic and may not work with all graphics hardware. So, that leaves the framebuffer console, which is obviously going to require a framebuffer to work.

I copied the output of lsmod to a file, for the kernel configuration where I had it working, which shows this when piped to 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

So, it was using the framebuffer console (fbcon).

The next question though is why I can't get the fbcon module to load up any more (which seems to be the reason that nothing is printing to my screen).

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.