@@ -13,102 +13,102 @@ checkRoot() {
diskInfo() {
[[ -e /dev/"$DEV" ]] || { echo "ERROR: Drive doesn't exist" && exit 1; }
fdisk -l /dev/"$DEV"
echo
}
verifyRightDrive() {
sleep 3
read -n 1 -r -p "Is this the right drive? [y/N] " response
if [[ "$response" =~ ^([yY])$ ]]
then
return 0
else
exit 1
fi
umountInitially() {
BLKDEVS=$(find /dev/ -name "${DEV}"*)
for LINE in $BLKDEVS; do
sudo umount "$LINE"
done
zeroBeginning() {
dd if=/dev/zero of=/dev/"$DEV" bs=1M count=8
partitionEMMC() {
fdisk -W always /dev/"$DEV" << EOF
o
n
p
1
w
EOF
createEXT4fs() {
mkfs.ext4 -O ^metadata_csum,^64bit /dev/"${DEV}"1
cdToScript() {
TMP=$(dirname "$0")
cd "$TMP"
cd "$TMP" || exit
mkdir flashEMMC
cd flashEMMC
cd flashEMMC || exit
unmountFS() {
umount root
panic() {
cdToScript
unmountFS
downloadImage() {
rm ${IMAGE_NAME}
wget ${DOWNLOAD_LINK}${IMAGE_NAME}
wget ${HASH_LINK}${IMAGE_NAME}.md5
md5sum -c ${IMAGE_NAME}.md5 || { echo "Hash of image is incorrect"; panic; }
extractImage() {
bsdtar -xpf ArchLinuxARM-odroid-c2-latest.tar.gz -C root
mountFS() {
mkdir root
mount /dev/"${DEV}"1 root
[ -e ${IMAGE_NAME}.md5 ] && md5sum -c ${IMAGE_NAME}.md5 || downloadImage && extractImage
flashBootloader() {
cd root/boot
cd root/boot || exit
./sd_fusing.sh /dev/"${DEV}"
cd ../..
main() {
checkRoot
diskInfo
verifyRightDrive
umountInitially
zeroBeginning
partitionEMMC
createEXT4fs
mountFS
flashBootloader
main