Skip to content

Alpha.8 firstboot/config path can disappear when state readiness fails #20

Description

@Deadbytes101

Physical symptom

The current rigos-usb-amd64-0.0.4-alpha.8.img can boot without presenting a configuration flow. Mining remains stopped because no persistent configuration is committed or activated.

Root cause found in source

rigos-firstboot.service contains:

Requires=rigos-state-ready.service

The firstboot program itself contains a state_not_ready UI path, but systemd prevents the program from running when rigos-state-ready.service fails. This creates a silent dead end:

state readiness fails
-> firstboot never owns tty1
-> no diagnostic or manual configuration screen
-> miner gate remains closed

The unit also waits for network-online.target, although firstboot configuration and diagnostics must be available offline.

Exact-image verification gap

The image verifier checks that the firstboot service and script exist and contain selected strings, but it does not currently assert:

  • the service is enabled in multi-user.target.wants
  • firstboot does not hard-require successful state readiness
  • firstboot does not depend on network-online
  • tty1 is forcefully acquired for the setup flow
  • a failed state-ready path still reaches the firstboot diagnostic UI

Required fix

  • change state-ready from a hard requirement to ordering/wanted dependency
  • remove network-online from the firstboot launch path
  • ensure firstboot owns tty1 before getty
  • retain fail-closed mining when persistent state is unavailable
  • add source and exact-image contracts for the boot path
  • rebuild as a new image; do not overwrite or relabel alpha.8

Acceptance

  • blank/unprovisioned USB state shows manual configuration selection
  • unavailable/failed state shows an explicit blocked diagnostic instead of silently skipping firstboot
  • miner stays stopped until a committed configuration activates successfully
  • exact image verifier proves the service is enabled and the dependency contract is correct
  • physical boot test confirms the setup screen appears on tty1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions