Bug 948750 - systemd seems to be ignoring FONT setting in /etc/vconsole.conf
Summary: systemd seems to be ignoring FONT setting in /etc/vconsole.conf
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: systemd
Version: 19
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Michal Schmidt
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: RejectedFreezeException
Depends On:
Blocks: 927564
TreeView+ depends on / blocked
 
Reported: 2013-04-05 10:07 UTC by Jens Petersen
Modified: 2013-09-17 23:55 UTC (History)
15 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-09-17 23:55:51 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
debug-log.txt (10.33 MB, text/plain)
2013-09-17 11:44 UTC, Kevin Kofler
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 949525 0 unspecified CLOSED f19 systemd ignores /etc/locale.conf and runs processes in LANG=C or locale configured in initramfs 2021-02-22 00:41:40 UTC

Internal Links: 949525

Description Jens Petersen 2013-04-05 10:07:41 UTC
Description of problem:
I have been trying to set the F19 console font to latarcyrheb-sun16
by setting FONT in /etc/vconsole.conf but it does not seem to have
any affect.

Version-Release number of selected component (if applicable):
kbd-1.15.5-5.fc19
systemd-200-3.fc19

How reproducible:
100%

Steps to Reproduce:
1. Boot current F19 pre-Alpha
2. add FONT=latarcyrheb-sun16 to /etc/vconsole.conf 
3. reboot system to console
4. login to console and run "setfont latarcyrheb-sun16"
  
Actual results:
3. No change in font (looking at F19 release name for example)
4. font changes!

Expected results:
System console font to default to value of FONT /etc/vconsole.conf.
(See vconsole.conf (5).)

Additional info:
In earlier testing even setting vconsole.font=latarcyrheb-sun16
on the kernel boot line did not have any affect either.

Comment 1 Harald Hoyer 2013-04-05 10:19:32 UTC
You might have to recreate your initramfs:

# dracut -f

So the font is included there. I think plymouth keeps the console busy for systemd-vconsole-setup, as soon as it is started in the initramfs.

