Can't set correct console (framebuffer) size
Many MacBook's (and several other systems) have a framebuffer size that is larger than the screen size; e.g. on a MacBookPro13,3 the framebuffer advertises a size of 3360x2100, but the screen/console is only 2880x1800. The result is that the boot messages disappear off the bottom of the screen, and logging into a console causes the prompt to eventually disappear off the bottom too. Note, however, that plymouth, wayland, X11, etc all correctly detect the actual screen size, so this is just an fbcon issue. Furthermore, setting the boot param video=2800x1800
doesn't help (it would if using the AMD dGPU, which appears to honour this setting, but the i915 fb driver does not).
I was able to get the driver to honor the video
boot param with the following patch, though I doubt this is the correct approach ultimately:
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -200,8 +200,10 @@ static int intelfb_create(struct drm_fb_helper *helper,
} else {
DRM_DEBUG_KMS("re-using BIOS fb\n");
prealloc = true;
+ /*
sizes->fb_width = intel_fb->base.width;
sizes->fb_height = intel_fb->base.height;
+ */
}
wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm);
Attached is the kernel log from booting with drm.debug=0x07
. The GPU is an Intel HD Graphics 530 (Skylake).
Ideally, of course, the fb driver would get the correct screen size by itself, but at very least it should be possible to override it via a boot param.