First commit

This commit is contained in:
Thomas Schwery 2016-11-06 21:03:25 +01:00
commit 67e6371084
2 changed files with 86 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
tmp.*

85
build.sh Executable file
View file

@ -0,0 +1,85 @@
#!/bin/sh
IMAGELENGTH=$(echo '2 * 1024 * 1024 * 1024' | bc)
SDCARDDEVICE=/dev/mmcblk1
TGT_HOSTNAME="preila"
read -p "Username: " TGT_USERNAME
read -p "Password: " TGT_PASSWORD
IMAGEFILE=$(mktemp -p .)
MOUNTDIR=mount-$(basename $IMAGEFILE)
mkdir $MOUNTDIR
PART_SECTOR_FIRST=34
PART_SECTOR_FIRST_SIZE=32768 # 16MiB = (16 * 1024 * 1024) / 512
PART_SECTOR_SECOND=$(echo $PART_SECTOR_FIRST + $PART_SECTOR_FIRST_SIZE + 1 | bc)
PART_SECTOR_SECOND_END=4194270 # Given by gdisk on a 2GiB image file
PART_SECTOR_SECOND_SIZE=$(echo $PART_SECTOR_SECOND_END - $PART_SECTOR_SECOND | bc)
fallocate -l ${IMAGELENGTH} ${IMAGEFILE}
echo "Partitionning the image file ..."
/sbin/parted --script ${IMAGEFILE} mklabel gpt
cgpt create ${IMAGEFILE}
cgpt add -t kernel -l kernel -b ${PART_SECTOR_FIRST} -s ${PART_SECTOR_FIRST_SIZE} ${IMAGEFILE}
cgpt add -t data -l / -b ${PART_SECTOR_SECOND} -s ${PART_SECTOR_SECOND_SIZE} ${IMAGEFILE}
echo "Formatting the root partition ..."
LOOPDEVICE=$(sudo losetup --partscan --show --find $IMAGEFILE)
sudo mkfs.ext4 ${LOOPDEVICE}p2
sudo mount ${LOOPDEVICE}p2 ${MOUNTDIR}
echo "Bootstrapping a Debian install ..."
sudo debootstrap \
--arch=armel \
--foreign stretch \
--include sudo cgpt vboot-utils vboot-kernel-utils \
$MOUNTDIR \
http://http.debian.net/debian
sudo cp /usr/bin/qemu-arm-static ${MOUNTDIR}/usr/bin/
echo ${TGT_HOSTNAME} | sudo tee ${MOUNTDIR}/etc/hostname >/dev/null
echo "Completing the bootstrap process ..."
sudo chroot ${MOUNTDIR} /debootstrap/debootstrap --second-stage
sudo chroot ${MOUNTDIR} apt install sudo
sudo chroot ${MOUNTDIR} passwd -l root
sudo chroot ${MOUNTDIR} adduser ${TGT_USERNAME}
sudo chroot ${MOUNTDIR} addgroup ${TGT_USERNAME} sudo
sudo tee ${MOUNTDIR}/etc/fstab >/dev/null <<EOF
${SDCARDDEVICE}p2 / ext4 errors=remount-ro 0 1
EOF
sudo umount ${MOUNTDIR}
echo "Signing and copying the kernel ..."
KERNELDIR=$(mktemp -d -p .)
cat > ${KERNELDIR}/kernel.flags <<EOF
console=tty1 printk.time=1 nosplash rootwait root=${SDCARDDEVICE}p2 ro rootfstype=ext4 lsm.module_locking=0
EOF
futility --debug vbutil_kernel \
--arch arm \
--version 1 \
--keyblock /usr/share/vboot/devkeys/kernel.keyblock \
--signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
--bootloader ${KERNELDIR}/kernel.flags \
--config ${KERNELDIR}/kernel.flags \
--vmlinuz kernel_c201.itb \
--pack ${KERNELDIR}/kernel_c201.signed
sudo dd if=${KERNELDIR}/kernel_c201.signed of=${LOOPDEVICE}p1 status=progress
rm -r ${KERNELDIR}
cgpt add -i 1 -P 15 -S 0 -T 1 ${IMAGEFILE}
echo "Cleaning up ..."
sudo losetup -d ${LOOPDEVICE}
rmdir ${MOUNTDIR}