The /etc/issue banner on both the live ISO and the installed system was a oneshot after network-online.target that simply dropped the http://<ip> line when DHCP hadn't delivered yet — so a slow NIC (first hardware bench, 2026-08-24) left the screen offering only proksi.local. On the ISO, releng's root autologin on tty1 also made agetty --reload a no-op. - furtka-issue.timer (ISO) / furtka-welcome.timer (target) re-run the banner script every 5 s; services drop RemainAfterExit + network wait - fallback line is always present: every global IPv4, or a 'no IP yet — check cable / DHCP' hint; only rewrites + reloads on change - build.sh removes releng's getty@tty1 autologin drop-in; banner tells users a shell is root + Enter away Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MScAinbyMdeNc7H2BZdnnG
36 lines
1.3 KiB
Bash
Executable file
36 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
# Regenerates /etc/issue on the installed system so the console tells the
|
|
# user which URL to open. Mirrors the live-ISO furtka-update-issue pattern:
|
|
# runs at boot and every few seconds from furtka-welcome.timer, so the IP
|
|
# fallback line is always on screen — with the address once DHCP handed one
|
|
# out, or with a "no IP yet" hint before that / after the cable is pulled.
|
|
# Only rewrites + nudges agetty when the text changed (no prompt flicker).
|
|
set -u
|
|
|
|
issue=/etc/issue
|
|
|
|
hostname=$(cat /etc/hostname 2>/dev/null || hostname)
|
|
mapfile -t ips < <(ip -4 -o addr show scope global 2>/dev/null | awk '{print $4}' | cut -d/ -f1)
|
|
|
|
new=$(
|
|
echo
|
|
echo " Furtka is ready."
|
|
echo
|
|
echo " Open in a browser on another device on your network:"
|
|
echo
|
|
echo " http://${hostname}.local (easy — try this first)"
|
|
if ((${#ips[@]})); then
|
|
for ip in "${ips[@]}"; do
|
|
echo " http://${ip} (fallback if the first doesn't work)"
|
|
done
|
|
else
|
|
echo " (fallback: no IP address yet — waiting for the network."
|
|
echo " Check the cable / DHCP. This line updates by itself.)"
|
|
fi
|
|
echo
|
|
)
|
|
|
|
if [ "$new" != "$(cat "$issue" 2>/dev/null)" ]; then
|
|
printf '%s\n' "$new" > "$issue"
|
|
agetty --reload 2>/dev/null || true
|
|
fi
|