boot: driver chatter goes to the log; the console clears its margins

ACPI, DMI, SMP, xHCI, USB, I2C, NVMe, r8169 and ramdisk progress lines are
kinfo now: in dmesg and on a verbose boot, off the screen of a working
machine. Failures stay cprintf.

vt_repaint also paints the strip right of the last column and below the
last row, which kept the bottom of the X desktop after Ctrl+Alt+F-key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
This commit is contained in:
Nexoniarz 2026-10-25 01:53:46 +02:00
commit c65bfa3fa3
16 changed files with 57 additions and 42 deletions

View file

@ -240,6 +240,21 @@ vt_repaint(struct vt *v)
{
if (!is_active(v))
return;
// The margins first: the screen is rarely a whole number of cells, and the
// strip right of the last column and below the last row belongs to nobody.
// Coming back from X, that strip still held the bottom of the desktop.
int cw, ch;
gfx_cell_size(&cw, &ch);
if (cw > 0 && ch > 0) {
int w = (int)gfx_width(), h = (int)gfx_height();
uint32 bg = vt_rgb(v->bg);
if (w > v->cols * cw)
gfx_fill_rect(v->cols * cw, 0, w - v->cols * cw, h, bg);
if (h > v->rows * ch)
gfx_fill_rect(0, v->rows * ch, w, h - v->rows * ch, bg);
}
for (int r = 0; r < v->rows; r++)
for (int c = 0; c < v->cols; c++) {
struct vtcell *k = cell_at(v, c, r);