Несколько человек ответили на части вашего вопроса, касающиеся ядра и размещения изображений (а не текста) в фреймбуфере, но пока что остальное остается без ответа. Да, вы можете использовать подсистему виртуальных терминалов ядра для создания так называемой консоли framebuffer. Но есть несколько инструментов, которые позволяют использовать устройство framebuffer для создания виртуальных терминалов пользовательского пространства. К ним относятся:
console-terminal-emulator
и console-fb-realizer
в nosh - виртуальный терминал пользовательского пространства, нацеленный на копирование виртуальных терминалов ядра Linux и FreeBSD/PC-BSD. Он также не имеет зависимостей от библиотек X. logind
сервером в systemd и его понятиями "места". Али Голами Руди, в частности, создал не просто эмулятор терминала для работы с фреймбуфером. Он также написал PDF-просмотрщик, VNC-просмотрщик, медиаплеер и программу для чтения Корана.
Полное сравнение бок о бок выходит за рамки данного ответа; но вот некоторые моменты, которые имеют отношение к вопросу:
fbpad
и инструменты nosh по своей конструкции не используют никаких библиотек X. bdftobogl
; а другой конвертирует TTF в шрифты "tinyfont", которые используются fbpad, с помощью инструмента ft2tf (Arch). console-fb-realizer
использует те же шрифты "vt", что и новая подсистема виртуальных терминалов ядра FreeBSD 10.1, и поэтому использует инструмент манипулирования шрифтами FreeBSD vtfontcvt
для преобразования шрифтов BDF. console-convert-kbdmap
. Опять же, эти файлы kbdmap - те, что используются в подсистеме vt FreeBSD/PC-BSD. login
им нужны привилегии суперпользователя. /etc/ttys
(BSD), /etc/inittab
(Linux system 5 init
) или другой системой, которой они оставляют работу по порождению getty/login/shell. console-fb-realizer
нуждается только в привилегиях, достаточных для открытия фреймбуфера и устройств событий ввода, что не требует привилегий суперпользователя, и для доступа к FIFO и обычным файлам, обслуживаемым console-terminal-emulator
, который, в свою очередь, вообще не нуждается в специальных привилегиях. Все это, конечно, эмуляторы терминалов. Если вы хотите убрать эмуляцию терминала и вывести текст на фреймбуфер более непосредственно, у вас есть несколько вариантов:
console-terminal-emulator
. console-fb-realizer
использует дисплейный файл с массивом символьных ячеек, как /dev/vcsa*
, но обычный файл (не файл специального устройства символов) и с кодовыми точками Unicode, атрибутами ECMA-48 и 24-битным цветом RGB. Так что можно запустить его и просто записать символ+атрибут+цвет прямо в файл массива ячеек символов, позволив console-fb-realizer
выполнить рендеринг шрифта в фреймбуфер.
В качестве дополнения: Обратите внимание, что это противоположно интеграции с BRLTTY, которая использует console-terminal-emulator
, но не запускает console-fb-realizer
.