Skip to content
Search Fedora

    Browse this documentation

    Fedora 45's kmscon console: what changed and how to check

    Fedora 45 introduces kmscon as the VT console implementation (official ChangeSet: Use kmscon as default VT console). But “introduced” and “you can see it” are two different things — the measurements below save you a detour.

    Terminal window
    rpm -q kmscon
    systemctl list-unit-files "kmscon*"
    systemctl status kmscon --no-pager | head -3
    kmscon-10.0.3-2.fc45.x86_64
    UNIT FILE STATE PRESET
    kmscon.service disabled disabled
    [email protected] enabled enabled
    ○ kmscon.service - KMS System Console
    Loaded: loaded (/usr/lib/systemd/system/kmscon.service; disabled; preset: disabled)
    Active: inactive (dead)

    The second table is the point:

    • [email protected] is enabled — this is the unit that takes over a VT, starting kmscon on demand when you switch to a tty;
    • kmscon.service is disabled — it is not the master switch for “make the console kmscon”, so do not read it as a fault.

    This command is the dividing line:

    Terminal window
    cat /sys/class/vtconsole/*/name
    (M) frame buffer device
    (M) dummy device

    (M) marks the currently bound backend. If the first line is frame buffer device, the in-kernel fbcon is still drawing characters and kmscon has not taken over.

    On a plain virtual machine (no KMS driver, no GPU passthrough) this is a normal result, and the Cloud and Server images behave the same — so “Cloud does not enable it, only Server does” is not accurate.

    What you seeLikely truth
    kmscon.service is disablednormal; takeover comes from kmsconvt@
    no kmscon in /sys/class/vtconsolethe VM has no KMS driver and falls back to fbcon
    the local console font looks unchangedsame as above, still fbcon
    remote fine, local garbledmost likely DRM/driver, not kmscon

    What to check when something really breaks

    Section titled “What to check when something really breaks”
    Terminal window
    journalctl -b -u kmsconvt@tty1 --no-pager | tail -20
    journalctl -b -u kmscon --no-pager | tail -20
    dmesg | grep -iE "drm|kms" | tail -10

    Suggested order:

    1. confirm you are not simply on another VT (Ctrl+Alt+F2 and so on);
    2. check /sys/class/vtconsole to identify the backend;
    3. only then look at the logs and DRM errors in dmesg.
    • Discrete GPU or integrated graphics passthrough: kmscon gets a KMS device, so fonts and Unicode rendering differ from before;
    • Plain VMs and serial consoles: essentially no change, the VT is still fbcon;
    • Servers with IPMI or remote KVM: depends on the display device the BMC exposes, worth verifying once.