My computer has a small but high-resolution touchscreen (13", 3200×1800). This makes console text during boot illegibly small at native resolution.
I have tried various methods to increase the size of the text. These initially work, GRUB displays at the requested resolution, and the Linux boot sequence output initially displays at the same resolution. But just before the full disk encryption passphrase prompt, the display reverts to the native screen resolution and the text is again unreadable.
Pinpointing the problem
The change occurs just after the touchscreen is detected. Here is the relevant typical output before and after:
[ 2.495843] usb 2-4: Product: Touchscreen
[ 2.495847] usb 2-4: Manufacturer: ELAN
...
[ 2.878743] input: ELAN Touchscreen as /devices/...
[ 2.878896] input: ELAN Touchscreen as /devices/...
[ 2.879000] input: ELAN Touchscreen as /devices/...
...
[ 3.053233] i915 0000:00:02.0: [drm] Reducing the compressed framebuffer size. ...
...
[ 3.055573] fbcon: i915drmfb (fb0) is primary device
[ 3.065796] Console: switching to colour frame buffer device 200x56
[ 3.095533] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
--- Resolution always changes to 3200x1800 here ---
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
...
What I have tried
- Setting Grub variables:
GRUB_GFXMODE=800x600,GRUB_GFXPAYLOAD_LINUX=text(orGRUB_GFXPAYLOAD_LINUX=keep), etc.: These initially work, but at a certain point during boot, the display reverts to full resolution. - Setting Linux kernel parameters:
nomodesetand/orvideo=640x480: same behavior. - Enlarging the font size in
/etc/default/console-setup. This takes effect substantially after I need it (logically, it can only happen after the OS disk encryption passphrase prompt!)
How can I fix this?
What could be causing the resolution to change, and how can I configure the system to continue displaying the boot sequence output at lower resolution or with larger text?