<feed xmlns='http://www.w3.org/2005/Atom'>
<title>video/utils/kmscon/files, branch master</title>
<subtitle>Mirror of video feed</subtitle>
<id>https://git.openwrt.org/feed/video/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/feed/video/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/'/>
<updated>2026-09-26T11:41:58Z</updated>
<entry>
<title>kmscon: add terminal emulator for KMS devices</title>
<updated>2026-09-26T11:41:58Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-09-24T21:51:07Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=605d768782e13fc8b8fa16e719d4a2742dafbd45'/>
<id>urn:sha1:605d768782e13fc8b8fa16e719d4a2742dafbd45</id>
<content type='text'>
A system without a framebuffer console has no text console at all.
kmscon draws a terminal straight onto a DRM device, through OpenGL ES
where the GPU allows and in software on the same device otherwise.

Device access goes through libseat, so the seat owns the drm device and
the vt rather than kmscon reaching for both itself. That needs seatd,
which is a small daemon and already starts before this service. Built
without the fbdev backend and with the built-in PC screen font, so it
needs neither pango nor freetype. The service is off until enabled, so
it does not take the display from whatever else is using it.

Two patches are carried. The first keeps the unifont generator, a
native helper linked against zlib for the build machine, out of a build
that has the unifont backend disabled, which otherwise breaks cross
compilation. The second stops an error loop: a render-only drm node
answers NULL to drmModeGetResources, which the hotplug path treated as
an error and returned from the poll handler, so kmscon wrote 776 error
lines in eighty seconds on a board where the GPU enumerates before the
display controller.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
</feed>