Comment 2 Michal Schmidt 2013-04-05 11:18:37 UTC
There is a bug in systemd-200 (and maybe earlier, I haven't checked) where it skips the parsing of /etc/vconsole.conf if any of the supported vconsole.* arguments is present on the kernel command line.

Basically, it does:
  r = parse_env_file("/proc/cmdline", ...);
  ...
  /* Hmm, nothing set on the kernel cmd line? Then let's
   * try /etc/vconsole.conf */
  if (r <= 0) {
          r = parse_env_file("/etc/vconsole.conf", ...);
          ...
  }

parse_env_line() returns the count of successful assignments it made, so any assignment from /proc/cmdline would cause /etc/vconsole.conf to be ignored.

Accidentally, it works now with current HEAD, because since this commit parse_env_file() simply returns 0 on success:
http://cgit.freedesktop.org/systemd/systemd/commit/?id=f73141d7657b3f60b8669bc8386413d8a8a372c6

I'll fix the logic in vconsole-setup.c to make sense.

Comment 3 Michal Schmidt 2013-04-05 11:48:06 UTC
(In reply to comment #2)
> I'll fix the logic in vconsole-setup.c to make sense.

http://cgit.freedesktop.org/systemd/systemd/commit/?id=2034ec42ec9e18db1ec908c87bb7c24cc63d2412

Comment 4 Jens Petersen 2013-04-06 01:38:11 UTC
Thanks!  If I remove vconsole.keymap=us from the kernel line,
add "FONT=latarcyrheb-sun16", run "dracut -f", and reboot
then this fixes bug 927564.

Comment 5 Jens Petersen 2013-04-06 01:54:30 UTC
To recreate fix locally in TC5 minimal install:

1. add FONT=latarcyrheb-sun16 to vconsole.conf
2. run dracut -f
3. reboot either removing vconsole.keymap=.. *or* add vconsole.font=... to kernel boot line

Comment 6 Jens Petersen 2013-04-10 08:29:16 UTC
Comment 5 no longer seems to work with systemd-201.

Comment 7 Adam Williamson 2013-04-15 17:35:18 UTC
Discussed at 2013-04-15 freeze exception review meeting: http://meetbot.fedoraproject.org/fedora-blocker-review/2013-04-15/f19alpha-blocker-review-7.2013-04-15-16.00.log.txt . This was rejected as a freeze exception issue on the basis that the impact doesn't seem to be terrible, it can be worked around by passing kernel parameters, and it can be fixed well enough with an update. If you feel we've analyzed the issue wrong, please re-propose with more details. Thanks!

Comment 8 Harald Hoyer 2013-04-16 11:47:06 UTC
another fix for systemd-202
http://cgit.freedesktop.org/systemd/systemd/commit/?id=fee79e010f1f8ad2bce6b41c67e8ddd4f419ff4b

do not set the non-unicode mode for LANG=C

Comment 9 Fedora Update System 2013-04-22 07:13:02 UTC
systemd-202-2.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/FEDORA-2013-6070/systemd-202-2.fc19

Comment 10 Fedora Update System 2013-04-24 13:08:58 UTC
systemd-202-3.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/systemd-202-3.fc19

Comment 11 Fedora Update System 2013-04-24 16:33:45 UTC
Package systemd-202-3.fc19:
* should fix your issue,
* was pushed to the Fedora 19 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing systemd-202-3.fc19'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-6488/systemd-202-3.fc19
then log in and leave karma (feedback).

Comment 12 Fedora Update System 2013-04-27 03:12:13 UTC
systemd-202-3.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 13 Kevin Kofler 2013-09-13 11:22:14 UTC
vconsole.conf still has no effect on a fully updated Fedora 19 (see bug #1000504). Neither the font nor the keymap are getting loaded. And yes, I did run "dracut -f".

Comment 14 Kevin Kofler 2013-09-14 16:43:47 UTC
It looks like this is dracut's fault: dracut just does not include vconsole.conf and locale.conf in the initramfs at all!

After adding:
install_items+=" /etc/vconsole.conf /etc/locale.conf "
to /etc/dracut.conf, I get bug #970030 instead. But the keymap is still the US one.

Comment 15 Kevin Kofler 2013-09-14 17:21:16 UTC
> But the keymap is still the US one.

Nevermind, I had just "de" set rather than "de-latin1", and it looks like de is a mix between de-latin1 and us (it has the US key assignments where the umlauts should be).

So, to sum up, I see 2 issues:
1. dracut not installing vconsole.conf in the initramfs by default and
2. bug #970030 or something with similar symptoms (sounds like the result of Karel Volný's step 3 in bug #1000504).

Comment 16 Harald Hoyer 2013-09-16 16:01:43 UTC
(In reply to Kevin Kofler from comment #14)
> It looks like this is dracut's fault: dracut just does not include
> vconsole.conf and locale.conf in the initramfs at all!
> 
> After adding:
> install_items+=" /etc/vconsole.conf /etc/locale.conf "
> to /etc/dracut.conf, I get bug #970030 instead. But the keymap is still the
> US one.

Well, it does on my system.

Please attach debug-log.txt of:

# dracut --debug -f test.img  2>debug-log.txt
# rm -f test.img

Comment 17 Kevin Kofler 2013-09-17 11:44:49 UTC
Created attachment 798768 [details]
debug-log.txt

So here's the debug-log.txt, as requested. I commented out the install_items line I had added to dracut.conf.

In case that matters: I forgot to mention that I have dracut-nohostonly and dracut-norescue installed.

Comment 18 Harald Hoyer 2013-09-17 17:05:47 UTC
(In reply to Kevin Kofler from comment #17)
> Created attachment 798768 [details]
> debug-log.txt
> 
> So here's the debug-log.txt, as requested. I commented out the install_items
> line I had added to dracut.conf.
> 
> In case that matters: I forgot to mention that I have dracut-nohostonly and
> dracut-norescue installed.

well, with dracut-nohostonly vconsole.conf and locale.conf will not be copied to the initramfs and you have to specify the parameters on the kernel command line:

"vconsole.font=latarcyrheb-sun16 vconsole.keymap=<yourkeymap> locale.LANG=<yourLANG>"

Comment 19 Kevin Kofler 2013-09-17 23:55:51 UTC
Well, I don't think that's a good idea (also considering that grub2-mkconfig no longer writes those options by default), but the install_items workaround works in any case, so I'll return this to closed state. (The systemd bug is clearly fixed, it honors the files just fine if they're there.)

Now the real issue I'm having is what looks like bug #970030.


Note You need to log in before you can comment on or make changes to this bug.