<message>Eliminate network boot options from the dashboard, including API endpoints and UI elements, to streamline the provisioning process for USB boot only. Update messages and documentation to reflect the removal of network boot functionality, ensuring clarity for users. Adjust the cloud-init build process and related templates to focus solely on USB boot mode, enhancing the overall user experience and simplifying the workflow.
33 lines
1.8 KiB
Markdown
33 lines
1.8 KiB
Markdown
<!-- Revision: 2 -->
|
|
# Host-side provisioning scripts
|
|
|
|
These files run on the **provisioning host** (e.g. the Proxmox host where the reTerminal is connected via USB).
|
|
|
|
| File | Purpose |
|
|
|------|--------|
|
|
| **flash-emmc-on-connect.sh** | Runs `rpiboot`, detects eMMC, waits for dashboard choice (Backup/Deploy), then runs `dd`. Install to `/opt/cm4-provisioning/`. |
|
|
| **cm4-flash-trigger.sh** | Started by udev when USB device 2b8e is added. Launches the flash script via `systemd-run`. Install to `/usr/local/bin/`. |
|
|
| **90-cm4-boot-mode.rules** | udev rule: on USB add (vendor 2b8e), run the trigger. Install to `/etc/udev/rules.d/`. |
|
|
|
|
See [../docs/EMMC-PROVISIONING-GUIDE.md](../docs/EMMC-PROVISIONING-GUIDE.md) for full setup. The [deploy script](../scripts/deploy-to-proxmox.sh) copies these into place on the Proxmox host and LXC.
|
|
|
|
### Stuck “finalizing: Compressing image (xz)…” on the host
|
|
|
|
If the dashboard still shows that message, run on the **host** (e.g. `ssh root@10.20.30.152`):
|
|
|
|
```bash
|
|
# 1) See current status and whether build/xz is still running
|
|
PROV="${CM4_PROVISIONING_DIR:-/var/lib/cm4-provisioning}"
|
|
cat "$PROV/build_cloudinit_status.json"
|
|
ps aux | grep -E 'build-cloudinit|xz.*\.img' | grep -v grep
|
|
|
|
# 2a) If a build is still running and you want to cancel it
|
|
touch "$PROV/build_cloudinit_cancel"
|
|
# Script checks every 2s; after it exits, status will show "cancelled"
|
|
|
|
# 2b) If no build process is running but status is stuck, reset to idle
|
|
echo '{"phase":"idle","message":"","output_name":null,"error":null,"updated":'$(date +%s)'}' > "$PROV/build_cloudinit_status.json"
|
|
```
|
|
|
|
The status lives in **`build_cloudinit_status.json`** (host: `$PROV_DIR/`; dashboard: `CM4_BUILD_STATUS_FILE` or `BASE_DIR/`). You can refresh the dashboard or click **Dismiss** to clear the message (Dismiss force-clears even when stuck).
|