From 0907211f23b5954a408998a2f990cf83447cabdc Mon Sep 17 00:00:00 2001 From: Helmut Stult Date: Mon, 15 Apr 2019 12:50:52 +0200 Subject: [PATCH 1/3] Aktualisieren manjaro-arm-installer --- manjaro-arm-installer | 68 ++++++++++++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 23 deletions(-) diff --git a/manjaro-arm-installer b/manjaro-arm-installer index fba3b68..1e178e6 100755 --- a/manjaro-arm-installer +++ b/manjaro-arm-installer @@ -12,12 +12,18 @@ USER="" PASSWORD="" ROOTPASSWORD="" SDCARD="" +SDTYP="" +SDDEV="" TIMEZONE="" LOCALE="" # check if root -if [ "$EUID" -ne 0 ] - then echo "This script requires root permissions to run. Please run as root or with sudo!" +if [ "$EUID" -ne 0 ]; then + echo "*******************************************************************************************" + echo "* *" + echo "* This script requires root permissions to run. Please run as root or with sudo! *" + echo "* *" + echo "*******************************************************************************************" exit fi @@ -40,6 +46,12 @@ if [ ! -f /usr/bin/git ]; then elif [ ! -f /usr/bin/bsdtar ]; then echo "bsdtar command is missing! Please install libarchive!" exit 1 + elif [ ! -f /usr/bin/mkpasswd ]; then + echo "mkpasswd command is missing! Please install mkpasswd!" + exit 1 + elif [ ! -f /usr/bin/awk ]; then + echo "awk command is missing! Please install gawk!" + exit 1 fi @@ -103,6 +115,7 @@ create_install() { fi msg "Creating install for $DEVICE..." + msg "Used device is ${SDCARD}${SDDEV}x" # fetch and extract rootfs info "Downloading latest $ARCH rootfs..." @@ -131,18 +144,18 @@ create_install() { info "Setting up users..." #setup users echo "$USER" > $TMPDIR/user - echo "$PASSWORD" >> $TMPDIR/password - echo "$PASSWORD" >> $TMPDIR/password - echo "$ROOTPASSWORD" >> $TMPDIR/rootpassword - echo "$ROOTPASSWORD" >> $TMPDIR/rootpassword - $NSPAWN $TMPDIR/root passwd root < $TMPDIR/rootpassword 1> /dev/null 2>&1 - $NSPAWN $TMPDIR/root useradd -m -g users -G wheel,storage,network,power -s /bin/bash $(cat $TMPDIR/user) 1> /dev/null 2>&1 - $NSPAWN $TMPDIR/root passwd $(cat $TMPDIR/user) < $TMPDIR/password 1> /dev/null 2>&1 + echo "$PASSWORD" > $TMPDIR/password + echo "$ROOTPASSWORD" > $TMPDIR/rootpassword + + info "setting password for root ..." + $NSPAWN $TMPDIR/root awk -i inplace -F: "BEGIN {OFS=FS;} \$1 == \"root\" {\$2=\"$(mkpasswd --hash=SHA-512 $(cat $TMPDIR/rootpassword))\"} 1" /etc/shadow 1> /dev/null 2>&1 + + info "Adding user..." + $NSPAWN $TMPDIR/root useradd -m -g users -G wheel,storage,network,power -p $(mkpasswd --hash=SHA-512 $(cat $TMPDIR/password)) -s /bin/bash $(cat $TMPDIR/user) 1> /dev/null 2>&1 - info "Enabling user services..." if [[ "$EDITION" = "minimal" ]] || [[ "$EDITION" = "server" ]]; then - echo "No user services for $EDITION edition" + msg "No user services for $EDITION edition" else $NSPAWN $TMPDIR/root --user $(cat $TMPDIR/user) systemctl --user enable pulseaudio.service 1> /dev/null 2>&1 fi @@ -208,14 +221,14 @@ prepare_card () { END_SECTOR=$(expr $START + $SIZE) parted -s $SDCARD mkpart primary ext4 "${END_SECTOR}s" 100% 1> /dev/null 2>&1 partprobe $SDCARD 1> /dev/null 2>&1 - mkfs.vfat "${SDCARD}p1" 1> /dev/null 2>&1 - mkfs.ext4 "${SDCARD}p2" 1> /dev/null 2>&1 + mkfs.vfat "${SDCARD}${SDDEV}1" 1> /dev/null 2>&1 + mkfs.ext4 "${SDCARD}${SDDEV}2" 1> /dev/null 2>&1 #Mount SD card mkdir -p $TMPDIR/root mkdir -p $TMPDIR/boot - mount ${SDCARD}1 $TMPDIR/boot - mount ${SDCARD}2 $TMPDIR/root + mount ${SDCARD}${SDDEV}1 $TMPDIR/boot + mount ${SDCARD}${SDDEV}2 $TMPDIR/root # For Odroid devices elif [[ "$DEVICE" = "oc1" ]] || [[ "$DEVICE" = "oc2" ]] || [[ "$DEVICE" = "xu4" ]]; then @@ -226,12 +239,12 @@ prepare_card () { parted -s $SDCARD mklabel msdos 1> /dev/null 2>&1 parted -s $SDCARD mkpart primary ext4 0% 100% 1> /dev/null 2>&1 partprobe $SDCARD 1> /dev/null 2>&1 - mkfs.ext4 -O ^metadata_csum,^64bit ${SDCARD}p1 1> /dev/null 2>&1 + mkfs.ext4 -O ^metadata_csum,^64bit ${SDCARD}${SDDEV}1 1> /dev/null 2>&1 #Mount SD card mkdir -p $TMPDIR/root chmod 777 -R $TMPDIR/root - mount ${SDCARD}1 $TMPDIR/root + mount ${SDCARD}${SDDEV}1 $TMPDIR/root # For pine devices elif [[ "$DEVICE" = "pinebook" ]] || [[ "$DEVICE" = "sopine" ]]; then @@ -243,12 +256,12 @@ prepare_card () { parted -s $SDCARD mklabel msdos 1> /dev/null 2>&1 parted -s $SDCARD mkpart primary ext4 0% 100% 1> /dev/null 2>&1 partprobe $SDCARD 1> /dev/null 2>&1 - mkfs.ext4 -O ^metadata_csum,^64bit ${SDCARD}p1 1> /dev/null 2>&1 + mkfs.ext4 -O ^metadata_csum,^64bit ${SDCARD}${SDDEV}1 1> /dev/null 2>&1 # Mount SD card mkdir -p $TMPDIR/root chmod 777 -R $TMPDIR/root - mount ${SDCARD}1 $TMPDIR/root + mount ${SDCARD}${SDDEV}1 $TMPDIR/root # For rockpro64 device elif [[ "$DEVICE" = "rock64" ]] || [[ "$DEVICE" = "rockpro64" ]]; then @@ -260,12 +273,12 @@ prepare_card () { parted -s $SDCARD mklabel msdos 1> /dev/null 2>&1 parted -s $SDCARD mkpart primary ext4 32M 100% 1> /dev/null 2>&1 partprobe $SDCARD 1> /dev/null 2>&1 - mkfs.ext4 -O ^metadata_csum,^64bit ${SDCARD}p1 1> /dev/null 2>&1 + mkfs.ext4 -O ^metadata_csum,^64bit ${SDCARD}${SDDEV}1 1> /dev/null 2>&1 # Mount SD card mkdir -p $TMPDIR/root chmod 777 -R $TMPDIR/root - mount ${SDCARD}1 $TMPDIR/root + mount ${SDCARD}${SDDEV}1 $TMPDIR/root fi } @@ -367,7 +380,7 @@ fi if [ ! -z "$USER" ] then PASSWORD=$(dialog --clear --title "Manjaro ARM Installer" \ - --passwordbox "Enter Password for $USER:" 8 50 \ + --insecure --passwordbox "Enter Password for $USER:" 8 50 \ 3>&1 1>&2 2>&3 3>&- \ ) else @@ -380,7 +393,7 @@ fi if [ ! -z "$PASSWORD" ] then ROOTPASSWORD=$(dialog --clear --title "Manjaro ARM Installer" \ - --passwordbox "Enter Root Password:" 8 50 \ + --insecure --passwordbox "Enter Root Password:" 8 50 \ 3>&1 1>&2 2>&3 3>&- \ ) else @@ -407,9 +420,18 @@ SDCARD=$(dialog --title "Manjaro ARM Installer" \ # add /dev/ to the selected option above SDCARD=/dev/$SDCARD +SDTYP=${SDCARD:5:2} else clear exit 1 + fi + +if [[ "$SDTYP" = "sd" ]] +then + SDDEV="" +elif [[ "$SDTYP" = "mm" ]] +then + SDDEV="p" fi From 1369de61e422090e6f1ec25b96532605046350fa Mon Sep 17 00:00:00 2001 From: Helmut Stult Date: Mon, 15 Apr 2019 12:51:55 +0200 Subject: [PATCH 2/3] Aktualisieren README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 456fbef..89fb673 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ This script is "interactive". Meaning that it asks you questions when run to cus * parted * libarchive * binfmt-qemu-static +* mkpasswd +* gawk ## Installing: To use this script, please make sure that the following is correct: @@ -29,7 +31,8 @@ To use this script, simple run it as normal user after you make it executable: ``` chmod +x manjaro-arm-installer -bash manjaro-arm-installer +sudo -s +clear && bash manjaro-arm-installer ``` ## Other notes: From c2ae1a359c6ba54d27104bae3a98099a07efdf4a Mon Sep 17 00:00:00 2001 From: schinfo Date: Mon, 15 Apr 2019 19:32:52 +0200 Subject: [PATCH 3/3] added automatic umount if SD is mounted --- manjaro-arm-installer | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/manjaro-arm-installer b/manjaro-arm-installer index 1e178e6..5515f54 100755 --- a/manjaro-arm-installer +++ b/manjaro-arm-installer @@ -213,6 +213,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,6 +236,9 @@ 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 + #Clear first 8mb dd if=/dev/zero of=${SDCARD} bs=1M count=8 1> /dev/null 2>&1 @@ -247,7 +254,9 @@ 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 #Clear first 8mb dd if=/dev/zero of=${SDCARD} bs=1M count=8 1> /dev/null 2>&1 @@ -265,6 +274,8 @@ prepare_card () { # For rockpro64 device elif [[ "$DEVICE" = "rock64" ]] || [[ "$DEVICE" = "rockpro64" ]]; then + # umount SD card + umount ${SDCARD}${SDDEV}1 1> /dev/null 2>&1 #Clear first 8mb dd if=/dev/zero of=${SDCARD} bs=1M count=32 1> /dev/null 2>&1