diff --git a/README.md b/README.md index 89fb673..5597647 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ This script is "interactive". Meaning that it asks you questions when run to cus ## Installing: To use this script, please make sure that the following is correct: -* an SD/eMMC card with at least 8 GB storage is plugged in (but not mounted). +* an **empty** SD/eMMC card with at least 8 GB storage is plugged in. * that your user account has `sudo` rights. ## Known Issues: diff --git a/manjaro-arm-installer b/manjaro-arm-installer index 1e178e6..969fe97 100755 --- a/manjaro-arm-installer +++ b/manjaro-arm-installer @@ -14,6 +14,7 @@ ROOTPASSWORD="" SDCARD="" SDTYP="" SDDEV="" +DEV_NAME="" TIMEZONE="" LOCALE="" @@ -213,6 +214,10 @@ prepare_card () { msg "Getting $SDCARD ready for $DEVICE..." # For Raspberry Pi devices if [[ "$DEVICE" = "rpi2" ]] || [[ "$DEVICE" = "rpi3" ]]; then + # umount SD card + umount ${SDCARD}${SDDEV}1 1> /dev/null 2>&1 + umount ${SDCARD}${SDDEV}2 1> /dev/null 2>&1 + #partition with boot and root parted -s $SDCARD mklabel msdos 1> /dev/null 2>&1 parted -s $SDCARD mkpart primary fat32 0% 100M 1> /dev/null 2>&1 @@ -232,9 +237,13 @@ prepare_card () { # For Odroid devices elif [[ "$DEVICE" = "oc1" ]] || [[ "$DEVICE" = "oc2" ]] || [[ "$DEVICE" = "xu4" ]]; then + # umount SD card + umount ${SDCARD}${SDDEV}1 1> /dev/null 2>&1 + umount ${SDCARD}${SDDEV}2 1> /dev/null 2>&1 + #Clear first 8mb dd if=/dev/zero of=${SDCARD} bs=1M count=8 1> /dev/null 2>&1 - + #partition with a single root partition parted -s $SDCARD mklabel msdos 1> /dev/null 2>&1 parted -s $SDCARD mkpart primary ext4 0% 100% 1> /dev/null 2>&1 @@ -247,11 +256,14 @@ prepare_card () { mount ${SDCARD}${SDDEV}1 $TMPDIR/root # For pine devices - elif [[ "$DEVICE" = "pinebook" ]] || [[ "$DEVICE" = "sopine" ]]; then + elif [[ "$DEVICE" = "pinebook" ]] || [[ "$DEVICE" = "sopine" ]]; then + # umount SD card + umount ${SDCARD}${SDDEV}1 1> /dev/null 2>&1 + umount ${SDCARD}${SDDEV}2 1> /dev/null 2>&1 #Clear first 8mb dd if=/dev/zero of=${SDCARD} bs=1M count=8 1> /dev/null 2>&1 - + #partition with a single root partition parted -s $SDCARD mklabel msdos 1> /dev/null 2>&1 parted -s $SDCARD mkpart primary ext4 0% 100% 1> /dev/null 2>&1 @@ -265,10 +277,13 @@ prepare_card () { # For rockpro64 device elif [[ "$DEVICE" = "rock64" ]] || [[ "$DEVICE" = "rockpro64" ]]; then + # umount SD card + umount ${SDCARD}${SDDEV}1 1> /dev/null 2>&1 + umount ${SDCARD}${SDDEV}2 1> /dev/null 2>&1 #Clear first 8mb dd if=/dev/zero of=${SDCARD} bs=1M count=32 1> /dev/null 2>&1 - + #partition with a single root partition parted -s $SDCARD mklabel msdos 1> /dev/null 2>&1 parted -s $SDCARD mkpart primary ext4 32M 100% 1> /dev/null 2>&1 @@ -336,27 +351,30 @@ fi # Using Dialog to ask for user input for variables DEVICE=$(dialog --clear --title "Manjaro ARM Installer" \ - --menu "Choose a device:" 20 51 6 \ - "rpi3" "Raspberry Pi 3" \ - "oc2" "Odroid C2" \ - "pinebook" "Pinebook" \ - "sopine" "Sopine/Pine64-LTS" \ - "rock64" "Rock64" \ - "rpi2" "Raspberry Pi 2 (unmaintained)" \ - "oc1" "Odroid C1/C1+ (unmaintained)" \ - "xu4" "Odroid XU4 (unmaintained)" 3>&1 1>&2 2>&3 3>&-) + --menu "Choose a device:" 20 75 10 \ + "pinebook" "Pinebook" \ + "rock64" "ROCK64" \ + "rockpro64" "ROCKPro64" \ + "sopine" "SOPINE / PINE A64-LTS" \ + "oc2" "Odroid C2" \ + "rpi3" "Raspberry Pi 3" \ + "oc1" "Odroid C1/C1+ (unmaintained)" \ + "xu4" "Odroid XU4 (unmaintained)" \ + "rpi2" "Raspberry Pi 2 (unmaintained)" \ + 3>&1 1>&2 2>&3 3>&-) #The if statement makes sure that the user has put in something in the previous prompt. If not (left blank or pressed cancel) the script will end if [ ! -z "$DEVICE" ] then EDITION=$(dialog --clear --title "Manjaro ARM Installer" \ - --menu "Choose an edition:" 20 50 5 \ - "minimal" "Minimal Edition (Just CLI)" \ - "lxqt" "Full LXQT Desktop and apps (lightweight)" \ - "kde" "Full KDE/Plasma Desktop (Heavy)" \ - "mate" "Full MATE desktop and apps (lightweight, unmaintained)" \ - "i3" "Mininal i3 WM with apps (very light)" 3>&1 1>&2 2>&3 3>&-) + --menu "Choose an edition:" 20 75 10 \ + "minimal" "Minimal Edition (only CLI)" \ + "kde" "Full KDE/Plasma Desktop (Heavy)" \ + "lxqt" "Full LXQT Desktop and apps (lightweight)" \ + "i3" "Mininal i3 WM with apps (very light)" \ + "mate" "Full MATE desktop and apps (lightweight, unmaintained)" \ + 3>&1 1>&2 2>&3 3>&-) else clear @@ -415,10 +433,11 @@ while read -r line; do W+=($line "") done < <( lsblk -dn -o NAME ) SDCARD=$(dialog --title "Manjaro ARM Installer" \ - --menu "Choose your SDCard - Be sure the correct drive is selected!" 20 50 5 \ + --menu "Choose your SDCard - Be sure the correct drive is selected!" 20 50 10 \ "${W[@]}" 3>&2 2>&1 1>&3) # add /dev/ to the selected option above +DEV_NAME=$SDCARD SDCARD=/dev/$SDCARD SDTYP=${SDCARD:5:2} else @@ -491,7 +510,7 @@ if [ ! -z "$KEYMAP" ] then HOSTNAME=$(dialog --clear --title "Manjaro ARM Installer" \ --inputbox "Enter desired hostname for this system:" 8 50 \ - 3>&1 1>&2 2>&3 3>&- \ + 3>&1 1>&2 2>&3 3>&- \ ) else clear @@ -509,7 +528,7 @@ dialog --clear --title "Manjaro ARM Installer" \ Timezone = $TIMEZONE Locale = $LOCALE Keyboard layout = $KEYMAP - Hostname = $HOSTNAME" 20 50 \ + Hostname = $HOSTNAME" 20 70 \ 3>&1 1>&2 2>&3 3>&- else clear