On my Framework 13 Intel Ultra Series 1, running Ubuntu (now 26.04, but the issue has been there since 24.something) I had the issue that the early Linux boot only displayed on the builtin monitor, and not on my external monitor (connected via Thunderbolt Caldigit TS4 dock). Since I have LUKS encryption setup, the luks encryption prompt showed only there, so I would always have to open up my lid to enter the password. I could technically use my USB keyboard to enter it, but without display output, it is not clear when to enter it and if it was correct or not.
Today, I dug in a bit and found a solution for this. Since this has been discussed on this forum before ( Enable HDMI during boot - Framework 13 11th Gen Intel , Booting from an Encrypted Drive (Linux) with lid closed and Thunderbolt Dock, 2026 edition , Thunderbolt eGPU / external monitor on pre-boot ), I thought to share my solution (those topics are all closed, so could not reply. Also pinging @Arnix, @Geoffrey_Schaller and @Jean-Marc_Le_Roux that might be interested in this post).
TL;DR:
- Open
/etc/initramfs-tools/modulesand add a line containingi915(Other laptops, especially AMD-based, might need a different value). - Run
update-initramfs -k all -u
To understand this:
- The cryptsetup password prompt runs from a minimal Linux userspace called the “initramfs”. This is a small bundle that is put into the boot partition and can run before the regular (encrypted) root is available.
- The initramfs contains a minimal set of kernel modules, typically only what is needed to mount the root filesystem.
- The driver for the graphics card, i915 in my case, is not included in the initramfs.
- As a fallback, the
simple-framebufferdisplay driver is used, which simply writes to the display that has been setup by the bootloader (grub) before booting the kernel, but which does not know how to set up any external monitors. - Adding
i915to the/etc/initramfs/modulesfile causes this module (driver), along with all of its dependencies, to be added to the initramfs when it is generated. This is enough for the kernel to set up the graphics card properly, including all external monitors.
This works for my Framework 13 Intel Ultra Series 1 laptop. I suspect the same approach could work for all Framework laptops. I also suspect that most if not all of the Intel-based laptops will also use the i915 driver, but for the AMD-based laptops, a different driver will be used. To find out, you can likely run ls -ld /sys/class/drm/card*/device/driver
I also recall that this issue did not exist on my 11th generation Intel Framework 13, so maybe the BIOS and/or grub there did set up the external monitors? Or maybe something changed in software, I do not have that one anymore to check.
Note that the release notes for (intel ultra 1) BIOS 0.0.3.5 said it added support for an external monitor in the “pre-boot” environment, so I hoped that that would maybe allow simple-framebuffer to already use the second monitor, but that did not seem to make any difference.