Route fallback consoles through activate_console
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -57,6 +57,7 @@ greeter/auth/session-launch stack on the `redbear-full` desktop path.
|
||||
| redbear-session-launch | **builds** | User-session bootstrap tool; runtime-dir/env setup, uid/gid handoff, dbus-run-session → `redbear-kde-session`, target-side recipe build proven |
|
||||
| redbear-greeterd | **builds, experimental** | Root-owned greeter orchestrator; UI/auth socket protocol, bounded restart policy, return-to-greeter daemon logic, crate tests pass; end-to-end runtime proof still pending |
|
||||
| redbear-greeter UI | **builds, experimental** | Qt6/QML unprivileged login surface now ships in-tree; bounded runtime proof remains narrower than a full trusted KDE desktop-login claim |
|
||||
| TUI login fallback | **builds, boots** | `29_activate_console.service` now owns VT3 activation for `30_console.service` and `31_debug_console.service`, keeping VT2/ debug fallback consoles independent of `20_greeter.service` success |
|
||||
| redbear-validation-session | **builds, bounded helper** | Still staged as a validation launcher/helper, but no longer the primary `redbear-full` display-service owner |
|
||||
| Greeter runtime checker | ✅ implemented (bounded checker) | `redbear-greeter-check` asserts greeter binaries, assets, service files, socket reachability, hello protocol, invalid-login handling, and a validation-only successful-login/session-return loop inside the guest |
|
||||
| Greeter QEMU harness | ✅ implemented (bounded harness) | `test-greeter-qemu.sh` boots `redbear-full`, logs in on the fallback console, and now passes the in-guest greeter checker for hello, invalid-login, and bounded successful-login return-to-greeter proof |
|
||||
@@ -81,7 +82,7 @@ greeter/auth/session-launch stack on the `redbear-full` desktop path.
|
||||
### `redbear-full`
|
||||
|
||||
- **Role:** Active desktop/graphics compile target and current greeter-integration surface
|
||||
- **Current truth:** Carries D-Bus, sessiond, broader integration pieces, and the experimental Red Bear-native greeter/auth/session-launch stack; VirtIO networking works in QEMU, the bounded Phase 5 network/session checker is evidence-backed there, and the repo now includes a bounded greeter checker/harness for the login surface. `redbear-validation-session` remains staged only as a bounded helper, not the active `20_display.service` owner on this target.
|
||||
- **Current truth:** Carries D-Bus, sessiond, broader integration pieces, and the experimental Red Bear-native greeter/auth/session-launch stack; VirtIO networking works in QEMU, the bounded Phase 5 network/session checker is evidence-backed there, and the repo now includes a bounded greeter checker/harness for the login surface. `redbear-validation-session` remains staged only as a bounded helper, not the active `20_display.service` owner on this target. TUI fallback (`30_console.service`/`31_debug_console.service`) is now triggered through `29_activate_console.service` and is decoupled from greeter success.
|
||||
- **Use for:** Desktop integration testing, greeter/login bring-up, and bounded desktop/network plumbing validation
|
||||
- **Do not overclaim:** This profile proves bounded QEMU desktop/network plumbing only. It does not by itself close the Wi-Fi implementation plan's later real-hardware Phase W5 reporting/recovery gate.
|
||||
|
||||
@@ -94,7 +95,7 @@ greeter/auth/session-launch stack on the `redbear-full` desktop path.
|
||||
### `redbear-mini`
|
||||
|
||||
- **Role:** Minimal non-desktop target
|
||||
- **Current truth:** No desktop/graphics path; recovery and non-desktop integration surface only
|
||||
- **Current truth:** No desktop/graphics path; recovery and non-desktop integration surface only. TUI recovery is bound to VT activation through `29_activate_console.service` followed by `30_console.service`/`31_debug_console.service`.
|
||||
- **Use for:** Minimal runtime bring-up, subsystem validation, and non-desktop packaging checks
|
||||
|
||||
### `redbear-live-mini`
|
||||
|
||||
@@ -119,7 +119,7 @@ Rules:
|
||||
| authentication daemon | `local/recipes/system/redbear-authd/` | ✅ builds, experimental | Local-user auth boundary with `/etc/passwd` / `/etc/shadow` / `/etc/group` parsing plus SHA-crypt and Argon2 verification |
|
||||
| session launcher boundary | `local/recipes/system/redbear-session-launch/` | ✅ builds, experimental | User-session bootstrap with bounded environment/runtime-dir setup |
|
||||
| greeter daemon scaffold | `local/recipes/system/redbear-greeter/` | ✅ builds, experimental | Root-owned greeter orchestrator, socket protocol, bounded restart policy |
|
||||
| greeter config fragment | `config/redbear-greeter-services.toml` | ✅ builds, experimental | Adds `19_redbear-authd.service`, `20_greeter.service`, compatibility `20_display.service`, and fallback console dependencies |
|
||||
| greeter config fragment | `config/redbear-greeter-services.toml` | ✅ builds, experimental | Adds `19_redbear-authd.service`, `20_greeter.service`, compatibility `20_display.service`, and fallback console services that are no longer tied to greeter success |
|
||||
| bounded validation launcher | `/usr/bin/redbear-validation-session` | ✅ retained helper | Still available for older bounded validation flows, but no longer the primary `redbear-full` display-service path |
|
||||
| branding assets | `local/Assets/images/` | ✅ present | `Red Bear OS loading background.png`, `Red Bear OS icon.png` |
|
||||
|
||||
@@ -148,6 +148,20 @@ greeter slice**: the old `kwin_wayland` crash path has been eliminated, and curr
|
||||
clean `No suitable DRM devices have been found` exits instead. That means the follow-on work has
|
||||
shifted to the parent desktop/Wayland/runtime plans rather than to missing core greeter/auth/session-boundary pieces here.
|
||||
|
||||
### 4.5 TUI Prompt Reliability Correction
|
||||
|
||||
The non-appearance of TUI fallback prompts in some boot paths was traced to startup graph coupling:
|
||||
|
||||
- `29_activate_console.service` was configured as `oneshot` in desktop/graphics variants, which adds unnecessary synchronization pressure on startup.
|
||||
- `30_console.service` and `31_debug_console.service` depended on `20_greeter.service`, so greeter/auth startup risk could suppress fallback consoles.
|
||||
- `minimal` variants had `30_console` and `31_debug_console` as separate graph roots, which could start before VT activation and race console ownership.
|
||||
|
||||
Mitigations now in place:
|
||||
|
||||
- `29_activate_console.service` in the affected graphics variants was moved to `oneshot_async` (it executes quickly and returns after VT switch).
|
||||
- `30_console.service` and `31_debug_console.service` now depend on `29_activate_console.service` where they are explicit console units (instead of being tied to greeter/auth flow).
|
||||
- The VT3 activation path is now the graph root: `20_display.service` → `29_activate_console.service` (TUI fallback units). Greeter startup remains independent of fallback text console availability.
|
||||
|
||||
Future work beyond this plan should continue **without** replacing the current seat/session substrate
|
||||
and without removing existing console recovery paths.
|
||||
|
||||
@@ -298,10 +312,11 @@ boot
|
||||
→ 12_dbus.service (system D-Bus)
|
||||
→ 13_redbear-sessiond.service (login1 subset)
|
||||
→ 13_seatd.service (seat backend)
|
||||
→ 20_greeter.service (start redbear-greeterd on VT3)
|
||||
→ 20_display.service (VT3 session compatibility layer)
|
||||
→ 29_activate_console.service (inputd -A 3)
|
||||
→ 30_console.service (fallback getty 2 on VT2)
|
||||
→ 31_debug_console.service (debug getty)
|
||||
→ 30_console.service (fallback getty on VT2)
|
||||
→ 31_debug_console.service (fallback debug getty)
|
||||
→ 20_greeter.service (start redbear-greeterd on VT3)
|
||||
→ redbear-greeter-ui shows login surface on VT3
|
||||
→ successful login
|
||||
→ redbear-session-launch
|
||||
|
||||
Reference in New Issue
Block a user