23.11.2024 17:00, Mykola Krachkovsky wrote:
суботу, 23 листопада 2024 р. 14:31:53 за східноєвропейським стандартним часом Andrei Borzenkov написано:
23.11.2024 13:33, Mykola Krachkovsky wrote:
Hi,
Since Plymouth 22.02.122+180.b1d5aa9 console font have changed. There is one font at system start, but then it's changed to other, and I can't understand what is that font.
What is "system start"? When do you see "one font"? When is it changed?
Immediately after GRUB I see error messages (related to ACPI) in one font.
That is likely the default font your device or kernel are using.
After that plymouth is started. If later (when sddm is loaded) I'll switch to tty I see another font. It's more square and big (16x32 I presume) but it doesn't support my locale. Big font is kinda good for my screen, but not supported locale is a bummer.
It implies that some font is loaded, just not the font you expected. This is different from "no font is loaded at all" which I observe. Have you checked that initrd has the correct vconsole.conf and the corresponding font?
If it ever worked for you, it was just by accident. systemd-vconsole-setup cannot work while Plymouth is active (at least, while it shows its splash screen). None of my VMs where Plymouth is enabled boot with font configured in /etc/vconsole.conf. If I need to log in on console, the first thing I do is "systemctl restart systemd-vconsole-setup".
It sounds more like some timings changed in your case and Plymouth (or sytsemd-vconsole-setup) now run in the "wrong" moment.
It definitely worked before plymouth start. I've been noticing very minor font change before plymouth is started.
But plymouth-start unit file still has ``` After=systemd-vconsole-setup.service systemd-udev-trigger.service systemd- udevd.service ``` Any reason why is it started before now?
You are right, the first time they are indeed started in the correct order Nov 24 10:22:19 tw systemd[1]: Starting Virtual Console Setup... Nov 24 10:22:19 tw systemd[1]: Finished Virtual Console Setup. Nov 24 10:22:19 tw systemd[1]: Starting Show Plymouth Boot Screen... But then drivers for console are loaded and my guess is that it resets the console font to the default and subsequent systemd-vcobsole-setup invocation fails: Nov 24 10:22:20 tw (udev-worker)[328]: vtcon0: The log level is changed to 'debug' while processing device (SEQNUM=1480, ACTION=add) Nov 24 10:22:20 tw (udev-worker)[328]: vtcon0: Starting '/usr/bin/systemctl --no-block restart systemd-vconsole-setup.service' Nov 24 10:22:20 tw (udev-worker)[318]: vtcon1: The log level is changed to 'debug' while processing device (SEQNUM=1481, ACTION=add) Nov 24 10:22:20 tw (udev-worker)[318]: vtcon1: Starting '/usr/bin/systemctl --no-block restart systemd-vconsole-setup.service' Nov 24 10:22:20 tw systemd[1]: Started Show Plymouth Boot Screen. ... Nov 24 10:22:20 tw systemd[1]: systemd-vconsole-setup.service: Deactivated successfully. The above due to RemainOnExit=true Nov 24 10:22:20 tw systemd[1]: Stopped Virtual Console Setup. Nov 24 10:22:20 tw systemd[1]: Stopping Virtual Console Setup... Could be due to concurrent "Restart" Nov 24 10:22:20 tw systemd[1]: Starting Virtual Console Setup... Nov 24 10:22:20 tw (udev-worker)[328]: vtcon0: Process '/usr/bin/systemctl --no-block restart systemd-vconsole-setup.service' succeeded. Nov 24 10:22:20 tw (udev-worker)[328]: vtcon0: Device processed (SEQNUM=1480, ACTION=add) Nov 24 10:22:20 tw (udev-worker)[318]: vtcon1: Process '/usr/bin/systemctl --no-block restart systemd-vconsole-setup.service' succeeded. Nov 24 10:22:20 tw (udev-worker)[318]: vtcon1: Device processed (SEQNUM=1481, ACTION=add) Nov 24 10:22:20 tw systemd-vconsole-setup[357]: All allocated VCs are currently busy, skipping initialization of font and keyboard settings. Nov 24 10:22:20 tw systemd[1]: Finished Virtual Console Setup. So, apparently we have choice between delaying Plymouth splash screen until console subsystem is fully initialized (assuming it is even possible) and the wrong font. Alternative could be to invoke systemd-vconsole-setup *after* Plymouth has been stopped. As a quick test bor@tw:~> cat /etc/systemd/system/plymouth-quit.service.d/vconsole.conf [Service] ExecStartPost=-/usr/bin/systemctl --no-block restart systemd-vconsole-setup.service bor@tw:~> It works booting into run level 3, it does not work booting into run level 5. Which is sort of expected, as splash screen is shown until the very last moment when GNOME desktop appears. And plymouth-quit.service is never invoked (I believe, GDM stops plymouth explicitly). But then, plymouth-start.service is set RemainOnExit=true, so we also cannot plug into stopping this service ● plymouth-start.service - Show Plymouth Boot Screen Loaded: loaded (/usr/lib/systemd/system/plymouth-start.service; static) Active: active (exited) since Sun 2024-11-24 10:49:36 MSK; 10min ago Invocation: ba612fb7adf74a2d882a729d367d391a Process: 649 ExecStart=/usr/sbin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session (code=exited, status=0/SUCCESS) Process: 691 ExecStartPost=/usr/bin/plymouth show-splash (code=exited, status=0/SUCCESS) Main PID: 334 (code=exited, status=0/SUCCESS) CPU: 1.316s Nov 24 10:49:33 tw systemd[1]: Starting Show Plymouth Boot Screen... Nov 24 10:49:36 tw plymouthd[689]: 00:00:21.359 ../src/main.c:2036:check_logging : checking if console messages should be redirected and logged Nov 24 10:49:36 tw plymouthd[689]: 00:00:21.361 ../src/main.c:2048:check_logging : logging will be enabled! Nov 24 10:49:36 tw plymouthd[689]: 00:00:21.361 ../src/main.c:2122:initialize_environment : source built on Nov 15 2024 Nov 24 10:49:36 tw systemd[1]: Started Show Plymouth Boot Screen. bor@tw:~> and systemd does not have event "all processes has stopped". I really do not see how it can be solved nicely - the systemd simply does not provide the means to express this logic.