LINUX.ORG.RU

kmscon 10.0

 , , ,


2

3

Состоялся выпуск kmscon 10.0 – эмулятора терминала, который создан в качестве замены ядерной консоли. Вместо подсистемы ядра vt kmscon использует KMS и реализует необходимую функциональность в юзерспейсе.

С помощью такого подхода решается проблема низкого качества кода в подсистеме vt и отсутствия у сопровождающих опыта в нем, что делает практически невозможным дальнейшее развитие этой подсистемы.

Возможности kmscon:

  • возможность настройки всех опций с помощью аргументов командной строки или файла конфигурации;
  • возможность задавать устройство для вывода. Поддерживаются устройства fbdev и DRM;
  • возможность задавать видеорежим (разрешение и ориентацию экрана);
  • возможность настроить кастомную цветовую схему;
  • возможность настроить аппаратное ускорение графики при помощи GLESv2;
  • возможность автоматического отключения дисплея по таймауту в случае бездействия;
  • поддержка переключаемых по хоткею сессий (аналог VT-сессий), максимальное число сессий по умолчанию - 50;
  • рендеринг современных шрифтов с поддержкой хинтинга, субпиксельного сглаживания и всех остальных фич, предоставляемых библиотеками freetype и pango. Также поддерживаются GNU Unifont и стандартные шрифты 8x16. В полной мере реализован Unicode;
  • возможность задавать размеры шрифтов, в том числе по хоткею во время выполнения, благодаря чему решается проблема их отображения на HiDPI-дисплеях;
  • интеграция с libxkbcommon, в том числе возможность задать модель и раскладку клавиатуры;
  • поддержка мыши. Можно использовать как софтверный, так и аппаратный курсор;
  • поддержка прокрутки текста (scrollback buffer), как по хоткеям так и с помощью колесика мыши. При использовании мыши можно настроить естественную прокрутку.

Как это работает

kmscon запускается при старте системы как обычный сервис при помощи вашей системы инициализации.

Если kmscon видит VT-устройства в системе, то он находит свободное и занимает его. Благодаря этому на обычных системах (с задействованным VT) можно переключаться на kmscon как на обычную ядерную консоль по хоткею Ctrl+Alt+F<num>.

Если на VT-устройстве, которое вы хотите выделить для kmscon, уже работает какой-то сервис, например getty, то этот сервис нужно остановить. Это настраивается в зависимости от системы, например в случае с Busybox надо отредактировать /etc/inittab.

Если подсистема VT не задействована (то есть в конфиге ядра указано CONFIG_VT=n. Возможность чего собственно и является целью разработки kmscon), то kmscon просто занимает указанное в конфиге устройство вывода. После чего нужно пользоваться его внутренними сессиями.

GUI-приложения, такие как X-сервер, должны запускаться из сессии kmscon при помощи специальной программы kmscon-launch-gui. Это необходимо для правильной передачи владения ресурсами, в частности устройством вывода.

Изменения в версии 10.0

  • добавлена генерация специфичного для kmscon файла с базой terminfo. Переменную окружения TERM=kmscon можно задать как в шелле, так и с помощью CLI-аргумента или опции конфига.
  • поддержка шрифтов с переменной шириной, а не только моноширинных.
  • поддержка получение ресурсов (таких как DRM-устройство) через libseat. Это в перспективе позволит запускать kmscon в пользовательской сессии, а не только от рута, как сейчас.

>>> release notes

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 3)

Шикарно, надеюсь дистры наконец-то начнут выкидывать CONFIG_VT из ядра - давно пора похоронить это мрачное наследие прошлого века.

zabbal ★★★★☆
()
Ответ на: комментарий от zabbal

если тебе не нужны виртуальные консоли, можешь отключить CONFIG_VT уже сейчас. мне вот они не помешают.

alegz ★★★★★
()

Не так, чтобы было очень нужно, для разовых задач вполне можно обойтись и без. Но не помешает.

dmitry237 ★★★★★
()

поддержка шрифтов с переменной шириной, а не только моноширинных.

Напомните, зачем это в ядерной консоли?

Kroz ★★★★★
()

возможность задавать размеры шрифтов, в том числе по хоткею во время выполнения, благодаря чему решается проблема их отображения на HiDPI-дисплеях;
поддержка прокрутки текста (scrollback buffer), как по хоткеям так и с помощью колесика мыши. При использовании мыши можно настроить естественную прокрутку.

О, можно наконец-то обновляться!

GAMer ★★★★★
()

