Project

General

Profile

Feature #10028

loader: implement framebuffer console

Added by Toomas Soome 7 months ago. Updated 6 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
bootloader
Start date:
2018-07-19
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Difficulty:
Expert
Tags:

Description

Create common (linear framebuffer based) graphical local console with our own terminal emulator.

The UEFI does provide the framebuffer as default (at least 800x600x32 as minimum resolution), if possible, set the same for BIOS.
Add TEM as terminal emulator.
Use built in 8x16 font for fall back, load "best font" when available (see /boot/fonts) and pass it to the kernel as module.
add loadfont command for manual font loading.
add screen-font variable to make it possible to set font size by name (set screen-font without the value will list the alternatives).

Implement few gfx primitives to support drawing the display elements, including the png image for logo. We currently only do put logo at right lower corner of the screen.
Draw black on white by default (it does look better with illumos phoenix and is nice otherwise).
User can set ansi colors (0-7 or by names) via tem.fg_color and tem.bg_color
Implement common framebuffer set | get | list | on | off to manage the FB.
Introduce some nice bugs we can fix later.


Subtasks

Feature #8918: loader.efi: add vesa edid supportClosedToomas Soome

Actions
Feature #9664: loader: need UEFI32 supportClosedToomas Soome

Actions
Bug #9665: loader: UEFI loader needs to set ISADIR based on hardwareClosedToomas Soome

Actions
Feature #10029: common/font: create shared font.cClosedToomas Soome

Actions
Feature #10030: import pnglite into usr/src/common/pngliteClosedToomas Soome

Actions
Feature #10031: loader: import tem for loader consoleClosedToomas Soome

Actions
Feature #10032: loader: implement tem utf-8 supportClosedToomas Soome

Actions
Feature #10033: ficl: add simple gfx wordsClosedToomas Soome

Actions
Feature #10034: loader: use term-drawrect for menu frameClosedToomas Soome

Actions
Feature #10035: loader: add alpha blending for gfx_fbClosedToomas Soome

Actions
Feature #10036: ficl: add fb-putimageClosedToomas Soome

Actions
Feature #10037: loader: add illumos.png logoClosedToomas Soome

Actions
Feature #10038: loader: replace gop and vesa with framebufferClosedToomas Soome

Actions
Feature #10039: loader: build rules for new font setupClosedToomas Soome

Actions
Feature #10040: loader: gfx use GOP Blt() function in visual_io callbacksClosedToomas Soome

Actions

History

#1

Updated by Toomas Soome 7 months ago

  • Related to Feature #8918: loader.efi: add vesa edid support added
#2

Updated by Toomas Soome 7 months ago

  • Related to deleted (Feature #8918: loader.efi: add vesa edid support)
#3

Updated by Electric Monk 6 months ago

  • Status changed from In Progress to Closed

git commit 9890ff8357a674572254e0be06b175a1e8eab4b0

commit  9890ff8357a674572254e0be06b175a1e8eab4b0
Author: Toomas Soome <tsoome@me.com>
Date:   2019-01-07T09:11:18.000Z

    10028 loader: implement framebuffer console
    10029 common/font: create shared font.c
    10030 import pnglite into usr/src/common/pnglite
    8918 loader.efi: add vesa edid support
    10031 loader: import tem for loader console
    10032 loader: implement tem utf-8 support
    10033 ficl: add simple gfx words
    10034 loader: use term-drawrect for menu frame
    10035 loader: add alpha blending for gfx_fb
    10036 ficl: add fb-putimage
    10037 loader: add illumos.png logo
    10038 loader: replace gop and vesa with framebuffer
    10039 loader: build rules for new font setup
    10040 loader: gfx use GOP Blt() function in visual_io callbacks
    Reviewed by: Robert Mustacchi <rm@joyent.com>
    Reviewed by: Gergő Mihály Doma <domag02@gmail.com>
    Approved by: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>

Also available in: Atom PDF