|
| 1 | +#!/bin/sh |
| 2 | + |
| 3 | +DISTROS="debian devuan" |
| 4 | +ARCHS="arm64 armhf armel" |
| 5 | + |
| 6 | +for DISTRO in $DISTROS; do |
| 7 | + sed -i 's/passwd root/passwd -d root/' $DISTRO-rpi-sd-builder.sh |
| 8 | + sed -i 's/dpkg-reconfigure/dpkg-reconfigure -fnoninteractive/' $DISTRO-rpi-sd-builder.sh |
| 9 | +done |
| 10 | + |
| 11 | +for DISTRO in $DISTROS; do |
| 12 | + if [ $DISTRO = debian ]; then |
| 13 | + SUITES="bullseye buster" |
| 14 | + elif [ $DISTRO = devuan ]; then |
| 15 | + SUITES="chimaera beowulf" |
| 16 | + fi |
| 17 | + for SUITE in $SUITES; do |
| 18 | + for ARCH in $ARCHS; do |
| 19 | + RAWFILE=/var/tmp/${DISTRO}-${SUITE}-${ARCH}-28GiB-`date +%F`.img |
| 20 | + rm -f $RAWFILE |
| 21 | + qemu-img create -f raw $RAWFILE 28G |
| 22 | + LOOPDEVICE=`losetup -f` |
| 23 | + losetup $LOOPDEVICE $RAWFILE |
| 24 | + ( |
| 25 | + echo $LOOPDEVICE |
| 26 | + echo msdos |
| 27 | + echo 1 |
| 28 | + echo ext4 |
| 29 | + echo $SUITE |
| 30 | + echo $ARCH |
| 31 | + echo standard |
| 32 | + if [ $DISTRO = debian ]; then |
| 33 | + echo network-manager |
| 34 | + fi |
| 35 | + echo ${DISTRO}-${SUITE}-${ARCH}-`date +%F` |
| 36 | + echo eth0 |
| 37 | + ) | |
| 38 | + ( |
| 39 | + if [ $DISTRO = debian ]; then |
| 40 | + sh debian-rpi-sd-builder.sh >/dev/null |
| 41 | + elif [ $DISTRO = devuan ]; then |
| 42 | + sh devuan-rpi-sd-builder.sh >/dev/null |
| 43 | + fi |
| 44 | + ) |
| 45 | + MNT=`mktemp -d` |
| 46 | + mount ${LOOPDEVICE}p2 $MNT |
| 47 | + mount ${LOOPDEVICE}p1 ${MNT}/boot/firmware |
| 48 | + #systemd-nspawn -D $MNT -a passwd -d root |
| 49 | + cat >>${MNT}/root/.profile <<'EOF' |
| 50 | +echo "GUI can be installed by apt-get install task-xfce-desktop" |
| 51 | +if ! [ -e $HOME/configured.txt ]; then |
| 52 | + set -ex |
| 53 | + passwd root |
| 54 | + dpkg-reconfigure tzdata |
| 55 | + dpkg-reconfigure locales |
| 56 | + dpkg-reconfigure keyboard-configuration |
| 57 | + set +ex |
| 58 | + data >$HOME/configured.txt |
| 59 | +fi |
| 60 | +EOF |
| 61 | + systemd-nspawn -q -D $MNT -a apt-get -y -q clean |
| 62 | + e4defrag $MNT >/dev/null 2>&1 |
| 63 | + fstrim ${MNT}/boot/firmware |
| 64 | + fstrim ${MNT} |
| 65 | + umount -qf ${MNT}/boot/firmware |
| 66 | + umount -qf ${MNT} |
| 67 | + losetup -d ${LOOPDEVICE} |
| 68 | + rm -rf ${MNT} |
| 69 | + nice -19 xz -9 $RAWFILE & |
| 70 | + done |
| 71 | + done |
| 72 | +done |
| 73 | +wait |
| 74 | + |
0 commit comments