mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 02:11:53 +00:00
* create init resize for pi * wip * defer to OS_ARCH env var * enable password auth in live image * use correct live image path * reorder dependencies * add grub-common as dependency * add more depends * reorder grub * include systemd-resolved * misc fixes * remove grub from dependencies * imports * ssh and raspi builds * fix resolvectl * generate snake-oil on install * update raspi build process * script fixes * fix resize and config * add psmisc * new workflows * include img * pass through OS_ARCH env var * require OS_ARCH * allow dispatching production builds * configurable environment * pass through OS_ARCH on compat build * fix syntax error * crossbuild dependencies * include libavahi-client for cross builds * reorder add-arch * add ports * switch existing repos to amd64 * explicitly install libc6 * add more bullshit * fix some errors * use ignored shlibs * remove ubuntu ports * platform deb * Update depends * Update startos-iso.yaml * Update startos-iso.yaml * require pi-beep * add bios boot, fix environment * Update startos-iso.yaml * inline deb * Update startos-iso.yaml * allow ssh password auth in live build * sync hostname on livecd * require curl
88 lines
2.3 KiB
Bash
Executable File
88 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
function partition_for () {
|
|
if [[ "$1" =~ [0-9]+$ ]]; then
|
|
echo "$1p$2"
|
|
else
|
|
echo "$1$2"
|
|
fi
|
|
}
|
|
|
|
VERSION=$(cat VERSION.txt)
|
|
ENVIRONMENT=$(cat ENVIRONMENT.txt)
|
|
GIT_HASH=$(cat GIT_HASH.txt | head -c 7)
|
|
DATE=$(date +%Y%m%d)
|
|
|
|
VERSION_FULL="$VERSION-$GIT_HASH"
|
|
|
|
if [ -n "$ENVIRONMENT" ]; then
|
|
VERSION_FULL="$VERSION_FULL~$ENVIRONMENT"
|
|
fi
|
|
|
|
TARGET_NAME=eos-${VERSION_FULL}-${DATE}_raspberrypi.img
|
|
TARGET_SIZE=$[(6817791+1)*512]
|
|
|
|
rm -f $TARGET_NAME
|
|
truncate -s $TARGET_SIZE $TARGET_NAME
|
|
(
|
|
echo o
|
|
echo x
|
|
echo i
|
|
echo "0xcb15ae4d"
|
|
echo r
|
|
echo n
|
|
echo p
|
|
echo 1
|
|
echo 2048
|
|
echo 526335
|
|
echo t
|
|
echo c
|
|
echo n
|
|
echo p
|
|
echo 2
|
|
echo 526336
|
|
echo 6817791
|
|
echo a
|
|
echo 1
|
|
echo w
|
|
) | fdisk $TARGET_NAME
|
|
OUTPUT_DEVICE=$(sudo losetup --show -fP $TARGET_NAME)
|
|
sudo mkfs.ext4 `partition_for ${OUTPUT_DEVICE} 2`
|
|
sudo mkfs.vfat `partition_for ${OUTPUT_DEVICE} 1`
|
|
|
|
TMPDIR=$(mktemp -d)
|
|
|
|
sudo mount `partition_for ${OUTPUT_DEVICE} 2` $TMPDIR
|
|
sudo mkdir $TMPDIR/boot
|
|
sudo mount `partition_for ${OUTPUT_DEVICE} 1` $TMPDIR/boot
|
|
sudo unsquashfs -f -d $TMPDIR eos.raspberrypi.squashfs
|
|
REAL_GIT_HASH=$(cat $TMPDIR/usr/lib/embassy/GIT_HASH.txt)
|
|
REAL_VERSION=$(cat $TMPDIR/usr/lib/embassy/VERSION.txt)
|
|
REAL_ENVIRONMENT=$(cat $TMPDIR/usr/lib/embassy/ENVIRONMENT.txt)
|
|
sudo cp ./build/raspberrypi/cmdline.txt $TMPDIR/boot/
|
|
sudo cp ./build/raspberrypi/config.txt $TMPDIR/boot/
|
|
sudo cp ./build/raspberrypi/fstab $TMPDIR/etc/
|
|
sudo mkdir -p $TMPDIR/etc/embassy
|
|
sudo cp ./build/raspberrypi/config.yaml $TMPDIR/etc/embassy
|
|
sudo cp ./build/raspberrypi/init_resize.sh $TMPDIR//usr/lib/embassy/scripts/init_resize.sh
|
|
sudo cp ./cargo-deps/aarch64-unknown-linux-gnu/release/pi-beep $TMPDIR/usr/local/bin/beep
|
|
sudo umount $TMPDIR/boot
|
|
sudo umount $TMPDIR
|
|
sudo losetup -d $OUTPUT_DEVICE
|
|
|
|
if [ "$ALLOW_VERSION_MISMATCH" != 1 ]; then
|
|
if [ "$(cat GIT_HASH.txt)" != "$REAL_GIT_HASH" ]; then
|
|
>&2 echo "eos.raspberrypi.squashfs GIT_HASH.txt mismatch"
|
|
exit 1
|
|
fi
|
|
if [ "$(cat VERSION.txt)" != "$REAL_VERSION" ]; then
|
|
>&2 echo "eos.raspberrypi.squashfs VERSION.txt mismatch"
|
|
exit 1
|
|
fi
|
|
if [ "$(cat ENVIRONMENT.txt)" != "$REAL_ENVIRONMENT" ]; then
|
|
>&2 echo "eos.raspberrypi.squashfs ENVIRONMENT.txt mismatch"
|
|
exit 1
|
|
fi
|
|
fi |