Files
reterminal-dm4/emmc-provisioning/README.md
nearxos df180120aa Update TODO and README files to reflect enhancements in kiosk functionality and provisioning scripts</message>
<message>Revise the TODO list to mark completed tasks related to taskbar icon changes, dark theme fixes, and script optimizations for kiosk mode. Update the README files to clarify the structure of the cloud-init fileserver, including new touch-friendly Chromium flags and the addition of a no-select extension for kiosk use. Remove the obsolete touchscreen quirks file to streamline the project. These changes improve documentation clarity and reflect the latest enhancements in the provisioning process.
2026-02-23 22:49:58 +02:00

59 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- Revision: 2 -->
# reTerminal DM4 eMMC provisioning
Automatically **deploy** or **backup** the CM4 eMMC when the reTerminal is connected in **USB boot mode** or when it **boots over the network**. Uses **cloud-init** for first-boot configuration.
Revisions are tracked project-wide; see repo root **README.md** and `scripts/bump-revision.sh`.
---
## Project layout
```
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
│ ├── 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 Deploy to Proxmox host + LXC
│ ├── sync-portal-files-to-lxc.sh Sync cloud-init/first-boot assets to file server (LXC)
│ ├── deploy-dashboard-to-lxc.sh Deploy dashboard to LXC
│ └── ... (other deploy/monitor scripts)
├── dashboard/ Flask web UI (runs in LXC or standalone)
│ ├── app.py
│ └── README.md
├── cloud-init/ First-boot and file-server assets
│ ├── first-boot.sh Main first-boot script (two-phase provisioning)
│ ├── first-boot.conf Active config (not committed with secrets)
│ ├── first-boot.conf.example Reference config
│ ├── user-data-remote-gnss.example Example cloud-init user-data
│ └── fileserver/ Assets served by the portal file server
│ ├── README.md Layout reference
│ ├── steps/ Step scripts (0113) sourced by first-boot.sh
│ ├── chromium-kiosk-no-select/ Chromium extension (disable text selection)
│ ├── start-chromium.sh Chromium kiosk launcher
│ ├── five-tap-close-chromium.py 5-tap overlay (Wayland layer-shell)
│ └── ... Desktop files, config, theme, splash
├── lxc/ LXC config snippets (dnsmasq, nftables)
└── network-client/ For network-booted devices
├── provisioning-client.sh Register + poll, then Deploy or Backup
└── README.md
```
---
## Quick start
1. **Read** [docs/EMMC-PROVISIONING-GUIDE.md](docs/EMMC-PROVISIONING-GUIDE.md) for setup and usage.
2. **Proxmox:** Use [scripts/deploy-to-proxmox.sh](scripts/deploy-to-proxmox.sh) to deploy to a Proxmox host; see [docs/PROXMOX-LXC-DEPLOYMENT.md](docs/PROXMOX-LXC-DEPLOYMENT.md).
3. **Manual host:** Copy scripts from `host/` to the host and install the udev rule (see the guide).
4. Put **golden.img** in `/var/lib/cm4-provisioning/` (or your configured path). When a device is detected (USB or network), the **dashboard** asks **Backup** or **Deploy**.