Screen resolution in console after mkinitcpio changes

Either [Stable Update] 2025-12-08 or [Stable Update] 2025-12-15 came with a .pacnew for mkinitcpio.conf which introduced changes to my hooks configuration.

After DIFFPROG=meld pacdiff -s and also manually removing base and keymap, my HOOKS changed to:

HOOKS=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)

I did sudo mkinitcpio -P after that and rebooted. That is when I noticed that my screen resolution in the console has changed during bootup. The console font is way bigger now and the screen resolution seems slightly distorted compared to before when using the hookskeymapand consolefont.

It’s no big deal because the system boots up to GNOME very fast but I wondered if and where I would be able to do something about it. Is there some configuration file, wiki page, … which goes into futher details or have I missed something about the sd-vconsole hook?

My /etc/vconsole.conf looks like this:

KEYMAP=de
FONT=
FONT_MAP=

You don’t need keyboard with sd-vconsole as it contains keyboard

This is wrong. Keymap and keyboard are 2 different things

@mkb maybe here?

Have not tried to change the size, i only configured the German layout

[teo@teo-lenovo-v15 ~]$ cat /etc/vconsole.conf
# Written by systemd-localed(8) or systemd-firstboot(1), read by systemd-localed
# and systemd-vconsole-setup(8). Use localectl(1) to update this file.
KEYMAP=de-latin1-nodeadkeys
FONT=
FONT_MAP=
XKBLAYOUT=de,us

2 Likes

Well /etc/vconsole.conf will be read by sd-vconsole

Yes you do. It’s keymap which you don’t need anymore.

2 Likes

I’ve investigated further. Turns out the ā€˜wrong’ screen resolution is really only being used for a couple of seconds. I carefully checked the screen during bootup and noticed that just right before the system switches to the graphical login manager, the correct resolution seems to be set. Switching to a virtual console after bootup also uses the correct resolution.

So it’s only those first couple seconds. I don’t know why it changed and if it’s either because of the last big update to GNOME 49 or the changes due to the .pacnew of mkinitcpio.conf with its changed HOOKS variable.

I wonder if this resolution issue might go away, when I’d put autostart first in line of the HOOKS variable. I remember reading something about this in the forum somewhere and it might have even been in one of @Teo 's comments.

Neither. The lower resolution during the first couple of seconds comes from grub. But you can tailor that by modifying the ā€œGRUB_GFXMODE=ā€ line in /etc/default/grub. See… :backhand_index_pointing_down:

info grub-install

… for details. Some experimentation might be required, because grub may or may not support certain resolutions and graphics modes for your particular graphics adapter.

Note: If you do not have the info command available, install the texinfo package. Those are the GNU info pages, which are a more elaborate alternative to man pages. Alternatively, you can also use… :backhand_index_pointing_down:

man grub-install
2 Likes

@mkb
Please see Linux console - ArchWiki for more info on how the console is loaded and initialised.

2 Likes

Thanks you two for the links/info pages. :smiley:

Meanwhile I’ve checked videoinfo in the grub console according to info grub-install and got the following output:

         		    GNU GRUB Version 2:2.14rc1-3

Minimal BASH-like line editing is supported. For the first word, TAB 
lists possible command completions. Anywhere else TAB lists possible 
device or file completions. To enable less(1)-like paging, "set 
pager=1". ESC at any time exists.

grub> videoinfo
List of supported video modes:
Legend: mask/position=red/green/blue/reserved
Adapter `EFI GOP driver':
  0x000 1920 x 1080 x 32 (7680)  Direct color, mask: 8/8/8/8 pos: 16/8/0/24
  0x001  640 x  480 x 32 (2560)  Direct color, mask: 8/8/8/8 pos: 16/8/0/24
  0x002  800 x  600 x 32 (3200)  Direct color, mask: 8/8/8/8 pos: 16/8/0/24
* 0x003 1024 x  768 x 32 (4096)  Direct color, mask: 8/8/8/8 pos: 16/8/0/24
  0x004 1280 x 1024 x 32 (5120)  Direct color, mask: 8/8/8/8 pos: 16/8/0/24
  0x005 1400 x 1050 x 32 (5600)  Direct color, mask: 8/8/8/8 pos: 16/8/0/24
  0x006 1280 x  960 x 32 (5120)  Direct color, mask: 8/8/8/8 pos: 16/8/0/24
  EDID version: 1.4
    Preferred mode: 1920x1080
grub> _

It seems the preferred mode (1920x1080) is correct but the first couple of seconds it looks more like 1024x768 (if I had to guess). As you can see, the grub console is also running in 1024x768 but I’m not sure if this default behaviour.

The only thing I’m really wondering about all of this is, that I haven’t made any changes to /etc/default/grub or any other console setting prior to the kernel upgrade/mkinitcpio.conf.pacnew but the resolution during bootup seems to have been changed after switching to systemd from base udev … keymap consolefont in the HOOKS variable. I was at least expecting someone else would’ve mentioned the resolution change after the update but I seem to be the only one who noticed or is mildly bothered by it. :wink:

Well it behaves differently on different hardware. It is probably very much dependent on video card and drivers, monitor, probably also motherboard firmware.

In my particular case, a laptop with intel integrated video, both modes have the same resolution, so the only thing i notice is a blink. Without KMS hook the blink is as you describe it just before login, with KMS hook at the first second after the grub menu.

2 Likes

I have this (:backhand_index_pointing_down:) in my /etc/default/grub, because here too grub originally defaulted to 1024 x 768…

GRUB_GFXMODE=1920x1080x32

You could try that. But don’t forget to run… :backhand_index_pointing_down:

sudo update-grub

… after the change. :wink:

3 Likes

Adding to that… Whatever resolution is used must be supported by the GPU in console mode… this is particularly important with older graphics cards.

To find the supported resolutions one would typically use;

3 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.