Update of build script and FIT config
- Use a root.tar.gz file if existing instead of debootstrap (quicker) - Copy FIT from InstallingDebianOn/Asus/C201 - Fixed various path errors - Dated image filename - Improved cleanup
This commit is contained in:
parent
5546814bae
commit
35421cdd13
2 changed files with 76 additions and 29 deletions
89
build.sh
89
build.sh
|
@ -6,14 +6,18 @@ SDCARDDEVICE=/dev/mmcblk1
|
|||
TGT_HOSTNAME="preila"
|
||||
|
||||
read -p "Username: " TGT_USERNAME
|
||||
read -p "Password: " TGT_PASSWORD
|
||||
# 1234
|
||||
TGT_PASSWORD='$6$2b3uuej5$fIOp13FK5BnkDo5hX7hP8bmsGeKk9cXl.FAtZ6Ti/3W4dZp4GAY1ZbD2D8jygK5Z7mCnsjGp9uzsIEBRITvO50'
|
||||
|
||||
IMAGEFILE=$(mktemp -p .)
|
||||
MOUNTDIR=mount-$(basename $IMAGEFILE)
|
||||
mkdir $MOUNTDIR
|
||||
BASEDIR=$(mktemp -d -p .)
|
||||
IMAGEFILE="${BASEDIR}/image-$(date +'%y-%m-%d_%H:%M').raw"
|
||||
MOUNTDIR="${BASEDIR}/mnt"
|
||||
KERNELDIR="${BASEDIR}/kernel"
|
||||
|
||||
mkdir ${MOUNTDIR} ${KERNELDIR}
|
||||
|
||||
PART_SECTOR_FIRST=34
|
||||
PART_SECTOR_FIRST_SIZE=32768 # 16MiB = (16 * 1024 * 1024) / 512
|
||||
PART_SECTOR_FIRST_SIZE=49152 # 24MiB = (24 * 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)
|
||||
|
@ -28,41 +32,69 @@ cgpt add -t data -l / -b ${PART_SECTOR_SECOND} -s ${PART_SECTOR_SECOND_SIZE} ${I
|
|||
|
||||
echo "Formatting the root partition ..."
|
||||
LOOPDEVICE=$(sudo losetup --partscan --show --find $IMAGEFILE)
|
||||
sudo mkfs.ext4 ${LOOPDEVICE}p2
|
||||
sudo mkfs.ext2 ${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/
|
||||
CURRENTDIR=$(pwd)
|
||||
if [ -f root.tar.gz ]; then
|
||||
echo "Extracting provided root image"
|
||||
cd ${MOUNTDIR} && sudo tar xvf ${CURRENTDIR}/root.tar.gz
|
||||
cd ${CURRENTDIR}
|
||||
else
|
||||
echo "Bootstrapping a Debian install ..."
|
||||
sudo debootstrap \
|
||||
--arch=armhf \
|
||||
--foreign \
|
||||
--include=sudo,cgpt,vboot-utils,vboot-kernel-utils \
|
||||
stretch \
|
||||
$MOUNTDIR \
|
||||
http://http.debian.net/debian
|
||||
|
||||
sudo cp /usr/bin/qemu-arm-static ${MOUNTDIR}/usr/bin/
|
||||
sudo chroot ${MOUNTDIR} /debootstrap/debootstrap --second-stage
|
||||
fi
|
||||
|
||||
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} useradd -p ${TGT_PASSWORD} -m ${TGT_USERNAME}
|
||||
sudo chroot ${MOUNTDIR} addgroup ${TGT_USERNAME} sudo
|
||||
|
||||
sudo tee -a ${MOUNTDIR}/etc/apt/sources.list >/dev/null <<EOF
|
||||
deb http://deb.debian.org/debian sid main
|
||||
EOF
|
||||
|
||||
sudo tee ${MOUNTDIR}/etc/apt/preferences.d/pinning >/dev/null <<EOF
|
||||
Package: *
|
||||
Pin: release a=testing
|
||||
Pin-Priority: 500
|
||||
|
||||
Package: *
|
||||
Pin: release a=unstable
|
||||
Pin-Priority: 250
|
||||
EOF
|
||||
|
||||
sudo chroot ${MOUNTDIR} apt-get update
|
||||
sudo chroot ${MOUNTDIR} apt-get --assume-yes install linux-image-4.8.0-1-armmp-unsigned
|
||||
|
||||
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 .)
|
||||
|
||||
cp ${MOUNTDIR}/boot/vmlinuz-4.8.0-1-armmp ${MOUNTDIR}/boot/initrd.img-4.8.0-1-armmp ${KERNELDIR}
|
||||
cp ${MOUNTDIR}/usr/lib/linux-image-4.8.0-1-armmp/rk3288-veyron-speedy.dtb ${KERNELDIR}
|
||||
|
||||
cat > ${KERNELDIR}/kernel.flags <<EOF
|
||||
console=tty1 printk.time=1 nosplash rootwait root=${SDCARDDEVICE}p2 ro rootfstype=ext4 lsm.module_locking=0
|
||||
console=tty1 printk.time=1 nosplash rootwait root=/dev/mmcblk1p2 rw rootfstype=ext4 lsm.module_locking=0
|
||||
EOF
|
||||
|
||||
cp kernel_c201.its ${KERNELDIR}
|
||||
cd ${KERNELDIR}
|
||||
mkimage -f kernel_c201.its kernel_c201.itb
|
||||
cd ${CURRENTDIR}
|
||||
|
||||
futility --debug vbutil_kernel \
|
||||
--arch arm \
|
||||
--version 1 \
|
||||
|
@ -70,16 +102,19 @@ futility --debug vbutil_kernel \
|
|||
--signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
|
||||
--bootloader ${KERNELDIR}/kernel.flags \
|
||||
--config ${KERNELDIR}/kernel.flags \
|
||||
--vmlinuz kernel_c201.itb \
|
||||
--vmlinuz ${KERNELDIR}/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 umount ${MOUNTDIR}
|
||||
sudo losetup -d ${LOOPDEVICE}
|
||||
|
||||
rm -r ${KERNELDIR}
|
||||
rmdir ${MOUNTDIR}
|
||||
|
||||
mv ${IMAGEFILE} $(basename ${IMAGEFILE})
|
||||
|
||||
rmdir ${BASEDIR}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
images {
|
||||
kernel@1{
|
||||
description = "vmlinuz";
|
||||
data = /incbin/("arch/arm/boot/zImage");
|
||||
data = /incbin/("vmlinuz-4.8.0-1-armmp");
|
||||
type = "kernel_noload";
|
||||
arch = "arm";
|
||||
os = "linux";
|
||||
|
@ -17,7 +17,7 @@
|
|||
};
|
||||
fdt@1{
|
||||
description = "dtb";
|
||||
data = /incbin/("arch/arm/boot/dts/rk3288-veyron-speedy.dtb");
|
||||
data = /incbin/("rk3288-veyron-speedy.dtb");
|
||||
type = "flat_dt";
|
||||
arch = "arm";
|
||||
compression = "none";
|
||||
|
@ -25,12 +25,24 @@
|
|||
algo = "sha1";
|
||||
};
|
||||
};
|
||||
ramdisk@1{
|
||||
description = "initrd.img";
|
||||
data = /incbin/("initrd.img-4.8.0-1-armmp");
|
||||
type = "ramdisk";
|
||||
arch = "arm";
|
||||
os = "linux";
|
||||
compression = "none";
|
||||
hash@1{
|
||||
algo = "sha1";
|
||||
};
|
||||
};
|
||||
};
|
||||
configurations {
|
||||
default = "conf@1";
|
||||
conf@1{
|
||||
kernel = "kernel@1";
|
||||
fdt = "fdt@1";
|
||||
ramdisk = "ramdisk@1";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
Reference in a new issue