Тов. Саахрикту хотел КОИ8-Р в Ядерной Консоли. Это оно??

Всмыс получит ли Саахрикту то, чего так хотел??

Set440 ★★
()
Ответ на: комментарий от Kroz

Ну какая ж ядрёная консоль без единорогов с радугой?
Я бы больше беспокоился вот об этом

библиотеками freetype и pango
В полной мере реализован Unicode;
интеграция с libxkbcommon

Разжиреет ядро-то!

GAMer ★★★★★
()
Ответ на: комментарий от Kroz

Небось сопутствующий эффект от добавления векторных ШГ решили заявить как фичу.

thesis ★★★★★
()
Ответ на: комментарий от Merionet

Вопрос в том, скорее, можно ли её как-то подтянуть, если в опции ведра вписать init=/usr/bin/bash ??

Но штука несомненно полезная: В ядро нельзя тянуть внутрь поддержку Юникода, а в этот терминал затащщить можно.

Set440 ★★
()
Ответ на: комментарий от Kroz

Для этого нужен моноширинный шрифт.

Мне лень сегодня искать статью на Хабре (перевод) про современный уже свободный алгоритм сглаживания шрифтов.В чем прикол алгоритма - нет расплывчатости как на XP и в то же время очень хорошо ложиться на DRI монитора .При этом четкость шрифта не уменьшалась (до определенного угла конечно) от наклона .Человек спустя 9 лет передал алгоритм в статус общественное достояние.Моноширинный шрифт к сожалению не всегда подходит - есть мониторы с разным разрешением по горизонтали и вертикали.

maximnik0 ★★
()
Ответ на: комментарий от maximnik0

Дело и в DPI, и в Формате Пикселей.

Если мы говорим про какую-то Ретину — субпиксельное сглаживание Яббла — делает на ней мыло; Яббл сам уже отказался от собственной технологии.

Если мы говорим про подстройку под Формат Пикселей, типа BGR / RGB / etc, то эту информацию монитор всёж должен сливать по EDID, и сглаживание тогда может подстроиться само.

Set440 ★★
()

Слишком сложно. Может быть и стоило бы переделать подсистему VT, но она должна быть простой и в ядре. А главное - optnGL не должен моь её ускорить.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от unDEFER

Хотеть! В дистрибутивах уже есть оно?

Пока не во всех к сожалению.

zabbal ★★★★☆
()
Ответ на: комментарий от alegz

мне вот они не помешают

Вот и включишь их. А большинству это убожество нахрен не сдалось - и чем скорей дистромейнтейнеры это осознают, тем лучше.

zabbal ★★★★☆
()
Ответ на: комментарий от Set440

Там аналог библиотеки Каир которая вошла в GTK .Кривые с оптимизированным краевым эффектом от цвета фона и разрешения + какая то математическая модель человеческого зрения - снежающая нагрузки на зрение.Но модель простая (пару формул)и за счёт этого быстрая.Патенты использовали разработчики игр - видать хорошо накаполо автору и он решил сделать их общественным достоянием.

maximnik0 ★★
()
Последнее исправление: maximnik0 (всего исправлений: 1)
Ответ на: комментарий от Merionet

создан в качестве замены ядерной консоли

Нуу, судя по формулировке, я подумал, что таки да.

GAMer ★★★★★
()
Ответ на: комментарий от madcore

Интересно оно как-то есть. Установил пакет в Дебиан, перезагрузился и всё - у меня вообще никакой ядерной консоли нет больше :-(

unDEFER ★★★★★
()
Ответ на: комментарий от unDEFER

Там какие-то ещё пляски нужны. Иксы те же запускать специальной командой и т. д. Я как-то пробовал запускать на отдельном терминале типа vt8, но там был прикол, что при переключении залипал не то Ctrl, не то Alt. В общем, в него переключиться было можно, а вот из него — ни в какую.

alegz ★★★★★
()
Ответ на: комментарий от Set440

Вот нашел наконец то статью про хороший алгоритм рендинга и сглаживания шрифтов который ложится на аппаратное ускорение видеокарты .

https://habr.com/ru/articles/1011786/

maximnik0 ★★
()
Последнее исправление: maximnik0 (всего исправлений: 1)
Ответ на: комментарий от Kroz

Нашел наконец где читал статью.
https://habr.com/ru/articles/1011786/
Описывается уже открытый (MIT лицензия ) алгоритм рендинга и сглаживания шрифтов который аппаратно ускорен практически на 90 % .При этом нет замыливания и хорошо ложиться на разрешение монитора.

maximnik0 ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.