Skip to content

Display IP address and boot status on framebuffer/HDMI output #336

@paralin

Description

@paralin

Problem

When booting SkiffOS on devices with HDMI/display output, users have difficulty determining:

  • The device's IP address for SSH connection
  • Whether the system is still booting or has hung
  • Progress of initial container builds (NixOS, Docker images, etc.)

This leads to confusion during initial setup, especially for users without serial console access.

Context

From issue #330: User reported needing to use nmap to scan the network to find their Raspberry Pi's IP address, which was "a nightmare." They suggested NixOS installer's approach of printing the IP on the framebuffer console as a good solution.

The user also noted that during first boot, the system appeared to be "looping" when it was actually compiling/building containers, but there was no visual feedback on the HDMI output.

Proposed Solution

Implement a boot splash/dashboard displayed on tty1 that shows:

  • Device hostname
  • Network interfaces and their IP addresses
  • Boot progress/status
  • Active/failing services
  • Current build/setup operations in progress
  • Instructions for SSH access

Implementation Ideas

From the #330 discussion:

  1. Auto-login to tty1 with a custom display program:

    tty1::respawn:/bin/skiff-core splashscreen
    
  2. Use Alt+F{n} to switch to other ttys for normal login shells

  3. Forward systemd journal logs to kmsg for better visibility:

    systemd.journald.forward_to_kmsg=yes
    
  4. Implement splashscreen functionality in skiff-core (already written in Go, compiled for target)

Benefits

  • Significantly improves user experience during initial setup
  • Reduces support requests about "device not booting"
  • Makes it obvious when system is doing background work
  • Provides discoverable IP address without network scanning
  • Helps users understand what's happening during first boot

Examples from Other Distros

  • NixOS installers display IP address on console
  • Many embedded Linux distros show boot progress and system info
  • Alpine Linux can auto-login and spawn custom programs on tty

Related

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions