FS#78052 - [mkinitcpio][systemd] 253.2-1 not setting console font

Attached to Project: Arch Linux
Opened by Simon Perry (pezz) - Thursday, 30 March 2023, 13:41 GMT
Last edited by Jelle van der Waa (jelly) - Monday, 18 September 2023, 17:44 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Giancarlo Razzolini (grazzolini)
Morten Linderud (Foxboron)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 9
Private No

Details

Description:

Systemd 253.2-1 no longer sets the console font specified in vconsole.conf until after root is mounted.

Additional info:

* package version(s)
253.2-1

* config and/or log files etc.
Error is:
setfont: KDFONTOP: Function not implemented

A forum post suggests adding "setfont" to BINARIES but it's included in the initramfs.

* link to upstream bug report, if any
N/A

Steps to reproduce:
Upgrade to system 253.2-1 using existing consolefont, encrypt hooks.

Workaround:
Downgrade to 253.1-3 and it works as expected.

Cheers.
This task depends upon

Closed by  Jelle van der Waa (jelly)
Monday, 18 September 2023, 17:44 GMT
Reason for closing:  Moved
Additional comments about closing:  https://gitlab.archlinux.org/archlinux/m kinitcpio/mkinitcpio/issues/211
Comment by Simon Perry (pezz) - Thursday, 30 March 2023, 13:53 GMT
Adding the setfont binary from the system and even including a psf file that matches vconsonle.conf, then rebuilding initramfs, doesn't fix it.

It does remove the KDFONTOP error though.
Comment by Balló György (City-busz) - Thursday, 30 March 2023, 14:12 GMT
I suppose you are using the 'quiet' kernel parameter.

The quiet boot was fixed in the udev hook ( FS#77910 ), so you'll no longer see the "Starting systemd-udevd version 253.1-3-arch" message during boot if you specify the 'quiet' kernel parameter. This means /dev/console will left uninitialized during boot, and the 'setfont' command is unable to set the font on an uninitialized console.

I recommend you to replace 'consolefont' and 'keymap' hooks with the 'sd-vconsole' hook (it works even with the busybox-based init) which works properly in this case, or report the problem to mkinitcpio developers: https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio/-/issues
Comment by Simon Perry (pezz) - Thursday, 30 March 2023, 14:24 GMT
Yeah, spot-on, I do use quiet.

sd-vconsole works perfectly, thank you so much.

Will request closure, cheers mate.
Comment by Michel Koss (MichelKoss1) - Thursday, 30 March 2023, 20:27 GMT
I think the 'quiet' kernel option is very popular so the fact 'console' and 'keymap' hooks are broken with it is a bug and regression. If sd-console can replace them for all cases then perhaps the fix is to deprecate them.
Comment by Toolybird (Toolybird) - Thursday, 30 March 2023, 21:31 GMT
> replace 'consolefont' and 'keymap' hooks with the 'sd-vconsole' hook (it works even with the busybox-based init)

Not documented anywhere on [1].

> the fact 'console' and 'keymap' hooks are broken with it is a bug and regression

Agreed. There is a whole page dedicated to silent boot [2] and if it now doesn't work with the default mkinitcpio config...that's not good.

[1] https://wiki.archlinux.org/title/Mkinitcpio
[2] https://wiki.archlinux.org/title/Silent_boot
Comment by Gerry Kessler (renegat) - Friday, 31 March 2023, 08:58 GMT
This issue also affects the LUKS password prompt as the 'FONT=' setting in vconsole.conf / consolefont hook is not applied anymore.

https://bbs.archlinux.org/viewtopic.php?id=284719
Comment by Gerry Kessler (renegat) - Friday, 04 August 2023, 20:17 GMT
With latest update systemd 254-1 the sd-vconsole hook does not work anymore for busybox-based init.
Consolefont and keymap are not applied anymore - you'll have to switch back to keymap and consolefont hooks.
Keymap will be applied - consolefont still ignored.

Maybe related/same issue as https://bugs.archlinux.org/task/65148

Loading...