[systemd-devel] systemd-vconsole-setup fails very slowly

Kay Sievers kay at vrfy.org
Wed Apr 1 14:36:26 PDT 2015


On Wed, Apr 1, 2015 at 11:19 PM, Andy Lutomirski <luto at amacapital.net> wrote:
> On Wed, Apr 1, 2015 at 1:53 PM, Kay Sievers <kay at vrfy.org> wrote:
>> On Wed, Apr 1, 2015 at 10:45 PM, Andy Lutomirski <luto at amacapital.net> wrote:
>>> On Apr 1, 2015 12:56 PM, "Kay Sievers" <kay at vrfy.org> 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.

They should only get created when something accesses the corresponding
tty. deallocvt(1) can kill unused ones and the device nodes should
disappear.

>> 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.

Hmm, yeah, maybe we could try one of the font-related ioctls to find
out if the driver supports that before we spawn setfont.

> /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.

Hehe, blast from the past. :) If you give kvm a VGA device, it all works fine?

Kay


More information about the systemd-devel mailing list