Plymouth update changes behaviour of console fonts
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. Before (with plymouth 22.02.122+94.4bd41a3) it was changed to font set in `/etc/vconsole.conf` by systemd-vconsole-setup. But with last update (snapshot 20241118 from Nov 20) I'm getting error: ``` systemd-vconsole-setup[718]: All allocated VCs are currently busy, skipping initialization of font and keyboard settings. ``` in logs twice. Is this a bug and I should create bugreport, or was some change made and now some other way to setup console font?
Op zaterdag 23 november 2024 11:33:31 Midden-Europese standaardtijd schreef Mykola Krachkovsky:
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.
Before (with plymouth 22.02.122+94.4bd41a3) it was changed to font set in `/etc/vconsole.conf` by systemd-vconsole-setup.
But with last update (snapshot 20241118 from Nov 20) I'm getting error: ``` systemd-vconsole-setup[718]: All allocated VCs are currently busy, skipping initialization of font and keyboard settings. ``` in logs twice.
Is this a bug and I should create bugreport, or was some change made and now some other way to setup console font?
I have the same message. I also experience a rather long delay before the login screen of sddm appears. For about 30 seconds (estimate) I get a black screen with a blinking underscore in the upper left corner. Pressing Ctrl+Alt+F1 does not give me a console during that time. Looking at the journal of systemd-vconsole-setup this message appears at 11:16:47 and the last message at 11:17:24; a delay of 37 seconds. -- fr.gr. member openSUSE Freek de Kruijf
Op zaterdag 23 november 2024 11:46:24 Midden-Europese standaardtijd schreef Freek de Kruijf:
Op zaterdag 23 november 2024 11:33:31 Midden-Europese standaardtijd schreef
Mykola Krachkovsky:
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.
Before (with plymouth 22.02.122+94.4bd41a3) it was changed to font set in `/etc/vconsole.conf` by systemd-vconsole-setup.
But with last update (snapshot 20241118 from Nov 20) I'm getting error: ``` systemd-vconsole-setup[718]: All allocated VCs are currently busy, skipping initialization of font and keyboard settings. ``` in logs twice.
Is this a bug and I should create bugreport, or was some change made and now some other way to setup console font?
I have the same message.
I also experience a rather long delay before the login screen of sddm appears. For about 30 seconds (estimate) I get a black screen with a blinking underscore in the upper left corner. Pressing Ctrl+Alt+F1 does not give me a console during that time.
Looking at the journal of systemd-vconsole-setup this message appears at 11:16:47 and the last message at 11:17:24; a delay of 37 seconds.
I made bug report 1233684. -- fr.gr. member openSUSE Freek de Kruijf
суботу, 23 листопада 2024 р. 13:04:39 за східноєвропейським стандартним часом Freek de Kruijf написано:
Op zaterdag 23 november 2024 11:46:24 Midden-Europese standaardtijd schreef
Freek de Kruijf:
I have the same message.
Have you different font in tty's?
I also experience a rather long delay before the login screen of sddm appears. For about 30 seconds (estimate) I get a black screen with a blinking underscore in the upper left corner. Pressing Ctrl+Alt+F1 does not give me a console during that time.
I don't have these delays. It starts roughly as fast as before. Have you tried to disable temporarily plymouth at start? Try to add `plymouth.enable=0 disablehooks=plymouth` to linux boot line in grub at start.
Looking at the journal of systemd-vconsole-setup this message appears at 11:16:47 and the last message at 11:17:24; a delay of 37 seconds.
I made bug report 1233684.
I have 3 seconds between first and last entry. It seems these are different problems.
On 11/23/24 5:46 AM, Freek de Kruijf wrote:
Op zaterdag 23 november 2024 11:33:31 Midden-Europese standaardtijd schreef Mykola Krachkovsky:
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.
Before (with plymouth 22.02.122+94.4bd41a3) it was changed to font set in `/etc/vconsole.conf` by systemd-vconsole-setup.
But with last update (snapshot 20241118 from Nov 20) I'm getting error: ``` systemd-vconsole-setup[718]: All allocated VCs are currently busy, skipping initialization of font and keyboard settings. ``` in logs twice.
Is this a bug and I should create bugreport, or was some change made and now some other way to setup console font?
I have the same message.
I also experience a rather long delay before the login screen of sddm appears. For about 30 seconds (estimate) I get a black screen with a blinking underscore in the upper left corner. Pressing Ctrl+Alt+F1 does not give me a console during that time.
Looking at the journal of systemd-vconsole-setup this message appears at 11:16:47 and the last message at 11:17:24; a delay of 37 seconds.
The long delay you are seeing sounds like the issue I reported, see my msg with subject "20241119 Plymouth segfault". The plymouth service is crashing / segfaulting at startup which is why even if you press ESC you don't see the startup messages. -- Regards, Joe
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? My VM shows Plymouth splash screen immediately after grub messages, so I have no place where I could see "one" or "other" fonts.
Before (with plymouth 22.02.122+94.4bd41a3) it was changed to font set in `/etc/vconsole.conf` by systemd-vconsole-setup.
But with last update (snapshot 20241118 from Nov 20) I'm getting error: ``` systemd-vconsole-setup[718]: All allocated VCs are currently busy, skipping initialization of font and keyboard settings. ``` in logs twice.
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. Linux console is still black magic to me. In the past I believe systemd-vconsole-setup was invoked as regular service and Plymouth was order after it. Today systemd-vconsole-setup is invoked from within udev rule, so complete asynchronously. I forgot what was the reason for this change.
Is this a bug and I should create bugreport, or was some change made and now some other way to setup console font?
суботу, 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. 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.
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?
Linux console is still black magic to me. In the past I believe systemd-vconsole-setup was invoked as regular service and Plymouth was order after it. Today systemd-vconsole-setup is invoked from within udev rule, so complete asynchronously. I forgot what was the reason for this change.
It might be related to dynamic tty creation, assumption based on comment in unit file: "This service will be restarted by udev whenever a new vtcon device appears." But I don't know about it, so not sure if it's the only/main reason or reason at all.
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.
On Saturday 2024-11-23 15:00, Mykola Krachkovsky wrote:
Immediately after GRUB I see error messages (related to ACPI) in one font. 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.
The default openSUSE kernel contains VGA 8x16 and Terminus-32 fonts for use by fbcon. Choice can only be made at boot/when fbcon is first loaded and taking over. Anything afterwards requires userspace assistance, e.g. via setfont(1), vconsole-setup. Or displacing fbcon by e.g. a userspace console such as kmscon.
It definitely worked before plymouth start. I've been noticing very minor font change before plymouth is started.
What you describe is likely the switch between fbcon's default 8x16 font, and vconsole.conf triggering something like FONT=eurlatgr1.psfu (a different 8x16 that yast2 chose during first installation). That still wouldn't explain how Terminus got activated, so…
participants (5)
-
Andrei Borzenkov
-
Freek de Kruijf
-
Jan Engelhardt
-
Joe Salmeri
-
Mykola Krachkovsky