Monorepo for Aesthetic.Computer aesthetic.computer
at main 129 lines 4.7 kB view raw view rendered
1# FedAC Kiosk USB — Boot Report 2 3**Date:** 2025-02-24 4**USB:** 14.5G (toss piece, EROFS lzma, Fedora 43 live) 5 6--- 7 8## Current Status: Black Screen in Firefox 9 10Firefox boots and runs (F10 opens bookmarks, cursor visible), but **all page content is black** — including a plain HTML diagnostic page. 11 12### Root Cause: `firefox.cfg` Color Override 13 14```js 15// These two lines together = black text on black background 16defaultPref("browser.display.background_color", "#000000"); 17defaultPref("browser.display.document_color_use", 2); 18// document_color_use=2 means "ALWAYS override page colors with user colors" 19// We set background to black but never set foreground → defaults to black 20// Result: ALL page content invisible (black on black) 21``` 22 23Browser chrome (bookmarks, toolbar) still renders because it uses its own color scheme — only web page content is affected by `document_color_use`. 24 25### Fix 26 27Remove `document_color_use = 2` (let pages use their own CSS colors). Keep the black background for flash prevention but don't override page foreground colors. 28 29### If Still Black After Fix 30 31Escalation path: 321. Add `LIBGL_ALWAYS_SOFTWARE=1` to kiosk-session.sh (force software GL rendering) 332. Add `gfx.webrender.force-disabled=true` to firefox.cfg (disable WebRender) 343. Simplify firefox.cfg to absolute minimum (rule out autoconfig parsing errors) 354. Enable SSH on kiosk for remote debugging via port 9222 36 37--- 38 39## Boot Chain (All Working) 40 41``` 42UEFI POST 43└─ GRUB (timeout=0, no Plymouth) 44 └─ Kernel 6.17.1-300.fc43.x86_64 (loglevel=7) 45 └─ initrd (dracut + dmsquash-live) 46 └─ mounts EROFS (lzma, 2.1GB) via overlayfs 47 └─ systemd → multi-user.target 48 └─ getty@tty1 autologin → liveuser 49 └─ .bash_profile → kiosk-session.sh 50 └─ cage (Wayland kiosk compositor) ✅ 51 └─ Firefox --fullscreen ✅ 52 └─ file:///...piece.html → BLACK ❌ 53``` 54 55--- 56 57## USB Layout 58 59``` 60sda1 (400MB FAT32 "BOOT") 61├── EFI/BOOT/grub.cfg 62└── loader/{linux, initrd} 63 64sda2 (ext4 "FEDAC-LIVE") 65├── LiveOS/squashfs.img (2.1GB EROFS lzma) 66└── logs/ (persistent, empty — log services not firing) 67``` 68 69## Key EROFS Files 70 71| Path | Purpose | 72|------|---------| 73| `/usr/local/bin/kiosk-session.sh` | cage + Firefox launch | 74| `/usr/local/share/kiosk/piece.html` | toss bundle (599KB) | 75| `/usr/local/share/kiosk/diag.html` | diagnostic page | 76| `/usr/lib64/firefox/distribution/policies.json` | Firefox admin policies | 77| `/usr/lib64/firefox/firefox.cfg` | Firefox autoconfig prefs | 78| `/usr/lib64/firefox/defaults/pref/autoconfig.js` | Loads firefox.cfg | 79| `/etc/systemd/system/getty@tty1.service.d/autologin.conf` | liveuser autologin | 80| `/home/liveuser/.bash_profile` | Runs kiosk-session.sh on tty1 | 81| `/usr/bin/cage` | Wayland kiosk compositor | 82 83## Current kiosk-session.sh 84 85```bash 86#!/bin/bash 87export XDG_SESSION_TYPE=wayland 88export XDG_RUNTIME_DIR="/run/user/$(id -u)" 89export MOZ_ENABLE_WAYLAND=1 90exec > /tmp/kiosk.log 2>&1 91exec cage -- \ 92 firefox --fullscreen --no-remote \ 93 --remote-debugging-port=9222 \ 94 --profile /home/liveuser/.mozilla/firefox/kiosk \ 95 file:///usr/local/share/kiosk/piece.html 96``` 97 98--- 99 100## Resolved Issues 101 102| Issue | Cause | Fix | 103|-------|-------|-----| 104| Boot shuts down | GRUB `gfxmode=auto` + `terminal_output gfxterm` | Switched to `terminal_output console` | 105| Plymouth holds VT | Masked `plymouth-quit.service` | Unmasked + drop-in with `--retain-splash` | 106| HTTPServer crash | `__new__` bypassed `BaseServer.__init__` | `PreBoundHTTPServer` subclass | 107| Firefox loads wrong URL | policies.json hardcoded `http://127.0.0.1:8080` | Changed to `file:///` | 108| PALS logo missing | Watermark in rootfs Plymouth, but initrd shows Fedora logo | Needs initrd rebuild (deferred) | 109| Log services empty | kiosk-log-dump at shutdown.target — may not fire on crash | Needs early debug service | 110 111--- 112 113## Roadmap 114 115### Immediate 116- [ ] Fix `document_color_use` black-on-black issue 117- [ ] Verify piece.html renders in Firefox on kiosk 118- [ ] Enable SSH on kiosk for remote debugging 119 120### Short Term 121- [ ] Re-enable Plymouth with PALS logo 122- [ ] Pre-warm Firefox profile (startup cache) 123- [ ] Fix log dump services (early boot + shutdown) 124- [ ] Switch EROFS to zstd compression (faster decompression) 125 126### Long Term 127- [ ] initrd framebuffer hook (PALS logo before Plymouth) 128- [ ] Custom minimal initrd (strip unused dracut modules) 129- [ ] Piece server in Rust (replace Python, <10ms startup)