FS#48181 - [systemd] systemd-vconsole-setup service starts too early if system not using early KMS

Attached to Project: Arch Linux
Opened by Javier (jevv) - Sunday, 14 February 2016, 17:04 GMT
Last edited by Dave Reisner (falconindy) - Sunday, 14 February 2016, 17:42 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

The system is a laptop HP eliteBook 8540w with a Nvidia graphics card:

01:00.0 VGA compatible controller: NVIDIA Corporation GT216GLM [Quadro FX 880M] (rev a2) (prog-if 00 [VGA controller])
...
Kernel driver in use: nouveau
Kernel modules: nouveau

Which works great for me with the nouveau module.

The resolution the display has is 1920x1080, a high one to be able to read small fonts on the terminal. Therefore I have set "FONT=ter-v24n" under "/etc/vconsole.conf".

When using early KMS (loading nouveau on the mkinitcipio initrd image), there's no problem since the module is loaded way early for any systemd process. So "systemd-vconsole-setup" has no problem using the specified font on the terminal.

However when not using early KMS, then systemd-vconsole-setup is started before the nouveau module has been loaded, leading to the following error:

% systemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
● systemd-vconsole-setup.service loaded failed failed Setup Virtual Console
...

Exploring the reason:

% systemctl status systemd-vconsole-setup
● systemd-vconsole-setup.service - Setup Virtual Console
Loaded: loaded (/usr/lib/systemd/system/systemd-vconsole-setup.service; static; vendor preset: disabled)
Active: failed (Result: exit-code) since Sun 2016-02-14 10:24:04 CST; 3min 32s ago
Docs: man:systemd-vconsole-setup.service(8)
man:vconsole.conf(5)
Process: 167 ExecStart=/usr/lib/systemd/systemd-vconsole-setup (code=exited, status=1/FAILURE)
Main PID: 167 (code=exited, status=1/FAILURE)
Feb 14 10:24:18 m1 systemd-vconsole-setup[167]: putfont: KDFONTOP: Invalid argument
...

As you can see, it complains about the font. Which seems reasonable since before loading nouveau the resolution supported won't allow such big fonts.

So, systemd-vconsole-setup should be started only after graphics modules are loaded (for some systems more than one).

If no easy way to detect such event, I would suggest waiting until systemd-modules-load is done, which usually happens after udev auto detection, and better yet, that would wait until any graphics module specified in "/etc/modules-load.d" is also loaded.


Additional info:

* package version(s)

systemd 228-4
system and service manager

* config and/or log files etc.

/etc/vconsole.conf
KEYMAP=la-latin1
FONT=ter-v24n
This task depends upon

Closed by  Dave Reisner (falconindy)
Sunday, 14 February 2016, 17:42 GMT
Reason for closing:  Upstream
Additional comments about closing:  not a packaging issue.
Comment by Dave Reisner (falconindy) - Sunday, 14 February 2016, 17:42 GMT
This isn't a packaging issue -- please raise such concerns with upstream. I suspect it's unlikely that this can be resolved and that the solution is just to load the graphics driver in the initramfs.

Loading...