huge commit: added timezone and locale selections and did some cleanup.
This commit is contained in:
parent
45693a027a
commit
8a92aae4b8
|
|
@ -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 @@
|
||||||
|
|
||||||
# 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=""
|
||||||
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() {
|
||||||
# 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() {
|
||||||
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() {
|
||||||
#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() {
|
||||||
|
|
||||||
# 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" \
|
||||||
--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=()
|
||||||
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
|
||||||
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
|
||||||
# )
|
|
||||||
#else
|
|
||||||
# clear
|
|
||||||
# exit 1
|
|
||||||
#fi
|
|
||||||
|
|
||||||
|
|
||||||
#if [ ! -z "$TIMEZONE" ]
|
|
||||||
#then
|
|
||||||
#LOCALE=$(dialog --clear --title "Manjaro ARM Installer" \
|
|
||||||
# --inputbox "Enter locale (example en_US.UTF-8):" 8 50 \
|
|
||||||
# 3>&1 1>&2 2>&3 3>&- \
|
|
||||||
# )
|
|
||||||
#else
|
|
||||||
# clear
|
|
||||||
# exit 1
|
|
||||||
#fi
|
|
||||||
|
|
||||||
# List all the responses upon completion to be verified
|
|
||||||
clear
|
clear
|
||||||
echo "Device = $DEVICE"
|
exit 1
|
||||||
echo "Edition = $EDITION"
|
fi
|
||||||
echo "User name = $USER"
|
|
||||||
echo "Password for $USER = ($PASSWORD)"
|
|
||||||
echo "Root Password = ($ROOTPASSWORD)"
|
|
||||||
echo "SDCard = $SDCARD"
|
|
||||||
#echo "Timezone = $TIMEZONE"
|
|
||||||
#echo "Locale = $LOCALE"
|
|
||||||
|
|
||||||
echo "Are the above settings correct?"
|
|
||||||
select yn in "Yes" "No"; do
|
if [ ! -z "$TIMEZONE" ]
|
||||||
case $yn in
|
then
|
||||||
Yes ) echo "Continuing..."; break;;
|
let i=0
|
||||||
No ) exit 1;;
|
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 \
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$LOCALE" ]
|
||||||
|
then
|
||||||
|
dialog --clear --title "Manjaro ARM Installer" \
|
||||||
|
--yesno "Is the below information correct:
|
||||||
|
Device = $DEVICE
|
||||||
|
Edition = $EDITION
|
||||||
|
Username = $USER
|
||||||
|
Password for $USER = $PASSWORD
|
||||||
|
Password for root = $ROOTPASSWORD
|
||||||
|
SD/eMMC card = $SDCARD
|
||||||
|
Timezone = $TIMEZONE
|
||||||
|
Locale = $LOCALE" 20 50 \
|
||||||
|
3>&1 1>&2 2>&3 3>&-
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
response=$?
|
||||||
|
case $response in
|
||||||
|
0) clear; msg "Proceeding....";;
|
||||||
|
1) clear; msg "Installation aborted...."; exit 1;;
|
||||||
|
255) clear; msg "Installation aborted..."; exit 1;;
|
||||||
esac
|
esac
|
||||||
done
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue