Re: [kbd] [systemd-devel] systemd-vconsole-setup fails very slowly

Andy Lutomirski <[email protected]>
Newsgroups dev.linux.lists.kbd
Message-ID <CALCETrU5Cz_1ucQuERwWSQyF-nFnM65Sk80G+LTRbWzO04tSZg@mail.gmail.com>
On Wed, Apr 1, 2015 at 1:53 PM, Kay Sievers <[email protected]> wrote:
> On Wed, Apr 1, 2015 at 10:45 PM, Andy Lutomirski <[email protected]> wrote:
>> On Apr 1, 2015 12:56 PM, "Kay Sievers" <[email protected]> wrote:
>
>>> Do you have an idea why the VM does not accept the custom font? If
>>> that is something obvious, and we can detect it, we could make
>>> vconsole-setup check for it. But then again, fixing setfont seems like
>>> the obvious fix here.
>>
>> I assume it's because the VM has no graphical console at all.
>
> We check the existence of the corresponding /dev/vcs%i, to check if
> the tty is allocated where we want to apply the font to. Do these
> devices exist on the running machine?

Yes:

# ls /dev/vcs*
/dev/vcs   /dev/vcs2  /dev/vcs4  /dev/vcsa1  /dev/vcsa3
/dev/vcs1  /dev/vcs3  /dev/vcsa  /dev/vcsa2  /dev/vcsa4

Looking at the code, the vc_screen.c code seems to create those
devices unconditionally.

>
> And what does this say?
>   grep . /sys/class/tty/tty0/active /sys/class/tty/console/active

# grep . /sys/class/tty/tty0/active /sys/class/tty/console/active
/sys/class/tty/tty0/active:tty1
/sys/class/tty/console/active:ttyS0

vcs1 has, roughly:

early console in decompress_kernel
Decompressing Linux... Parsing ELF... done.
Booting the kernel.

Now I'm wondering how that buffer came to be.

In any event, some tracing of the code suggests that I have
vga_video_type == VIDEO_TYPE_CGA, and that fails "if (vga_video_type <
VIDEO_TYPE_EGAM)" in vgacon_font_set.

Indeed, /proc/ioports has:

  03d4-03d5 : cga

and dmesg says:

[    0.000000] Console: colour *CGA 80x25

I don't see this information in sysfs anywhere.  Perhaps checking for
an active console and detecting -EINVAL from vgacon_font_get would
work.

/proc/fb is empty on this VM, so maybe that would help.  Grr, this
stuff is really old and crufty.

The offending qemu command line args appear to be -vga none -display
none.  I assume I have "CGA" because it's the fallback case in
vgacon.c if nothing matches.

--Andy
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.