mirror of
https://github.com/CyberMind-FR/secubox-deb.git
synced 2026-07-29 12:34:38 +00:00
fix(boot): Remove graphical.target that blocked input (v1.6.7.4)
Root cause: GRUB Kiosk entry used systemd.unit=graphical.target but no display manager was installed. systemd waited forever for graphical.target → getty never started → no keyboard input. Fixes: - Remove systemd.unit=graphical.target from Kiosk GRUB entry - Revert getty Type=idle to simple service (v1.6.7.3) - Enable backup TTYs (tty2-6) for emergency access Closes #24 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
7a34189ed4
commit
f201558649
|
|
@ -1,5 +1,37 @@
|
|||
# WIP — Work In Progress
|
||||
*Mis à jour : 2026-04-13 (Session 52)*
|
||||
*Mis à jour : 2026-04-13 (Session 53)*
|
||||
|
||||
---
|
||||
|
||||
## ✅ Terminé cette session (Session 53)
|
||||
|
||||
### v1.6.7.4 — Fix Boot Input Freeze (Critical) ✅
|
||||
|
||||
#### Problem
|
||||
Both VirtualBox AND real hardware frozen at boot:
|
||||
- No keyboard input working
|
||||
- No login prompt visible
|
||||
- No VT switching
|
||||
- Kiosk not starting
|
||||
|
||||
#### Root Cause (ACTUAL)
|
||||
GRUB Kiosk entry used `systemd.unit=graphical.target` but **no display manager** was installed.
|
||||
systemd waited forever for graphical.target → getty never started → no input.
|
||||
|
||||
#### Fix Applied (v1.6.7.4)
|
||||
**`image/build-live-usb.sh`** — Removed `systemd.unit=graphical.target` from Kiosk GRUB entry:
|
||||
```bash
|
||||
# BROKEN:
|
||||
linux ... secubox.kiosk=1 systemd.unit=graphical.target
|
||||
|
||||
# FIXED:
|
||||
linux ... secubox.kiosk=1
|
||||
# (kiosk service is in multi-user.target, not graphical.target)
|
||||
```
|
||||
|
||||
Also applied in v1.6.7.3:
|
||||
- Reverted getty `Type=idle` to simple service
|
||||
- Enabled backup TTYs (tty2-6) for emergency access
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|||
REPO_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
|
||||
# ── Version & Build Info ──────────────────────────────────────────
|
||||
SECUBOX_VERSION="1.6.7.2"
|
||||
SECUBOX_VERSION="1.6.7.4"
|
||||
BUILD_TIMESTAMP=$(date '+%Y-%m-%d %H:%M')
|
||||
BUILD_DATE=$(date '+%Y%m%d')
|
||||
|
||||
|
|
@ -236,14 +236,15 @@ sed -i 's/#PasswordAuthentication.*/PasswordAuthentication yes/' "${ROOTFS}/etc/
|
|||
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' "${ROOTFS}/etc/ssh/sshd_config"
|
||||
|
||||
# ── Autologin root on tty1 ────────────────────────────────────────
|
||||
# Use -o to pass login options explicitly for reliable autologin
|
||||
# -p preserves environment, -f skips auth, -- \\u passes username
|
||||
# Simple autologin - DO NOT use Type=idle (blocks until all jobs done = no input)
|
||||
mkdir -p "${ROOTFS}/etc/systemd/system/getty@tty1.service.d"
|
||||
cat > "${ROOTFS}/etc/systemd/system/getty@tty1.service.d/override.conf" <<'EOF'
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root %I $TERM
|
||||
Type=idle
|
||||
ExecStart=-/sbin/agetty --autologin root --noclear %I linux
|
||||
StandardInput=tty
|
||||
StandardOutput=tty
|
||||
TTYVTDisallocate=no
|
||||
EOF
|
||||
|
||||
# Disable login timeout (default 60s breaks autologin sessions)
|
||||
|
|
@ -251,8 +252,10 @@ sed -i 's/^LOGIN_TIMEOUT.*/LOGIN_TIMEOUT 0/' "${ROOTFS}/etc/login.defs"
|
|||
# Also ensure no TMOUT in profile
|
||||
echo 'unset TMOUT' >> "${ROOTFS}/etc/profile.d/secubox.sh"
|
||||
|
||||
# Enable getty@tty1 and set default target
|
||||
# Enable gettys - tty1 (autologin), tty2-3 (backup login prompts)
|
||||
chroot "${ROOTFS}" systemctl enable getty@tty1.service 2>/dev/null || true
|
||||
chroot "${ROOTFS}" systemctl enable getty@tty2.service 2>/dev/null || true
|
||||
chroot "${ROOTFS}" systemctl enable getty@tty3.service 2>/dev/null || true
|
||||
chroot "${ROOTFS}" systemctl set-default multi-user.target 2>/dev/null || true
|
||||
|
||||
# Disable live-config autologin
|
||||
|
|
@ -3019,7 +3022,7 @@ menuentry "⚡ SecuBox Live v${SECUBOX_VERSION}" {
|
|||
}
|
||||
|
||||
menuentry "🖼️ SecuBox Live v${SECUBOX_VERSION} (Kiosk GUI) [DEFAULT]" {
|
||||
linux (\$live)/live/vmlinuz boot=live live-media-path=/live rootdelay=10 components persistence quiet splash secubox.kiosk=1 systemd.unit=graphical.target
|
||||
linux (\$live)/live/vmlinuz boot=live live-media-path=/live rootdelay=10 components persistence quiet splash secubox.kiosk=1
|
||||
initrd (\$live)/live/initrd.img
|
||||
}
|
||||
GRUBCFG
|
||||
|
|
|
|||
|
|
@ -258,7 +258,7 @@ create_session() {
|
|||
# Session script with simple splash and debug logging
|
||||
cat > "$KIOSK_HOME/.xsession" <<'XSESSION'
|
||||
#!/bin/bash
|
||||
# SecuBox Kiosk - X Session (v1.6.7.2)
|
||||
# SecuBox Kiosk - X Session (v1.6.7.3)
|
||||
exec >> /tmp/kiosk-session.log 2>&1
|
||||
echo "=== X Session Start: $(date) ==="
|
||||
|
||||
|
|
@ -492,7 +492,7 @@ start_display() {
|
|||
# ══════════════════════════════════════════════════════════════════
|
||||
main() {
|
||||
log "════════════════════════════════════════════════"
|
||||
log "SecuBox Kiosk Launcher v2.5 (1.6.7.2) - Debug Enabled"
|
||||
log "SecuBox Kiosk Launcher v2.6 (1.6.7.3) - Debug Enabled"
|
||||
log "════════════════════════════════════════════════"
|
||||
|
||||
# Generate debug report FIRST for troubleshooting
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user