Testing mmc booting

This commit is contained in:
Hal Emmerich 2019-09-26 13:10:47 -05:00
parent 60283c7e30
commit 214ee55580
5 changed files with 37 additions and 20 deletions

View File

@ -37,7 +37,7 @@ ROOT_DEV="${BLKID%1:*}"
echo ${ROOT_DEV}
#uncomment for debugging
# exec setsid /bin/sh -c 'exec /bin/sh </dev/tty1 >/dev/tty1 2>&1'
exec setsid /bin/sh -c 'exec /bin/sh </dev/tty1 >/dev/tty1 2>&1'
# we use this to change what cmdline options get passed into
# the next boot stage, aka to enable root encryption

View File

@ -27,24 +27,12 @@
algo = "sha1";
};
};
ramdisk@1{
description = "initrd.img";
data = /incbin/("PrawnOS-initramfs.cpio.gz");
type = "ramdisk";
arch = "arm";
os = "linux";
compression = "none";
hash@1{
algo = "sha1";
};
};
};
configurations {
default = "conf";
conf{
kernel = "kernel";
fdt = "fdt";
ramdisk = "ramdisk@1";
};
};
};

View File

@ -6,4 +6,5 @@ first-lba: 34
last-lba: 30785502
/dev/mmcblk2p1 : start= 20480, size= 65536, type=FE3A2A5D-4F32-41A7-B725-ACCC3285A309, uuid=89B31CDB-1147-5241-8271-C1ADBB9BBB44, name="Kernel", attrs="GUID:49,51,52,54,56"
/dev/mmcblk2p2 : start= 86016, size= 30699486, type=EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, uuid=63DB8E49-63C4-984E-90A0-8AC3222C4771, name="Root"
/dev/mmcblk2p2 : start= 86016, size= 976562, name="Boot"
/dev/mmcblk2p3 : start= 1062578, size= 29722924, type=EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, uuid=63DB8E49-63C4-984E-90A0-8AC3222C4771, name="Root"

View File

@ -55,19 +55,46 @@ then
fi
fi
dmesg -E
echo Writing kernel partition
dd if="$BOOT_DEVICE"1 of=/dev/mmcblk2p1
BOOT_DEV_NAME=mmcblk2p2
ROOT_DEV_NAME=mmcblk2p3
CRYPTO=false
#Handle full disk encryption
read -p "Would you like to setup full disk encrytion using LUKs/DmCrypt? [Y/n]" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
CRYPTO=true
# Since iteration count is based on cpu power, and the rk3288 isn't as fast as a usual
# desktop cpu, maually supply -i 15000 for security at the cost of a slightly slower unlock
cryptsetup -s 512 luksFormat -i 15000 /dev/mmcblk2p2
cryptsetup luksOpen /dev/mmcblk2p2 mmcblk2p2-encrypted
ROOT_DEV_NAME=mapper/mmcblk2p2-encrypted
fi
echo Writing Filesystem, this will take about 4 minutes...
mkfs.ext4 -F -b 1024 /dev/mmcblk2p2
mkfs.ext4 -F -b 1024 /dev/$ROOT_DEV_NAME
mkdir -p /mnt/mmc/
mount /dev/mmcblk2p2 /mnt/mmc
mount /dev/$ROOT_DEV_NAME /mnt/mmc
rsync -ah --info=progress2 --info=name0 --numeric-ids -x / /mnt/mmc/
#Remove the live-fstab and install a base fstab
rm /mnt/mmc/etc/fstab
echo "/dev/mmcblk2p2 / ext4 defaults,noatime 0 1" > /mnt/mmc/etc/fstab
umount /dev/mmcblk2p2
echo Running fsck
e2fsck -p -f /dev/mmcblk2p2
if [ $CRYPTO false]
then
echo "/dev/mmcblk2p2 / ext4 defaults,noatime 0 1" > /mnt/mmc/etc/fstab
umount /dev/mmcblk2p2
echo Running fsck
e2fsck -p -f /dev/mmcblk2p2
fi
if [ $CRYPTO true ]
then
# unmount and close encrypted storage
cryptsetup luksClose mmcblk2p2-encrypted
echo Running fsck
#TODO run fsck on luks part
fi
echo Rebooting... Please remove the usb drive once shutdown is complete
reboot
fi

View File

@ -83,6 +83,7 @@ cp $outmnt/sbin/blkid $initramfs_src/bin/
#add the init script
cp $build_resources/initramfs-init $initramfs_src/init
chmod +x $initramfs_src/init
cp $initramfs_src/init $initramfs_src/sbin/init
#compress and install
rm -rf $outmnt/boot/PrawnOS-initramfs.cpio.gz