diff --git a/README.md b/README.md new file mode 100644 index 0000000..edf54ff --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# reTerminal DM4 + +Project for **reTerminal DM4** (Seeed) with CM4: Chromium kiosk, eMMC provisioning (USB + network boot), and first-boot configuration via cloud-init. + +## Repository structure + +| Path | Purpose | +|------|---------| +| **emmc-provisioning/** | **Main workflow:** eMMC deploy/backup, cloud-init first-boot, Chromium kiosk assets, file server, dashboard, network boot. See [emmc-provisioning/README.md](emmc-provisioning/README.md). | +| **archive/** | Legacy or unused files (guides, old scripts). Not used for deployment. See [archive/README.md](archive/README.md). | + +## Quick start + +1. Read **emmc-provisioning/docs/EMMC-PROVISIONING-GUIDE.md** for full setup. +2. Use **emmc-provisioning/scripts/sync-portal-files-to-lxc.sh** to sync first-boot assets (including kiosk) to the file server. +3. Provision devices via USB boot or network boot; first-boot configures kiosk, labwc, rotation, wallpaper, dark theme, and optional CM4 boot order. diff --git a/archive/README.md b/archive/README.md new file mode 100644 index 0000000..401867f --- /dev/null +++ b/archive/README.md @@ -0,0 +1,10 @@ +# Archive + +This folder holds files that are no longer part of the active reTerminal DM4 / eMMC provisioning workflow. Kept for reference only. + +| Subfolder | Contents | +|-----------|----------| +| **chromium-setup-legacy/** | Old Chromium-setup guides and scripts: KDE installation, LED/buzzer control, audio config, touchscreen options, Flask apps, test scripts, revert-to-lxde. Kiosk assets (start-chromium.sh, chromium-kiosk.desktop) live in `emmc-provisioning/cloud-init/` and `emmc-provisioning/cloud-init/config-files/`. | +| **cloud-init-duplicates/** | Duplicate or superseded cloud-init files (e.g. plymouth-custom.script duplicate of `files-from-guard/plymouth-custom/custom.script`). | + +Do not rely on archived files for deployment; use the main tree under **emmc-provisioning/**. diff --git a/chromium-setup/AUDIO-CONFIGURATION-REPORT.md b/archive/chromium-setup-legacy/AUDIO-CONFIGURATION-REPORT.md similarity index 100% rename from chromium-setup/AUDIO-CONFIGURATION-REPORT.md rename to archive/chromium-setup-legacy/AUDIO-CONFIGURATION-REPORT.md diff --git a/chromium-setup/BUZZER-CONTROL-SIMPLE.md b/archive/chromium-setup-legacy/BUZZER-CONTROL-SIMPLE.md similarity index 100% rename from chromium-setup/BUZZER-CONTROL-SIMPLE.md rename to archive/chromium-setup-legacy/BUZZER-CONTROL-SIMPLE.md diff --git a/chromium-setup/BUZZER-CONTROL.md b/archive/chromium-setup-legacy/BUZZER-CONTROL.md similarity index 100% rename from chromium-setup/BUZZER-CONTROL.md rename to archive/chromium-setup-legacy/BUZZER-CONTROL.md diff --git a/chromium-setup/BUZZER-TEST-GUIDE.md b/archive/chromium-setup-legacy/BUZZER-TEST-GUIDE.md similarity index 100% rename from chromium-setup/BUZZER-TEST-GUIDE.md rename to archive/chromium-setup-legacy/BUZZER-TEST-GUIDE.md diff --git a/chromium-setup/FLASK-BUZZER-CONTROL.md b/archive/chromium-setup-legacy/FLASK-BUZZER-CONTROL.md similarity index 100% rename from chromium-setup/FLASK-BUZZER-CONTROL.md rename to archive/chromium-setup-legacy/FLASK-BUZZER-CONTROL.md diff --git a/chromium-setup/JIRA-SUMMARY.md b/archive/chromium-setup-legacy/JIRA-SUMMARY.md similarity index 100% rename from chromium-setup/JIRA-SUMMARY.md rename to archive/chromium-setup-legacy/JIRA-SUMMARY.md diff --git a/chromium-setup/KDE-INSTALLATION-GUIDE.md b/archive/chromium-setup-legacy/KDE-INSTALLATION-GUIDE.md similarity index 100% rename from chromium-setup/KDE-INSTALLATION-GUIDE.md rename to archive/chromium-setup-legacy/KDE-INSTALLATION-GUIDE.md diff --git a/chromium-setup/KDE-INSTALLATION-SUMMARY.md b/archive/chromium-setup-legacy/KDE-INSTALLATION-SUMMARY.md similarity index 100% rename from chromium-setup/KDE-INSTALLATION-SUMMARY.md rename to archive/chromium-setup-legacy/KDE-INSTALLATION-SUMMARY.md diff --git a/chromium-setup/LED-CONTROL-GUIDE.md b/archive/chromium-setup-legacy/LED-CONTROL-GUIDE.md similarity index 100% rename from chromium-setup/LED-CONTROL-GUIDE.md rename to archive/chromium-setup-legacy/LED-CONTROL-GUIDE.md diff --git a/chromium-setup/LED-SUMMARY.md b/archive/chromium-setup-legacy/LED-SUMMARY.md similarity index 100% rename from chromium-setup/LED-SUMMARY.md rename to archive/chromium-setup-legacy/LED-SUMMARY.md diff --git a/chromium-setup/LED-TROUBLESHOOTING.md b/archive/chromium-setup-legacy/LED-TROUBLESHOOTING.md similarity index 100% rename from chromium-setup/LED-TROUBLESHOOTING.md rename to archive/chromium-setup-legacy/LED-TROUBLESHOOTING.md diff --git a/chromium-setup/PAGE-SCALING-SOLUTIONS.md b/archive/chromium-setup-legacy/PAGE-SCALING-SOLUTIONS.md similarity index 100% rename from chromium-setup/PAGE-SCALING-SOLUTIONS.md rename to archive/chromium-setup-legacy/PAGE-SCALING-SOLUTIONS.md diff --git a/chromium-setup/TOUCHSCREEN-DESKTOP-OPTIONS.md b/archive/chromium-setup-legacy/TOUCHSCREEN-DESKTOP-OPTIONS.md similarity index 100% rename from chromium-setup/TOUCHSCREEN-DESKTOP-OPTIONS.md rename to archive/chromium-setup-legacy/TOUCHSCREEN-DESKTOP-OPTIONS.md diff --git a/chromium-setup/buzzer_control.html b/archive/chromium-setup-legacy/buzzer_control.html similarity index 100% rename from chromium-setup/buzzer_control.html rename to archive/chromium-setup-legacy/buzzer_control.html diff --git a/chromium-setup/flask_buzzer_app.py b/archive/chromium-setup-legacy/flask_buzzer_app.py similarity index 100% rename from chromium-setup/flask_buzzer_app.py rename to archive/chromium-setup-legacy/flask_buzzer_app.py diff --git a/chromium-setup/flask_led_buzzer_app.py b/archive/chromium-setup-legacy/flask_led_buzzer_app.py similarity index 100% rename from chromium-setup/flask_led_buzzer_app.py rename to archive/chromium-setup-legacy/flask_led_buzzer_app.py diff --git a/chromium-setup/requirements.txt b/archive/chromium-setup-legacy/requirements.txt similarity index 100% rename from chromium-setup/requirements.txt rename to archive/chromium-setup-legacy/requirements.txt diff --git a/chromium-setup/revert-to-lxde.sh b/archive/chromium-setup-legacy/revert-to-lxde.sh similarity index 100% rename from chromium-setup/revert-to-lxde.sh rename to archive/chromium-setup-legacy/revert-to-lxde.sh diff --git a/chromium-setup/starwars_buzzer.sh b/archive/chromium-setup-legacy/starwars_buzzer.sh similarity index 100% rename from chromium-setup/starwars_buzzer.sh rename to archive/chromium-setup-legacy/starwars_buzzer.sh diff --git a/chromium-setup/test_buzzer.py b/archive/chromium-setup-legacy/test_buzzer.py similarity index 100% rename from chromium-setup/test_buzzer.py rename to archive/chromium-setup-legacy/test_buzzer.py diff --git a/chromium-setup/test_buzzer.sh b/archive/chromium-setup-legacy/test_buzzer.sh similarity index 100% rename from chromium-setup/test_buzzer.sh rename to archive/chromium-setup-legacy/test_buzzer.sh diff --git a/chromium-setup/test_led.sh b/archive/chromium-setup-legacy/test_led.sh similarity index 100% rename from chromium-setup/test_led.sh rename to archive/chromium-setup-legacy/test_led.sh diff --git a/chromium-setup/emmc-provisioning/cloud-init/plymouth-custom.script b/archive/cloud-init-duplicates/plymouth-custom.script similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/plymouth-custom.script rename to archive/cloud-init-duplicates/plymouth-custom.script diff --git a/chromium-setup/README.md b/chromium-setup/README.md deleted file mode 100644 index 9de102b..0000000 --- a/chromium-setup/README.md +++ /dev/null @@ -1,147 +0,0 @@ -# Chromium Auto-Start Configuration for Raspberry Pi - -This directory contains scripts and configuration files to automatically start Chromium in fullscreen mode on boot for a Raspberry Pi device (reTerminal DM4). - -## Files - -- **`start-chromium.sh`** - Main startup script that launches Chromium with proper configuration -- **`chromium-kiosk.desktop`** - Autostart desktop entry file -- **`README.md`** - This documentation file - -## Overview - -This setup configures Chromium to: -- Start automatically on boot -- Open in fullscreen mode at `http://127.0.0.1:8080` -- Avoid keyring password prompts -- Prevent restore session notifications -- Properly fill the entire screen (fixes Wayland/X11 fullscreen issues) -- Support both fullscreen and kiosk modes (switchable via script) - -## Installation - -### Prerequisites - -1. **SSH access** to the Raspberry Pi device -2. **Auto-login enabled** (required for autostart to work) -3. **Chromium installed**: `sudo apt-get install chromium` -4. **wmctrl installed**: `sudo apt-get install wmctrl` (for fullscreen forcing) - -### Setup Steps - -1. **Copy the startup script to the device:** - ```bash - scp start-chromium.sh pi@:/home/pi/start-chromium.sh - ssh pi@ "chmod +x /home/pi/start-chromium.sh" - ``` - -2. **Create autostart directory and copy desktop file:** - ```bash - ssh pi@ "mkdir -p ~/.config/autostart" - scp chromium-kiosk.desktop pi@:/home/pi/.config/autostart/chromium-kiosk.desktop - ``` - -3. **Install wmctrl (if not already installed):** - ```bash - ssh pi@ "sudo apt-get update && sudo apt-get install -y wmctrl" - ``` - -4. **Reboot to test:** - ```bash - ssh pi@ "sudo reboot" - ``` - -## Configuration - -### Switching Between Fullscreen and Kiosk Mode - -Edit `/home/pi/start-chromium.sh` on the device: - -- **Fullscreen mode** (current): Uncomment the fullscreen line, comment out the kiosk line -- **Kiosk mode**: Comment out the fullscreen line, uncomment the kiosk line - -### Changing the URL - -Edit the `--app=http://127.0.0.1:8080` parameter in `start-chromium.sh` to point to your desired URL. - -### Adjusting Delays - -If Chromium doesn't start properly on boot, you may need to increase delays: -- Line 25: `sleep 5` - Delay before starting Chromium -- Line 32: `sleep 3` - Delay before forcing fullscreen - -## Troubleshooting - -### Chromium doesn't start on boot -- Verify auto-login is enabled: `sudo raspi-config` → Boot Options → Desktop Autologin -- Check if the script is executable: `chmod +x ~/start-chromium.sh` -- Check autostart file exists: `ls -la ~/.config/autostart/chromium-kiosk.desktop` - -### Fullscreen doesn't work properly -- Ensure `wmctrl` is installed: `sudo apt-get install wmctrl` -- Check if X11 is being used (not Wayland): The script forces X11 with `--ozone-platform=x11` -- Manually test: `DISPLAY=:0 ~/start-chromium.sh` - -### Keyring password prompt appears -- The script includes `--password-store=basic --use-mock-keychain` flags -- If it still appears, you may need to set an empty password for the keyring once - -### Restore session notification appears -- The script includes `--disable-session-crashed-bubble --disable-restore-session-state` flags -- If it still appears, clear Chromium's session data: `rm -rf ~/.config/chromium/Session*` - -## Manual Testing - -Test the script without rebooting: -```bash -ssh pi@ "pkill chromium && sleep 2 && DISPLAY=:0 ~/start-chromium.sh" -``` - -## Exiting Fullscreen/Kiosk Mode - -- **Fullscreen mode**: Press `F11` to toggle fullscreen, or `Alt+F4` to close -- **Kiosk mode**: Use `Ctrl+Alt+T` to open terminal, then `pkill chromium` -- **From SSH**: `ssh pi@ "pkill chromium"` - -## Disabling Autostart - -To temporarily disable autostart: -```bash -ssh pi@ "mv ~/.config/autostart/chromium-kiosk.desktop ~/.config/autostart/chromium-kiosk.desktop.disabled" -``` - -To re-enable: -```bash -ssh pi@ "mv ~/.config/autostart/chromium-kiosk.desktop.disabled ~/.config/autostart/chromium-kiosk.desktop" -``` - -## Chromium Flags Explained - -- `--start-fullscreen` - Start in fullscreen mode -- `--kiosk` - Kiosk mode (no UI, harder to exit) -- `--noerrdialogs` - Suppress error dialogs -- `--disable-infobars` - Remove info bars -- `--disable-session-crashed-bubble` - Disable crash notifications -- `--disable-restore-session-state` - Don't restore previous session -- `--no-first-run` - Skip first-run dialogs -- `--password-store=basic` - Use unencrypted password store (no keyring) -- `--use-mock-keychain` - Avoid keychain prompts -- `--ozone-platform=x11` - Force X11 instead of Wayland (better fullscreen) -- `--app=` - Run as app (no address bar, cleaner interface) - -## Device Information - -- **Device**: reTerminal DM4 (Raspberry Pi) -- **OS**: Raspberry Pi OS (Debian-based) -- **Tested on**: Linux raspberrypi 6.12.62+rpt-rpi-v8 - -## Notes - -- The script waits for the desktop environment to be ready before starting Chromium -- It uses `wmctrl` to programmatically force fullscreen after Chromium starts -- X11 is forced instead of Wayland for better fullscreen compatibility -- The script runs in the background and maintains the Chromium process - -## License - -This configuration is provided as-is for use with the reTerminal DM4 project. diff --git a/chromium-setup/emmc-provisioning/README.md b/emmc-provisioning/README.md similarity index 55% rename from chromium-setup/emmc-provisioning/README.md rename to emmc-provisioning/README.md index dddc7e3..922c404 100644 --- a/chromium-setup/emmc-provisioning/README.md +++ b/emmc-provisioning/README.md @@ -11,24 +11,35 @@ emmc-provisioning/ ├── README.md ← You are here ├── docs/ Documentation │ ├── EMMC-PROVISIONING-GUIDE.md Full setup and usage +│ ├── NETWORK-BOOT-LXC.md Network boot (PXE/dnsmasq) and LXC │ ├── PROXMOX-LXC-DEPLOYMENT.md Proxmox LXC + host setup │ └── PORTAL_STYLING_GUIDE.md Dashboard UI styling reference ├── host/ Scripts that run on the provisioning host (Proxmox host) │ ├── flash-emmc-on-connect.sh rpiboot + wait for Backup/Deploy choice, then dd │ ├── cm4-flash-trigger.sh Called by udev; starts the flash job -│ └── 90-cm4-boot-mode.rules udev rule (USB vendor 2b8e) +│ ├── build-cloudinit-image.sh Build golden image with cloud-init +│ └── run-shrink-on-host.sh PiShrink (optional) ├── scripts/ Deployment and one-off scripts -│ ├── deploy-to-proxmox.sh One-command deploy to Proxmox host + LXC (by hostname) -│ └── install-usbboot-on-host.sh Build and install rpiboot on the host +│ ├── deploy-to-proxmox.sh Deploy to Proxmox host + LXC +│ ├── sync-portal-files-to-lxc.sh Sync cloud-init/first-boot assets to file server (LXC) +│ ├── setup-network-boot-on-lxc.sh Configure PXE/dnsmasq for network boot +│ ├── install-usbboot-on-host.sh Build and install rpiboot on the host +│ └── ... (other deploy/monitor scripts) ├── dashboard/ Flask web UI (runs in LXC or standalone) │ ├── app.py -│ ├── templates/ -│ ├── cm4-dashboard.service │ └── README.md -├── cloud-init/ Example NoCloud files for the golden image -│ ├── user-data -│ ├── meta-data -│ └── network-config +├── cloud-init/ First-boot and file-server assets +│ ├── first-boot.sh Main first-boot script (run by cloud-init) +│ ├── first-boot.md Documentation for first-boot.sh +│ ├── start-chromium.sh Chromium kiosk launcher (→ file server) +│ ├── user-data-remote-gnss.example Example cloud-init user-data (curl first-boot.sh) +│ ├── config-files/ LightDM, Maliit, one-shots (.desktop + scripts) +│ │ ├── chromium-kiosk.desktop +│ │ ├── set-rotation-once.desktop +│ │ └── ... +│ ├── files-from-guard/ Plymouth, splash assets; README of required files +│ └── fix-reterminal-display.sh One-time fix script (splash, rotation, wallpaper) +├── lxc/ LXC config snippets (dnsmasq, nftables) └── network-client/ For network-booted devices ├── provisioning-client.sh Register + poll, then Deploy or Backup └── README.md diff --git a/chromium-setup/emmc-provisioning/cloud-init/config-files/99-default-session.conf b/emmc-provisioning/cloud-init/config-files/99-default-session.conf similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/config-files/99-default-session.conf rename to emmc-provisioning/cloud-init/config-files/99-default-session.conf diff --git a/chromium-setup/emmc-provisioning/cloud-init/config-files/99-wallpaper.conf b/emmc-provisioning/cloud-init/config-files/99-wallpaper.conf similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/config-files/99-wallpaper.conf rename to emmc-provisioning/cloud-init/config-files/99-wallpaper.conf diff --git a/chromium-setup/emmc-provisioning/cloud-init/config-files/README.md b/emmc-provisioning/cloud-init/config-files/README.md similarity index 79% rename from chromium-setup/emmc-provisioning/cloud-init/config-files/README.md rename to emmc-provisioning/cloud-init/config-files/README.md index 8f94e00..0e7650f 100644 --- a/chromium-setup/emmc-provisioning/cloud-init/config-files/README.md +++ b/emmc-provisioning/cloud-init/config-files/README.md @@ -4,9 +4,10 @@ first-boot.sh downloads these from `FILE_SERVER` (e.g. `http://10.130.60.141:500 | File on server | Destination on device | |----------------|------------------------| +| chromium-kiosk.desktop | /home/pi/.config/autostart/chromium-kiosk.desktop (with start-chromium.sh) | | 99-wallpaper.conf | /etc/lightdm/lightdm.conf.d/99-wallpaper.conf | | 99-default-session.conf | /etc/lightdm/lightdm.conf.d/99-default-session.conf (rpd-labwc) | | maliit-keyboard.desktop | /home/pi/.config/autostart/maliit-keyboard.desktop | | set-rotation-once.desktop | /home/pi/.config/autostart/set-rotation-once.desktop (with set-rotation-once.sh) | -Wallpaper is set once during first-boot by creating `~/.config/labwc/autostart` with swaybg; no set-wallpaper-once one-shot. +Wallpaper is set once during first-boot via pcmanfm config; no set-wallpaper-once one-shot. diff --git a/chromium-setup/chromium-kiosk.desktop b/emmc-provisioning/cloud-init/config-files/chromium-kiosk.desktop similarity index 100% rename from chromium-setup/chromium-kiosk.desktop rename to emmc-provisioning/cloud-init/config-files/chromium-kiosk.desktop diff --git a/chromium-setup/emmc-provisioning/cloud-init/config-files/kdeglobals b/emmc-provisioning/cloud-init/config-files/kdeglobals similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/config-files/kdeglobals rename to emmc-provisioning/cloud-init/config-files/kdeglobals diff --git a/chromium-setup/emmc-provisioning/cloud-init/config-files/kwinrc b/emmc-provisioning/cloud-init/config-files/kwinrc similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/config-files/kwinrc rename to emmc-provisioning/cloud-init/config-files/kwinrc diff --git a/chromium-setup/emmc-provisioning/cloud-init/config-files/maliit-keyboard.desktop b/emmc-provisioning/cloud-init/config-files/maliit-keyboard.desktop similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/config-files/maliit-keyboard.desktop rename to emmc-provisioning/cloud-init/config-files/maliit-keyboard.desktop diff --git a/chromium-setup/emmc-provisioning/cloud-init/config-files/set-rotation-once.desktop b/emmc-provisioning/cloud-init/config-files/set-rotation-once.desktop similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/config-files/set-rotation-once.desktop rename to emmc-provisioning/cloud-init/config-files/set-rotation-once.desktop diff --git a/chromium-setup/emmc-provisioning/cloud-init/config-files/set-wallpaper-once.desktop b/emmc-provisioning/cloud-init/config-files/set-wallpaper-once.desktop similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/config-files/set-wallpaper-once.desktop rename to emmc-provisioning/cloud-init/config-files/set-wallpaper-once.desktop diff --git a/chromium-setup/emmc-provisioning/cloud-init/files-from-guard/README.md b/emmc-provisioning/cloud-init/files-from-guard/README.md similarity index 76% rename from chromium-setup/emmc-provisioning/cloud-init/files-from-guard/README.md rename to emmc-provisioning/cloud-init/files-from-guard/README.md index 7a2e828..983db6c 100644 --- a/chromium-setup/emmc-provisioning/cloud-init/files-from-guard/README.md +++ b/emmc-provisioning/cloud-init/files-from-guard/README.md @@ -16,7 +16,7 @@ first-boot.sh downloads from **`.../files/first-boot/`** (e.g. `http://10.130.60 | **maliit-keyboard.desktop** | Maliit on-screen keyboard autostart (from `config-files/`). | | **set-rotation-once.sh** + **.desktop** | One-shot: wlr-randr rotation (Left) at first login. | -Desktop wallpaper is set once during first-boot (labwc autostart created by first-boot.sh); no set-wallpaper-once needed. +Desktop wallpaper is set once during first-boot via pcmanfm config (first-boot.sh); no set-wallpaper-once one-shot needed. --- @@ -26,4 +26,5 @@ Desktop wallpaper is set once during first-boot (labwc autostart created by firs - **plymouth-custom/custom.plymouth** — Plymouth theme definition; host as `custom.plymouth`. - **plymouth-custom/custom.script** — Plymouth script that draws splash.png; host as `custom.script`. - **lightdm/RPiSystem_dark.png** — Unused; only `splash.png` is used now. -- **set-rotation-once.sh** lives in `cloud-init/`; copy it (and its .desktop) into `portal-files/first-boot/` on the file server. +- **start-chromium.sh** and **chromium-kiosk.desktop** live in `cloud-init/` and `cloud-init/config-files/`; `scripts/sync-portal-files-to-lxc.sh` copies them to the portal first-boot folder. +- **set-rotation-once.sh** (and its .desktop) are in `cloud-init/` and synced to `portal-files/first-boot/` by the same script. diff --git a/chromium-setup/emmc-provisioning/cloud-init/files-from-guard/lightdm/RPiSystem_dark.png b/emmc-provisioning/cloud-init/files-from-guard/lightdm/RPiSystem_dark.png similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/files-from-guard/lightdm/RPiSystem_dark.png rename to emmc-provisioning/cloud-init/files-from-guard/lightdm/RPiSystem_dark.png diff --git a/chromium-setup/emmc-provisioning/cloud-init/files-from-guard/plymouth-custom/custom.plymouth b/emmc-provisioning/cloud-init/files-from-guard/plymouth-custom/custom.plymouth similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/files-from-guard/plymouth-custom/custom.plymouth rename to emmc-provisioning/cloud-init/files-from-guard/plymouth-custom/custom.plymouth diff --git a/chromium-setup/emmc-provisioning/cloud-init/files-from-guard/plymouth-custom/custom.script b/emmc-provisioning/cloud-init/files-from-guard/plymouth-custom/custom.script similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/files-from-guard/plymouth-custom/custom.script rename to emmc-provisioning/cloud-init/files-from-guard/plymouth-custom/custom.script diff --git a/chromium-setup/emmc-provisioning/cloud-init/files-from-guard/plymouth-custom/splash.png b/emmc-provisioning/cloud-init/files-from-guard/plymouth-custom/splash.png similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/files-from-guard/plymouth-custom/splash.png rename to emmc-provisioning/cloud-init/files-from-guard/plymouth-custom/splash.png diff --git a/chromium-setup/emmc-provisioning/cloud-init/first-boot.md b/emmc-provisioning/cloud-init/first-boot.md similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/first-boot.md rename to emmc-provisioning/cloud-init/first-boot.md diff --git a/chromium-setup/emmc-provisioning/cloud-init/first-boot.sh b/emmc-provisioning/cloud-init/first-boot.sh similarity index 94% rename from chromium-setup/emmc-provisioning/cloud-init/first-boot.sh rename to emmc-provisioning/cloud-init/first-boot.sh index 8ab75d1..f5326d8 100644 --- a/chromium-setup/emmc-provisioning/cloud-init/first-boot.sh +++ b/emmc-provisioning/cloud-init/first-boot.sh @@ -8,7 +8,7 @@ export DEBIAN_FRONTEND=noninteractive # --- Constants --- # All first-boot assets live in portal-files/first-boot/ on the file server. FILE_SERVER="http://10.130.60.141:5000/files/first-boot" -HOSTNAME="gnss.guard" +HOSTNAME="guard" PI_USER="pi" PI_HOME="/home/$PI_USER" AUTOSTART="$PI_HOME/.config/autostart" @@ -190,8 +190,12 @@ if [[ -f "$CMDLINE_PATH" ]] && ! grep -q 'swiotlb=' "$CMDLINE_PATH"; then log "Added swiotlb=65536 to kernel cmdline (vc4-drm / DSI)" fi -# --- 6c. CM4: enable rpi-eeprom-update (flashrom + config.txt [cm4] block) so boot order can be set --- -# On CM4, rpi-eeprom-update is disabled by default. Enable it so we can set BOOT_ORDER=0x21 (network first). +# --- 6c. CM4: enable rpi-eeprom-update so boot order can be set --- +# On CM4, rpi-eeprom-update is disabled by default. Enable it by setting flags in /etc/default/rpi-eeprom-update. +# We use the bootloader method (pieeprom.upd file placed in /boot/firmware), NOT flashrom. +# NOTE: Do NOT add dtoverlay=audremap or dtoverlay=spi-gpio40-45 to config.txt. +# Those are only needed for the flashrom (direct SPI) method, and audremap CONFLICTS with +# the reTerminal DM display backlight (both use GPIO13 PWM). # See: https://github.com/raspberrypi/usbboot , /etc/default/rpi-eeprom-update log "--- CM4 EEPROM update enable (for boot order) ---" EEPROM_DEFAULT="/etc/default/rpi-eeprom-update" @@ -202,18 +206,6 @@ fi grep -q '^RPI_EEPROM_USE_FLASHROM=' "$EEPROM_DEFAULT" && sed -i 's/^RPI_EEPROM_USE_FLASHROM=.*/RPI_EEPROM_USE_FLASHROM=1/' "$EEPROM_DEFAULT" || echo 'RPI_EEPROM_USE_FLASHROM=1' >> "$EEPROM_DEFAULT" grep -q '^CM4_ENABLE_RPI_EEPROM_UPDATE=' "$EEPROM_DEFAULT" && sed -i 's/^CM4_ENABLE_RPI_EEPROM_UPDATE=.*/CM4_ENABLE_RPI_EEPROM_UPDATE=1/' "$EEPROM_DEFAULT" || echo 'CM4_ENABLE_RPI_EEPROM_UPDATE=1' >> "$EEPROM_DEFAULT" log "Set RPI_EEPROM_USE_FLASHROM=1 and CM4_ENABLE_RPI_EEPROM_UPDATE=1 in $EEPROM_DEFAULT" -# config.txt: [cm4] section with SPI for EEPROM (only applied when booting a CM4) -if [[ -f "$CFG_PATH" ]]; then - if ! grep -q '^\[cm4\]' "$CFG_PATH"; then - printf '%s\n' '' '[cm4]' 'dtparam=spi=on' 'dtoverlay=audremap' 'dtoverlay=spi-gpio40-45' >> "$CFG_PATH" - log "Added [cm4] block (spi, audremap, spi-gpio40-45) to config.txt for EEPROM" - else - for ENTRY in 'dtparam=spi=on' 'dtoverlay=audremap' 'dtoverlay=spi-gpio40-45'; do - grep -q "^$ENTRY" "$CFG_PATH" || echo "$ENTRY" >> "$CFG_PATH" - done - log "Ensured [cm4] EEPROM entries in config.txt" - fi -fi # --- 6d. Boot order: network first, then eMMC/SD (for future network boot / re-provisioning) --- # BOOT_ORDER: 0x2 = network, 0x1 = SD/eMMC. 0x21 = try network first, then local storage. diff --git a/chromium-setup/emmc-provisioning/cloud-init/fix-reterminal-display.sh b/emmc-provisioning/cloud-init/fix-reterminal-display.sh similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/fix-reterminal-display.sh rename to emmc-provisioning/cloud-init/fix-reterminal-display.sh diff --git a/chromium-setup/emmc-provisioning/cloud-init/meta-data b/emmc-provisioning/cloud-init/meta-data similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/meta-data rename to emmc-provisioning/cloud-init/meta-data diff --git a/chromium-setup/emmc-provisioning/cloud-init/network-config b/emmc-provisioning/cloud-init/network-config similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/network-config rename to emmc-provisioning/cloud-init/network-config diff --git a/chromium-setup/emmc-provisioning/cloud-init/set-rotation-once.sh b/emmc-provisioning/cloud-init/set-rotation-once.sh similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/set-rotation-once.sh rename to emmc-provisioning/cloud-init/set-rotation-once.sh diff --git a/chromium-setup/emmc-provisioning/cloud-init/set-wallpaper-once.sh b/emmc-provisioning/cloud-init/set-wallpaper-once.sh similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/set-wallpaper-once.sh rename to emmc-provisioning/cloud-init/set-wallpaper-once.sh diff --git a/chromium-setup/start-chromium.sh b/emmc-provisioning/cloud-init/start-chromium.sh similarity index 100% rename from chromium-setup/start-chromium.sh rename to emmc-provisioning/cloud-init/start-chromium.sh diff --git a/chromium-setup/emmc-provisioning/cloud-init/user-data b/emmc-provisioning/cloud-init/user-data similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/user-data rename to emmc-provisioning/cloud-init/user-data diff --git a/chromium-setup/emmc-provisioning/cloud-init/user-data-kiosk-username-ssh.example b/emmc-provisioning/cloud-init/user-data-kiosk-username-ssh.example similarity index 99% rename from chromium-setup/emmc-provisioning/cloud-init/user-data-kiosk-username-ssh.example rename to emmc-provisioning/cloud-init/user-data-kiosk-username-ssh.example index 1d6b085..3afa13d 100644 --- a/chromium-setup/emmc-provisioning/cloud-init/user-data-kiosk-username-ssh.example +++ b/emmc-provisioning/cloud-init/user-data-kiosk-username-ssh.example @@ -1,7 +1,7 @@ #cloud-config # Example: create user (pi) with password, enable SSH, install KDE Plasma with touch options, # set KDE as default GUI, and deploy Chromium kiosk autostart. -# Uses start-chromium.sh and chromium-kiosk.desktop from this project (chromium-setup/). +# Uses start-chromium.sh and chromium-kiosk.desktop from this project (emmc-provisioning/cloud-init/). # # 1. Generate a password hash on a Linux host: # mkpasswd -m sha-512 'YourPassword' diff --git a/chromium-setup/emmc-provisioning/cloud-init/user-data-remote-bootstrap.example b/emmc-provisioning/cloud-init/user-data-remote-bootstrap.example similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/user-data-remote-bootstrap.example rename to emmc-provisioning/cloud-init/user-data-remote-bootstrap.example diff --git a/chromium-setup/emmc-provisioning/cloud-init/user-data-remote-gnss.example b/emmc-provisioning/cloud-init/user-data-remote-gnss.example similarity index 100% rename from chromium-setup/emmc-provisioning/cloud-init/user-data-remote-gnss.example rename to emmc-provisioning/cloud-init/user-data-remote-gnss.example diff --git a/chromium-setup/emmc-provisioning/dashboard/README.md b/emmc-provisioning/dashboard/README.md similarity index 100% rename from chromium-setup/emmc-provisioning/dashboard/README.md rename to emmc-provisioning/dashboard/README.md diff --git a/chromium-setup/emmc-provisioning/dashboard/app.py b/emmc-provisioning/dashboard/app.py similarity index 100% rename from chromium-setup/emmc-provisioning/dashboard/app.py rename to emmc-provisioning/dashboard/app.py diff --git a/chromium-setup/emmc-provisioning/dashboard/cm4-dashboard.service b/emmc-provisioning/dashboard/cm4-dashboard.service similarity index 100% rename from chromium-setup/emmc-provisioning/dashboard/cm4-dashboard.service rename to emmc-provisioning/dashboard/cm4-dashboard.service diff --git a/chromium-setup/emmc-provisioning/dashboard/requirements.txt b/emmc-provisioning/dashboard/requirements.txt similarity index 100% rename from chromium-setup/emmc-provisioning/dashboard/requirements.txt rename to emmc-provisioning/dashboard/requirements.txt diff --git a/chromium-setup/emmc-provisioning/dashboard/templates/admin.html b/emmc-provisioning/dashboard/templates/admin.html similarity index 100% rename from chromium-setup/emmc-provisioning/dashboard/templates/admin.html rename to emmc-provisioning/dashboard/templates/admin.html diff --git a/chromium-setup/emmc-provisioning/dashboard/templates/cloudinit_build.html b/emmc-provisioning/dashboard/templates/cloudinit_build.html similarity index 100% rename from chromium-setup/emmc-provisioning/dashboard/templates/cloudinit_build.html rename to emmc-provisioning/dashboard/templates/cloudinit_build.html diff --git a/chromium-setup/emmc-provisioning/dashboard/templates/home.html b/emmc-provisioning/dashboard/templates/home.html similarity index 100% rename from chromium-setup/emmc-provisioning/dashboard/templates/home.html rename to emmc-provisioning/dashboard/templates/home.html diff --git a/chromium-setup/emmc-provisioning/dashboard/templates/index.html b/emmc-provisioning/dashboard/templates/index.html similarity index 100% rename from chromium-setup/emmc-provisioning/dashboard/templates/index.html rename to emmc-provisioning/dashboard/templates/index.html diff --git a/chromium-setup/emmc-provisioning/dashboard/templates/login.html b/emmc-provisioning/dashboard/templates/login.html similarity index 100% rename from chromium-setup/emmc-provisioning/dashboard/templates/login.html rename to emmc-provisioning/dashboard/templates/login.html diff --git a/chromium-setup/emmc-provisioning/dashboard/templates/portal_files.html b/emmc-provisioning/dashboard/templates/portal_files.html similarity index 100% rename from chromium-setup/emmc-provisioning/dashboard/templates/portal_files.html rename to emmc-provisioning/dashboard/templates/portal_files.html diff --git a/chromium-setup/emmc-provisioning/docs/EMMC-PROVISIONING-GUIDE.md b/emmc-provisioning/docs/EMMC-PROVISIONING-GUIDE.md similarity index 98% rename from chromium-setup/emmc-provisioning/docs/EMMC-PROVISIONING-GUIDE.md rename to emmc-provisioning/docs/EMMC-PROVISIONING-GUIDE.md index 6eb68c9..92c1cb6 100644 --- a/chromium-setup/emmc-provisioning/docs/EMMC-PROVISIONING-GUIDE.md +++ b/emmc-provisioning/docs/EMMC-PROVISIONING-GUIDE.md @@ -48,8 +48,8 @@ sudo cp rpiboot /opt/usbboot/ #### 3. Install the provisioning script and trigger ```bash -# From this repo (chromium-setup/emmc-provisioning/host/) -cd chromium-setup/emmc-provisioning/host +# From this repo (emmc-provisioning/host/) +cd emmc-provisioning/host sudo mkdir -p /opt/cm4-provisioning sudo cp flash-emmc-on-connect.sh /opt/cm4-provisioning/ @@ -199,7 +199,7 @@ Raw full-disk backups and golden images are the full size of the eMMC (e.g. 32 ```bash # From this repo (on the host or via ssh) - bash chromium-setup/emmc-provisioning/scripts/install-pishrink-on-host.sh + bash emmc-provisioning/scripts/install-pishrink-on-host.sh ``` This installs `parted`, `e2fsprogs`, `gzip`, `pigz`, `xz-utils` and downloads `pishrink.sh` to `/usr/local/bin/pishrink.sh`. diff --git a/chromium-setup/emmc-provisioning/docs/NETWORK-BOOT-LXC.md b/emmc-provisioning/docs/NETWORK-BOOT-LXC.md similarity index 96% rename from chromium-setup/emmc-provisioning/docs/NETWORK-BOOT-LXC.md rename to emmc-provisioning/docs/NETWORK-BOOT-LXC.md index e7b78a8..ca08cc5 100644 --- a/chromium-setup/emmc-provisioning/docs/NETWORK-BOOT-LXC.md +++ b/emmc-provisioning/docs/NETWORK-BOOT-LXC.md @@ -27,7 +27,7 @@ From your machine, run the setup script **on the LXC** (replace with your LXC IP ```bash # From the repo (script runs inside the LXC) -./chromium-setup/emmc-provisioning/scripts/setup-network-boot-on-lxc.sh root@10.130.60.141 +./emmc-provisioning/scripts/setup-network-boot-on-lxc.sh root@10.130.60.141 ``` Or SSH into the LXC and run the script there: @@ -79,7 +79,7 @@ The setup script **automatically downloads** the official Raspberry Pi firmware To refresh or populate TFTP without re-running the full setup: ```bash -./chromium-setup/emmc-provisioning/scripts/populate-tftpboot-from-git.sh root@ +./emmc-provisioning/scripts/populate-tftpboot-from-git.sh root@ ``` (Remove `/srv/tftpboot/start4cd.elf` on the LXC first if you want a full re-fetch.) diff --git a/chromium-setup/emmc-provisioning/docs/PORTAL_STYLING_GUIDE.md b/emmc-provisioning/docs/PORTAL_STYLING_GUIDE.md similarity index 100% rename from chromium-setup/emmc-provisioning/docs/PORTAL_STYLING_GUIDE.md rename to emmc-provisioning/docs/PORTAL_STYLING_GUIDE.md diff --git a/chromium-setup/emmc-provisioning/docs/PROXMOX-LXC-DEPLOYMENT.md b/emmc-provisioning/docs/PROXMOX-LXC-DEPLOYMENT.md similarity index 92% rename from chromium-setup/emmc-provisioning/docs/PROXMOX-LXC-DEPLOYMENT.md rename to emmc-provisioning/docs/PROXMOX-LXC-DEPLOYMENT.md index 041a2ef..6230713 100644 --- a/chromium-setup/emmc-provisioning/docs/PROXMOX-LXC-DEPLOYMENT.md +++ b/emmc-provisioning/docs/PROXMOX-LXC-DEPLOYMENT.md @@ -7,7 +7,7 @@ The auto-flash **runs on the Proxmox host** (where the USB device appears). The From your repo, a single run deploys **all** host and LXC files (scripts, systemd units, udev, dashboard): ```bash -./chromium-setup/emmc-provisioning/scripts/deploy-to-proxmox.sh root@YOUR_PROXMOX_HOST +./emmc-provisioning/scripts/deploy-to-proxmox.sh root@YOUR_PROXMOX_HOST ``` Optional env: `CM4_BACKUPS_HOST_PATH=/path`, `DEPLOY_ROOTFS_STORAGE=local-lvm`, `DEPLOY_LXC_ROOT_PASSWORD=secret` (set root password in LXC and enable SSH), `DEPLOY_LXC_SSH_KEY=/path/to/pub` (default: `~/.ssh/id_ed25519.pub` or `id_rsa.pub` — copied to LXC root so you can `ssh root@`). @@ -59,7 +59,7 @@ On your machine (repo already synced to the host): ```bash # From your repo -scp chromium-setup/emmc-provisioning/scripts/install-usbboot-on-host.sh root@10.130.60.224:/tmp/ +scp emmc-provisioning/scripts/install-usbboot-on-host.sh root@10.130.60.224:/tmp/ ssh root@10.130.60.224 "bash /tmp/install-usbboot-on-host.sh" ``` @@ -82,10 +82,10 @@ Otherwise, to enable root SSH and add a key: ```bash # Add your default SSH key (~/.ssh/id_ed25519.pub or id_rsa.pub) and enable root SSH - ./chromium-setup/emmc-provisioning/scripts/setup-lxc-ssh.sh root@10.130.60.224 + ./emmc-provisioning/scripts/setup-lxc-ssh.sh root@10.130.60.224 # Or specify key file and set root password - ROOT_PASSWORD='YourPassword' ./chromium-setup/emmc-provisioning/scripts/setup-lxc-ssh.sh root@10.130.60.224 ~/.ssh/id_ed25519.pub + ROOT_PASSWORD='YourPassword' ./emmc-provisioning/scripts/setup-lxc-ssh.sh root@10.130.60.224 ~/.ssh/id_ed25519.pub ``` Then connect with `ssh root@` (script prints the IP). To get the LXC IP: @@ -101,7 +101,7 @@ To keep backup images on a specific host path (e.g. a large disk or NFS mount) i **Deploy with a host backup path:** ```bash -CM4_BACKUPS_HOST_PATH=/mnt/storage/cm4-backups ./chromium-setup/emmc-provisioning/scripts/deploy-to-proxmox.sh root@10.130.60.224 +CM4_BACKUPS_HOST_PATH=/mnt/storage/cm4-backups ./emmc-provisioning/scripts/deploy-to-proxmox.sh root@10.130.60.224 ``` Create `/mnt/storage/cm4-backups` (or your path) on the host first if it doesn’t exist; the deploy script will create it if possible. To add or change the backup mount, set `CM4_BACKUPS_HOST_PATH` and run the deploy script again (it reuses the container by hostname and updates the bind mount). @@ -130,7 +130,7 @@ The dashboard shows **connection steps** and **live deployment status** (idle / ```bash # Copy dashboard into the container (from host, if you have the repo there) # Or from your workstation: -# rsync -a chromium-setup/emmc-provisioning/dashboard/ root@10.130.60.224:/tmp/dashboard/ +# rsync -a emmc-provisioning/dashboard/ root@10.130.60.224:/tmp/dashboard/ # Or re-run deploy-to-proxmox.sh to push the latest dashboard files. # Inside the LXC (pct exec -- bash): @@ -189,7 +189,7 @@ From the **Proxmox host** you can monitor: ```bash # From your machine (stream script to host): -ssh root@10.130.60.224 'bash -s' < chromium-setup/emmc-provisioning/scripts/monitor-from-host.sh +ssh root@10.130.60.224 'bash -s' < emmc-provisioning/scripts/monitor-from-host.sh ``` Or copy `scripts/monitor-from-host.sh` to the host and run `./monitor-from-host.sh` for a full status dump (USB, status.json, flash unit, last log lines, block devices, config). @@ -200,7 +200,7 @@ Or copy `scripts/monitor-from-host.sh` to the host and run `./monitor-from-host. 1. **Host has old flash script** – The script must *not* exit when the golden image is missing (so you can use Backup first). Update the host: ```bash - scp chromium-setup/emmc-provisioning/host/flash-emmc-on-connect.sh root@10.130.60.224:/opt/cm4-provisioning/ + scp emmc-provisioning/host/flash-emmc-on-connect.sh root@10.130.60.224:/opt/cm4-provisioning/ ssh root@10.130.60.224 "chmod +x /opt/cm4-provisioning/flash-emmc-on-connect.sh" ``` @@ -212,7 +212,7 @@ Or copy `scripts/monitor-from-host.sh` to the host and run `./monitor-from-host. 4. **Clear stuck error in portal** – If the portal shows an old error (e.g. "Golden image not found" or "rpiboot failed"), click **Clear message** in the dashboard, or: `ssh root@10.130.60.224 "echo '{\"phase\":\"idle\",\"message\":\"Waiting for reTerminal in boot mode or network.\",\"progress\":null}' > /var/lib/cm4-provisioning/status.json"`. Then unplug/replug the device. -5. **"PiShrink not installed" when clicking Shrink/Compress** – Shrink and Compress run **on the host**, not in the LXC. Install PiShrink on the host: `ssh root@HOST 'bash -s' < chromium-setup/emmc-provisioning/scripts/install-pishrink-on-host.sh`. Ensure deploy has been run so the host has `run-shrink-on-host.sh` and `cm4-shrink.path` enabled (`systemctl status cm4-shrink.path`). +5. **"PiShrink not installed" when clicking Shrink/Compress** – Shrink and Compress run **on the host**, not in the LXC. Install PiShrink on the host: `ssh root@HOST 'bash -s' < emmc-provisioning/scripts/install-pishrink-on-host.sh`. Ensure deploy has been run so the host has `run-shrink-on-host.sh` and `cm4-shrink.path` enabled (`systemctl status cm4-shrink.path`). 6. **"Download failed" when building cloud-init image** – The download runs on the **host** (not the LXC). Check: (1) Host can reach the internet: `ssh root@HOST 'curl -sI https://downloads.raspberrypi.com/'`. (2) Build status now shows curl’s error (e.g. "Could not resolve host", "Connection timed out"); check the dashboard error text. (3) If you use a proxy or custom CA, set in `/opt/cm4-provisioning/env`: `CURL_INSECURE=1` to skip SSL verify (only if you understand the risk), then rerun the build. @@ -227,7 +227,7 @@ Or copy `scripts/monitor-from-host.sh` to the host and run `./monitor-from-host. From your repo (e.g. after changing scripts): ```bash -./chromium-setup/emmc-provisioning/scripts/deploy-to-proxmox.sh root@10.130.60.224 +./emmc-provisioning/scripts/deploy-to-proxmox.sh root@10.130.60.224 ``` That script syncs the repo to the host and reinstalls scripts on both the host and LXC 201. It does **not** overwrite `/opt/cm4-provisioning/env` or `/etc/cm4-provisioning/enabled` if you’ve changed them; adjust the script if you want that. It also does **not** build usbboot; run `install-usbboot-on-host.sh` on the host when needed. diff --git a/chromium-setup/emmc-provisioning/host/89-cm4-boot-mode-permissions.rules b/emmc-provisioning/host/89-cm4-boot-mode-permissions.rules similarity index 100% rename from chromium-setup/emmc-provisioning/host/89-cm4-boot-mode-permissions.rules rename to emmc-provisioning/host/89-cm4-boot-mode-permissions.rules diff --git a/chromium-setup/emmc-provisioning/host/90-cm4-boot-mode.rules b/emmc-provisioning/host/90-cm4-boot-mode.rules similarity index 100% rename from chromium-setup/emmc-provisioning/host/90-cm4-boot-mode.rules rename to emmc-provisioning/host/90-cm4-boot-mode.rules diff --git a/chromium-setup/emmc-provisioning/host/README.md b/emmc-provisioning/host/README.md similarity index 100% rename from chromium-setup/emmc-provisioning/host/README.md rename to emmc-provisioning/host/README.md diff --git a/chromium-setup/emmc-provisioning/host/build-cloudinit-image.sh b/emmc-provisioning/host/build-cloudinit-image.sh similarity index 100% rename from chromium-setup/emmc-provisioning/host/build-cloudinit-image.sh rename to emmc-provisioning/host/build-cloudinit-image.sh diff --git a/chromium-setup/emmc-provisioning/host/cm4-build-cloudinit.path b/emmc-provisioning/host/cm4-build-cloudinit.path similarity index 100% rename from chromium-setup/emmc-provisioning/host/cm4-build-cloudinit.path rename to emmc-provisioning/host/cm4-build-cloudinit.path diff --git a/chromium-setup/emmc-provisioning/host/cm4-build-cloudinit.service b/emmc-provisioning/host/cm4-build-cloudinit.service similarity index 100% rename from chromium-setup/emmc-provisioning/host/cm4-build-cloudinit.service rename to emmc-provisioning/host/cm4-build-cloudinit.service diff --git a/chromium-setup/emmc-provisioning/host/cm4-flash-trigger.sh b/emmc-provisioning/host/cm4-flash-trigger.sh similarity index 100% rename from chromium-setup/emmc-provisioning/host/cm4-flash-trigger.sh rename to emmc-provisioning/host/cm4-flash-trigger.sh diff --git a/chromium-setup/emmc-provisioning/host/cm4-flash.service b/emmc-provisioning/host/cm4-flash.service similarity index 100% rename from chromium-setup/emmc-provisioning/host/cm4-flash.service rename to emmc-provisioning/host/cm4-flash.service diff --git a/chromium-setup/emmc-provisioning/host/cm4-shrink.path b/emmc-provisioning/host/cm4-shrink.path similarity index 100% rename from chromium-setup/emmc-provisioning/host/cm4-shrink.path rename to emmc-provisioning/host/cm4-shrink.path diff --git a/chromium-setup/emmc-provisioning/host/cm4-shrink.service b/emmc-provisioning/host/cm4-shrink.service similarity index 100% rename from chromium-setup/emmc-provisioning/host/cm4-shrink.service rename to emmc-provisioning/host/cm4-shrink.service diff --git a/chromium-setup/emmc-provisioning/host/flash-emmc-on-connect.sh b/emmc-provisioning/host/flash-emmc-on-connect.sh similarity index 100% rename from chromium-setup/emmc-provisioning/host/flash-emmc-on-connect.sh rename to emmc-provisioning/host/flash-emmc-on-connect.sh diff --git a/chromium-setup/emmc-provisioning/host/run-shrink-on-host.sh b/emmc-provisioning/host/run-shrink-on-host.sh similarity index 100% rename from chromium-setup/emmc-provisioning/host/run-shrink-on-host.sh rename to emmc-provisioning/host/run-shrink-on-host.sh diff --git a/chromium-setup/emmc-provisioning/lxc/README.md b/emmc-provisioning/lxc/README.md similarity index 88% rename from chromium-setup/emmc-provisioning/lxc/README.md rename to emmc-provisioning/lxc/README.md index 0e052dd..536f8b9 100644 --- a/chromium-setup/emmc-provisioning/lxc/README.md +++ b/emmc-provisioning/lxc/README.md @@ -10,7 +10,7 @@ Config files for the **provisioning LXC** when using **eth1** as a provisioning Setup is done by running (from your machine): ```bash -./chromium-setup/emmc-provisioning/scripts/setup-network-boot-on-lxc.sh root@ +./emmc-provisioning/scripts/setup-network-boot-on-lxc.sh root@ ``` See [../docs/NETWORK-BOOT-LXC.md](../docs/NETWORK-BOOT-LXC.md) for full documentation. diff --git a/chromium-setup/emmc-provisioning/lxc/dnsmasq-network-boot.conf b/emmc-provisioning/lxc/dnsmasq-network-boot.conf similarity index 100% rename from chromium-setup/emmc-provisioning/lxc/dnsmasq-network-boot.conf rename to emmc-provisioning/lxc/dnsmasq-network-boot.conf diff --git a/chromium-setup/emmc-provisioning/lxc/nft-nat-lan.conf b/emmc-provisioning/lxc/nft-nat-lan.conf similarity index 100% rename from chromium-setup/emmc-provisioning/lxc/nft-nat-lan.conf rename to emmc-provisioning/lxc/nft-nat-lan.conf diff --git a/chromium-setup/emmc-provisioning/network-client/README.md b/emmc-provisioning/network-client/README.md similarity index 100% rename from chromium-setup/emmc-provisioning/network-client/README.md rename to emmc-provisioning/network-client/README.md diff --git a/chromium-setup/emmc-provisioning/network-client/provisioning-client.sh b/emmc-provisioning/network-client/provisioning-client.sh similarity index 100% rename from chromium-setup/emmc-provisioning/network-client/provisioning-client.sh rename to emmc-provisioning/network-client/provisioning-client.sh diff --git a/chromium-setup/emmc-provisioning/scripts/build-and-deploy-usbboot-to-host.sh b/emmc-provisioning/scripts/build-and-deploy-usbboot-to-host.sh similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/build-and-deploy-usbboot-to-host.sh rename to emmc-provisioning/scripts/build-and-deploy-usbboot-to-host.sh diff --git a/chromium-setup/emmc-provisioning/scripts/check-usb-on-host.sh b/emmc-provisioning/scripts/check-usb-on-host.sh similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/check-usb-on-host.sh rename to emmc-provisioning/scripts/check-usb-on-host.sh diff --git a/chromium-setup/emmc-provisioning/scripts/deploy-20260218-095749.log b/emmc-provisioning/scripts/deploy-20260218-095749.log similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/deploy-20260218-095749.log rename to emmc-provisioning/scripts/deploy-20260218-095749.log diff --git a/chromium-setup/emmc-provisioning/scripts/deploy-20260218-095859.log b/emmc-provisioning/scripts/deploy-20260218-095859.log similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/deploy-20260218-095859.log rename to emmc-provisioning/scripts/deploy-20260218-095859.log diff --git a/chromium-setup/emmc-provisioning/scripts/deploy-20260218-101119.log b/emmc-provisioning/scripts/deploy-20260218-101119.log similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/deploy-20260218-101119.log rename to emmc-provisioning/scripts/deploy-20260218-101119.log diff --git a/chromium-setup/emmc-provisioning/scripts/deploy-dashboard-to-lxc.sh b/emmc-provisioning/scripts/deploy-dashboard-to-lxc.sh similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/deploy-dashboard-to-lxc.sh rename to emmc-provisioning/scripts/deploy-dashboard-to-lxc.sh diff --git a/chromium-setup/emmc-provisioning/scripts/deploy-to-proxmox.sh b/emmc-provisioning/scripts/deploy-to-proxmox.sh similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/deploy-to-proxmox.sh rename to emmc-provisioning/scripts/deploy-to-proxmox.sh diff --git a/chromium-setup/emmc-provisioning/scripts/fix-gadget-bootcode-on-host.sh b/emmc-provisioning/scripts/fix-gadget-bootcode-on-host.sh similarity index 95% rename from chromium-setup/emmc-provisioning/scripts/fix-gadget-bootcode-on-host.sh rename to emmc-provisioning/scripts/fix-gadget-bootcode-on-host.sh index 4743441..c1fec17 100644 --- a/chromium-setup/emmc-provisioning/scripts/fix-gadget-bootcode-on-host.sh +++ b/emmc-provisioning/scripts/fix-gadget-bootcode-on-host.sh @@ -4,7 +4,7 @@ # This script removes broken symlinks and extracts bootcode4.bin from the installed rpiboot binary. # # On host: bash fix-gadget-bootcode-on-host.sh -# From your machine: ssh root@HOST 'bash -s' < chromium-setup/emmc-provisioning/scripts/fix-gadget-bootcode-on-host.sh +# From your machine: ssh root@HOST 'bash -s' < emmc-provisioning/scripts/fix-gadget-bootcode-on-host.sh set -e GADGET="${1:-/opt/usbboot/mass-storage-gadget64}" diff --git a/chromium-setup/emmc-provisioning/scripts/install-pishrink-on-host.sh b/emmc-provisioning/scripts/install-pishrink-on-host.sh similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/install-pishrink-on-host.sh rename to emmc-provisioning/scripts/install-pishrink-on-host.sh diff --git a/chromium-setup/emmc-provisioning/scripts/install-usbboot-on-host.sh b/emmc-provisioning/scripts/install-usbboot-on-host.sh similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/install-usbboot-on-host.sh rename to emmc-provisioning/scripts/install-usbboot-on-host.sh diff --git a/chromium-setup/emmc-provisioning/scripts/monitor-from-host.sh b/emmc-provisioning/scripts/monitor-from-host.sh similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/monitor-from-host.sh rename to emmc-provisioning/scripts/monitor-from-host.sh diff --git a/chromium-setup/emmc-provisioning/scripts/populate-gadget-on-host.sh b/emmc-provisioning/scripts/populate-gadget-on-host.sh similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/populate-gadget-on-host.sh rename to emmc-provisioning/scripts/populate-gadget-on-host.sh diff --git a/chromium-setup/emmc-provisioning/scripts/populate-tftpboot-from-git.sh b/emmc-provisioning/scripts/populate-tftpboot-from-git.sh similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/populate-tftpboot-from-git.sh rename to emmc-provisioning/scripts/populate-tftpboot-from-git.sh diff --git a/chromium-setup/emmc-provisioning/scripts/setup-lxc-ssh.sh b/emmc-provisioning/scripts/setup-lxc-ssh.sh similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/setup-lxc-ssh.sh rename to emmc-provisioning/scripts/setup-lxc-ssh.sh diff --git a/chromium-setup/emmc-provisioning/scripts/setup-network-boot-on-lxc.sh b/emmc-provisioning/scripts/setup-network-boot-on-lxc.sh similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/setup-network-boot-on-lxc.sh rename to emmc-provisioning/scripts/setup-network-boot-on-lxc.sh diff --git a/chromium-setup/emmc-provisioning/scripts/sync-portal-files-to-lxc.sh b/emmc-provisioning/scripts/sync-portal-files-to-lxc.sh similarity index 89% rename from chromium-setup/emmc-provisioning/scripts/sync-portal-files-to-lxc.sh rename to emmc-provisioning/scripts/sync-portal-files-to-lxc.sh index b523fb8..a2da70d 100755 --- a/chromium-setup/emmc-provisioning/scripts/sync-portal-files-to-lxc.sh +++ b/emmc-provisioning/scripts/sync-portal-files-to-lxc.sh @@ -25,11 +25,14 @@ ssh "$LXC" "mkdir -p $REMOTE_FIRST_BOOT" # first-boot.sh at portal root (cloud-init downloads it by URL, not from first-boot/ subfolder) rsync -avz "$CLOUDINIT_DIR/first-boot.sh" "$LXC:$REMOTE_PORTAL/" -# config-files/* → portal-files/first-boot/ +# config-files/* (includes chromium-kiosk.desktop) → portal-files/first-boot/ rsync -avz --exclude='README.md' \ "$CLOUDINIT_DIR/config-files/" \ "$LXC:$REMOTE_FIRST_BOOT/" +# start-chromium.sh → portal-files/first-boot/ +rsync -avz "$CLOUDINIT_DIR/start-chromium.sh" "$LXC:$REMOTE_FIRST_BOOT/" + # plymouth-custom/* (custom.plymouth, custom.script, splash.png if present) → portal-files/first-boot/ rsync -avz \ "$CLOUDINIT_DIR/files-from-guard/plymouth-custom/" \ diff --git a/chromium-setup/emmc-provisioning/scripts/troubleshoot-cloudinit-build.sh b/emmc-provisioning/scripts/troubleshoot-cloudinit-build.sh similarity index 100% rename from chromium-setup/emmc-provisioning/scripts/troubleshoot-cloudinit-build.sh rename to emmc-provisioning/scripts/troubleshoot-cloudinit-build.sh