Commit 8a92aae4 authored by Dan Johansen's avatar Dan Johansen

huge commit: added timezone and locale selections and did some cleanup.

parent 45693a02
...@@ -18,16 +18,18 @@ This script is "interactive". Meaning that it asks you questions when run to cus ...@@ -18,16 +18,18 @@ This script is "interactive". Meaning that it asks you questions when run to cus
## Installing: ## Installing:
To use this script, please make sure that the following is correct: To use this script, please make sure that the following is correct:
* an SD card with at least 8 GB storage is plugged in. * an SD/eMMC card with at least 8 GB storage is plugged in (but not mounted).
* that your user account has `sudo` rights.
## Known Issues: ## Known Issues:
* Because `dialog` is weird, the script needs to be run in `bash`. * Because `dialog` is weird, the script needs to be run in `bash`.
* Timezone does not get set, even though it's chosen.
## Usage: ## Usage:
To use this script, simple run it as normal user after you make it executable: To use this script, simple run it as normal user after you make it executable:
``` ```
chmod +x manjaro-arm-installer chmod +x manjaro-arm-installer
bash /manjaro-arm-installer bash manjaro-arm-installer
``` ```
## Other notes: ## Other notes:
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
# Set globals # Set globals
TMPDIR=/var/tmp/manjaro-arm-installer TMPDIR=/var/tmp/manjaro-arm-installer
#PROFILES=/var/tmp/manjaro-arm-installer/profiles
ARCH='aarch64' ARCH='aarch64'
# clearing variables # clearing variables
...@@ -12,8 +11,8 @@ USER="" ...@@ -12,8 +11,8 @@ USER=""
PASSWORD="" PASSWORD=""
ROOTPASSWORD="" ROOTPASSWORD=""
SDCARD="" SDCARD=""
#TIMEZONE="" TIMEZONE=""
#LOCALE="" LOCALE=""
# Sanity checks for dependencies # Sanity checks for dependencies
if [ ! -f /usr/bin/sudo ]; then if [ ! -f /usr/bin/sudo ]; then
...@@ -96,7 +95,7 @@ create_install() { ...@@ -96,7 +95,7 @@ create_install() {
# fetch and extract rootfs # fetch and extract rootfs
msg "Downloading latest $ARCH rootfs..." msg "Downloading latest $ARCH rootfs..."
cd $TMPDIR cd $TMPDIR
wget https://www.strits.dk/files/Manjaro-ARM-$ARCH-latest.tar.gz 1> /dev/null 2>&1 wget -q --show-progress --progress=bar:force:noscroll https://www.strits.dk/files/Manjaro-ARM-$ARCH-latest.tar.gz
msg "Extracting $ARCH rootfs..." msg "Extracting $ARCH rootfs..."
sudo bsdtar -xpf $TMPDIR/Manjaro-ARM-$ARCH-latest.tar.gz -C $TMPDIR/root sudo bsdtar -xpf $TMPDIR/Manjaro-ARM-$ARCH-latest.tar.gz -C $TMPDIR/root
...@@ -119,7 +118,7 @@ create_install() { ...@@ -119,7 +118,7 @@ create_install() {
fi fi
msg "Applying overlay for $EDITION..." msg "Applying overlay for $EDITION..."
sudo cp -ap $PROFILES/arm-profiles/overlays/$EDITION/* $TMPDIR/root/ sudo cp -ap $TMPDIR/arm-profiles/overlays/$EDITION/* $TMPDIR/root/
msg "Setting up users..." msg "Setting up users..."
#setup users #setup users
...@@ -144,8 +143,10 @@ create_install() { ...@@ -144,8 +143,10 @@ create_install() {
#system setup #system setup
sudo systemd-nspawn -D $TMPDIR/root chmod u+s /usr/bin/ping 1> /dev/null 2>&1 sudo systemd-nspawn -D $TMPDIR/root chmod u+s /usr/bin/ping 1> /dev/null 2>&1
sudo systemd-nspawn -D $TMPDIR/root update-ca-trust 1> /dev/null 2>&1 sudo systemd-nspawn -D $TMPDIR/root update-ca-trust 1> /dev/null 2>&1
# sudo systemd-nspawn -D $TMPDIR/root timedatectl set-timezone "$TIMEZONE" sudo systemd-nspawn -D $TMPDIR/root ln -sf /usr/share/zoneinfo/"$TIMEZONE" /etc/localtime 1> /dev/null 2>&1
# sudo systemd-nspawn -D $TMPDIR/root localectl set-locale "$LOCALE" sudo systemd-nspawn -D $TMPDIR/root sed -i s/"#$LOCALE"/"$LOCALE"/g /etc/locale.gen 1> /dev/null 2>&1
sudo systemd-nspawn -D $TMPDIR/root sed -i s/"LANG=en_US.utf8"/"LANG=$LOCALE"/g /etc/locale.conf 1> /dev/null 2>&1
sudo systemd-nspawn -D $TMPDIR/root locale-gen
msg "Doing device specific setups for $DEVICE..." msg "Doing device specific setups for $DEVICE..."
if [[ "$DEVICE" = "rpi2" ]] || [[ "$DEVICE" = "rpi3" ]]; then if [[ "$DEVICE" = "rpi2" ]] || [[ "$DEVICE" = "rpi3" ]]; then
...@@ -175,7 +176,7 @@ create_install() { ...@@ -175,7 +176,7 @@ create_install() {
# Remove temp files on host # Remove temp files on host
sudo rm -rf $TMPDIR/user $TMPDIR/password $TMPDIR/rootpassword sudo rm -rf $TMPDIR/user $TMPDIR/password $TMPDIR/rootpassword
sudo rm -rf $TMPDIR/Manjaro-ARM-$ARCH-latest.tar.gz sudo rm -rf $TMPDIR/Manjaro-ARM-$ARCH-latest.tar.gz*
msg "$DEVICE $EDITION install complete" msg "$DEVICE $EDITION install complete"
} }
...@@ -310,7 +311,7 @@ DEVICE=$(dialog --clear --title "Manjaro ARM Installer" \ ...@@ -310,7 +311,7 @@ DEVICE=$(dialog --clear --title "Manjaro ARM Installer" \
--menu "Choose a device:" 20 51 6 \ --menu "Choose a device:" 20 51 6 \
"rpi3" "Raspberry Pi 3" \ "rpi3" "Raspberry Pi 3" \
"oc2" "Odroid C2" \ "oc2" "Odroid C2" \
"pinebook" "PineBook" \ "pinebook" "Pinebook" \
"rpi2" "Raspberry Pi 2 (unmaintained)" \ "rpi2" "Raspberry Pi 2 (unmaintained)" \
"oc1" "Odroid C1/C1+ (unmaintained)" \ "oc1" "Odroid C1/C1+ (unmaintained)" \
"xu4" "Odroid XU4 (unmaintained)" 3>&1 1>&2 2>&3 3>&-) "xu4" "Odroid XU4 (unmaintained)" 3>&1 1>&2 2>&3 3>&-)
...@@ -382,9 +383,9 @@ W=() ...@@ -382,9 +383,9 @@ W=()
while read -r line; do while read -r line; do
let i=$i+1 let i=$i+1
W+=($line "") W+=($line "")
done < <( lsblk -adn -o NAME ) done < <( lsblk -dn -o NAME )
SDCARD=$(dialog --title "Manjaro ARM Installer" \ SDCARD=$(dialog --title "Manjaro ARM Installer" \
--menu "Chose your SDCard - Be sure the correct drive is selected!" 20 50 15 \ --menu "Chose your SDCard - Be sure the correct drive is selected!" 20 50 5 \
"${W[@]}" 3>&2 2>&1 1>&3) "${W[@]}" 3>&2 2>&1 1>&3)
# add /dev/ to the selected option above # add /dev/ to the selected option above
...@@ -395,47 +396,68 @@ else ...@@ -395,47 +396,68 @@ else
fi fi
#if [ ! -z "$SDCARD" ] if [ ! -z "$SDCARD" ]
#then then
#TIMEZONE=$(dialog --clear --title "Manjaro ARM Installer" \ let i=0
W=()
while read -r line; do
let i=$i+1
W+=($line "")
done < <( timedatectl list-timezones )
TIMEZONE=$(dialog --clear --title "Manjaro ARM Installer" \
--menu "Chose your timezone!" 20 50 15 \
"${W[@]}" 3>&1 1>&2 2>&3 3>&- \
)
# --inputbox "Enter timezone (example Europe/London):" 8 50 \ # --inputbox "Enter timezone (example Europe/London):" 8 50 \
# 3>&1 1>&2 2>&3 3>&- \ else
# ) clear
#else exit 1
# clear fi
# exit 1
#fi
#if [ ! -z "$TIMEZONE" ] if [ ! -z "$TIMEZONE" ]
#then then
#LOCALE=$(dialog --clear --title "Manjaro ARM Installer" \ let i=0
W=()
while read -r line; do
let i=$i+1
W+=($line "")
done < <( cat /etc/locale.gen | grep "UTF-8" | tail -n +2 | awk '{print $1}' | sed -e 's/^#*//' )
LOCALE=$(dialog --clear --title "Manjaro ARM Installer" \
--menu "Chose your locale!" 20 50 15 \
"${W[@]}" 3>&1 1>&2 2>&3 3>&- \
)
# --inputbox "Enter locale (example en_US.UTF-8):" 8 50 \ # --inputbox "Enter locale (example en_US.UTF-8):" 8 50 \
# 3>&1 1>&2 2>&3 3>&- \ else
# ) clear
#else exit 1
# clear fi
# exit 1
#fi if [ ! -z "$LOCALE" ]
then
# List all the responses upon completion to be verified dialog --clear --title "Manjaro ARM Installer" \
clear --yesno "Is the below information correct:
echo "Device = $DEVICE" Device = $DEVICE
echo "Edition = $EDITION" Edition = $EDITION
echo "User name = $USER" Username = $USER
echo "Password for $USER = ($PASSWORD)" Password for $USER = $PASSWORD
echo "Root Password = ($ROOTPASSWORD)" Password for root = $ROOTPASSWORD
echo "SDCard = $SDCARD" SD/eMMC card = $SDCARD
#echo "Timezone = $TIMEZONE" Timezone = $TIMEZONE
#echo "Locale = $LOCALE" Locale = $LOCALE" 20 50 \
3>&1 1>&2 2>&3 3>&-
echo "Are the above settings correct?" else
select yn in "Yes" "No"; do clear
case $yn in exit 1
Yes ) echo "Continuing..."; break;; fi
No ) exit 1;;
esac response=$?
done case $response in
0) clear; msg "Proceeding....";;
1) clear; msg "Installation aborted...."; exit 1;;
255) clear; msg "Installation aborted..."; exit 1;;
esac
if [[ "$DEVICE" = "oc1" ]] || [[ "$DEVICE" = "rpi2" ]] || [[ "$DEVICE" = "xu4" ]]; then if [[ "$DEVICE" = "oc1" ]] || [[ "$DEVICE" = "rpi2" ]] || [[ "$DEVICE" = "xu4" ]]; then
ARCH='armv7h' ARCH='armv7h'
...@@ -447,9 +469,9 @@ fi ...@@ -447,9 +469,9 @@ fi
getarmprofiles getarmprofiles
#Package lists #Package lists
PKG_DEVICE=$(grep "^[^#;]" $PROFILES/arm-profiles/devices/$DEVICE | awk '{print $1}') PKG_DEVICE=$(grep "^[^#;]" $TMPDIR/arm-profiles/devices/$DEVICE | awk '{print $1}')
PKG_EDITION=$(grep "^[^#;]" $PROFILES/arm-profiles/editions/$EDITION | awk '{print $1}') PKG_EDITION=$(grep "^[^#;]" $TMPDIR/arm-profiles/editions/$EDITION | awk '{print $1}')
SRV_EDITION=$(grep "^[^#;]" $PROFILES/arm-profiles/services/$EDITION | awk '{print $1}') SRV_EDITION=$(grep "^[^#;]" $TMPDIR/arm-profiles/services/$EDITION | awk '{print $1}')
# Commands # Commands
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment