diff --git a/multipass/cloud-init-rpios-like-arm64.yaml b/multipass/cloud-init-rpios-like-arm64.yaml new file mode 100644 index 0000000..0e06770 --- /dev/null +++ b/multipass/cloud-init-rpios-like-arm64.yaml @@ -0,0 +1,62 @@ +#cloud-config +hostname: rpios-like-arm64 +manage_etc_hosts: true + +write_files: + - path: /usr/local/sbin/setup-raspi-repo-and-sys-mods-arm64.sh + permissions: "0755" + content: | + #!/usr/bin/env bash + set -euo pipefail + + arch="$(dpkg --print-architecture)" + if [[ "$arch" != "arm64" ]]; then + echo "arm64-only; detected '$arch' -> skipping" >&2 + exit 0 + fi + + export DEBIAN_FRONTEND=noninteractive + + apt-get update + apt-get install -y --no-install-recommends ca-certificates curl gnupg util-linux + + install -d -m 0755 /usr/share/keyrings /etc/apt/preferences.d + + if [[ ! -s /usr/share/keyrings/raspberrypi-archive-keyring.gpg ]]; then + curl -fsSL https://archive.raspberrypi.org/debian/raspberrypi.gpg.key \ + | gpg --dearmor -o /usr/share/keyrings/raspberrypi-archive-keyring.gpg + chmod 0644 /usr/share/keyrings/raspberrypi-archive-keyring.gpg + fi + + #cat >/etc/apt/preferences.d/raspi.pref <<'EOF' + #Package: * + #Pin: origin "archive.raspberrypi.org" + #Pin-Priority: 100 + #EOF + + if [[ ! -f /etc/apt/sources.list.d/raspi.sources ]]; then + cat >/etc/apt/sources.list.d/raspi.sources <<'EOF' + Types: deb + URIs: https://archive.raspberrypi.org/debian/ + Suites: trixie + Components: main + Signed-By: /usr/share/keyrings/raspberrypi-archive-keyring.gpg + EOF + fi + + apt-get update + + # Add custom /etc/rpi-issue for "rpios-like" + if [[ ! -s /etc/rpi-issue ]]; then + { + echo "Raspberry Pi reference trixie-latest $(date -R)" + echo "Emulated using debian-13-genericcloud" + } >/etc/rpi-issue + fi + + echo "---- /etc/rpi-issue ----" + cat /etc/rpi-issue || true + echo "------------------------" + +runcmd: + - [ bash, -lc, "/usr/local/sbin/setup-raspi-repo-and-sys-mods-arm64.sh" ]