Add preliminary PinePhone and PineTab support
This adds the option to choose either PinePhone or PineTab in the device menu. It also adds Plasma Mobile and Phosh specific settings and installation workarounds to get a working system going. Be aware that the Installer always uses the stable branch and as the profiles for mobile devices often change, the profile might fail to install because of missing packages or settings. Signed-off-by: Dan Johansen <strit@manjaro.org>
This commit is contained in:
parent
b31fc099b7
commit
4f9bc9c4f2
|
|
@ -141,6 +141,7 @@ create_install() {
|
||||||
# Install device and editions specific packages
|
# Install device and editions specific packages
|
||||||
$NSPAWN $TMPDIR/root pacman -Syyu base manjaro-system manjaro-release systemd systemd-libs $PKG_EDITION $PKG_DEVICE --noconfirm
|
$NSPAWN $TMPDIR/root pacman -Syyu base manjaro-system manjaro-release systemd systemd-libs $PKG_EDITION $PKG_DEVICE --noconfirm
|
||||||
|
|
||||||
|
|
||||||
info "Enabling services..."
|
info "Enabling services..."
|
||||||
# Enable services
|
# Enable services
|
||||||
$NSPAWN $TMPDIR/root systemctl enable getty.target haveged.service 1>/dev/null
|
$NSPAWN $TMPDIR/root systemctl enable getty.target haveged.service 1>/dev/null
|
||||||
|
|
@ -169,6 +170,12 @@ create_install() {
|
||||||
info "Setting password for root ..."
|
info "Setting password for root ..."
|
||||||
$NSPAWN $TMPDIR/root awk -i inplace -F: "BEGIN {OFS=FS;} \$1 == \"root\" {\$2=\"$(openssl passwd -6 $(cat $TMPDIR/rootpassword))\"} 1" /etc/shadow 1> /dev/null 2>&1
|
$NSPAWN $TMPDIR/root awk -i inplace -F: "BEGIN {OFS=FS;} \$1 == \"root\" {\$2=\"$(openssl passwd -6 $(cat $TMPDIR/rootpassword))\"} 1" /etc/shadow 1> /dev/null 2>&1
|
||||||
|
|
||||||
|
if [[ "$EDITION" = "plasma-mobile" ]]; then
|
||||||
|
$NSPAWN $TMPDIR/root userdel -f -r kde
|
||||||
|
elif [[ "$EDITION" = "phosh" ]]; then
|
||||||
|
$NSPAWN $TMPDIR/root userdel -f -r manjaro
|
||||||
|
fi
|
||||||
|
|
||||||
info "Adding user..."
|
info "Adding user..."
|
||||||
$NSPAWN $TMPDIR/root useradd -m -G wheel,sys,audio,input,video,storage,lp,network,users,power -p $(openssl passwd -6 $(cat $TMPDIR/password)) -s /bin/bash $(cat $TMPDIR/user) 1> /dev/null 2>&1
|
$NSPAWN $TMPDIR/root useradd -m -G wheel,sys,audio,input,video,storage,lp,network,users,power -p $(openssl passwd -6 $(cat $TMPDIR/password)) -s /bin/bash $(cat $TMPDIR/user) 1> /dev/null 2>&1
|
||||||
$NSPAWN $TMPDIR/root usermod -aG $USERGROUPS $(cat $TMPDIR/user) 1> /dev/null 2>&1
|
$NSPAWN $TMPDIR/root usermod -aG $USERGROUPS $(cat $TMPDIR/user) 1> /dev/null 2>&1
|
||||||
|
|
@ -206,6 +213,9 @@ create_install() {
|
||||||
fi
|
fi
|
||||||
echo "$HOSTNAME" | tee --append $TMPDIR/root/etc/hostname 1> /dev/null 2>&1
|
echo "$HOSTNAME" | tee --append $TMPDIR/root/etc/hostname 1> /dev/null 2>&1
|
||||||
sed -i s/"enable systemd-resolved.service"/"#enable systemd-resolved.service"/ $TMPDIR/root/usr/lib/systemd/system-preset/90-systemd.preset
|
sed -i s/"enable systemd-resolved.service"/"#enable systemd-resolved.service"/ $TMPDIR/root/usr/lib/systemd/system-preset/90-systemd.preset
|
||||||
|
if [[ "$EDITION" = "plasma-mobile" ]]; then
|
||||||
|
sed -i "s/User=kde/User=$USER/g" $TMPDIR/root/etc/sddm.conf.d/00-default.conf
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Correcting permissions from overlay..."
|
echo "Correcting permissions from overlay..."
|
||||||
chown -R root:root $TMPDIR/root/etc
|
chown -R root:root $TMPDIR/root/etc
|
||||||
|
|
@ -380,7 +390,7 @@ cleanup () {
|
||||||
dd if=$TMPDIR/boot/u-boot-sunxi-with-spl-$DEVICE.bin of=${SDCARD} conv=fsync bs=128k seek=1 1> /dev/null 2>&1
|
dd if=$TMPDIR/boot/u-boot-sunxi-with-spl-$DEVICE.bin of=${SDCARD} conv=fsync bs=128k seek=1 1> /dev/null 2>&1
|
||||||
;;
|
;;
|
||||||
pinephone)
|
pinephone)
|
||||||
dd if=$TMPDIR/boot/u-boot-sunxi-with-spl-$DEVICE.bin of=${SDCARD} conv=fsync bs=8k seek=1 1> /dev/null 2>&1
|
dd if=$TMPDIR/boot/u-boot-sunxi-with-spl-$DEVICE-552.bin of=${SDCARD} conv=fsync bs=8k seek=1 1> /dev/null 2>&1
|
||||||
;;
|
;;
|
||||||
pbpro|rockpro64|rockpi4b|rockpi4c|nanopc-t4|rock64|roc-cc|clockworkpi-a06)
|
pbpro|rockpro64|rockpi4b|rockpi4c|nanopc-t4|rock64|roc-cc|clockworkpi-a06)
|
||||||
dd if=$TMPDIR/boot/idbloader.img of=${SDCARD} seek=64 conv=notrunc,fsync 1> /dev/null 2>&1
|
dd if=$TMPDIR/boot/idbloader.img of=${SDCARD} seek=64 conv=notrunc,fsync 1> /dev/null 2>&1
|
||||||
|
|
@ -517,6 +527,8 @@ DEVICE=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
||||||
"pine64-lts" "Pine64-LTS / Sopine" \
|
"pine64-lts" "Pine64-LTS / Sopine" \
|
||||||
"pine64" "Pine64+" \
|
"pine64" "Pine64+" \
|
||||||
"pine-h64" "Pine H64" \
|
"pine-h64" "Pine H64" \
|
||||||
|
"pinetab" "PineTab" \
|
||||||
|
"pinephone" "PinePhone" \
|
||||||
"rock64" "Rock64" \
|
"rock64" "Rock64" \
|
||||||
"roc-cc" "LibreComputer Renegade" \
|
"roc-cc" "LibreComputer Renegade" \
|
||||||
"nanopc-t4" "NanoPC T4" \
|
"nanopc-t4" "NanoPC T4" \
|
||||||
|
|
@ -530,6 +542,13 @@ DEVICE=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
||||||
|
|
||||||
#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
|
#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
|
if [ ! -z "$DEVICE" ]; then
|
||||||
|
if [[ "$DEVICE" = "pinetab" ]] || [[ "$DEVICE" = "pinephone" ]]; then
|
||||||
|
EDITION=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
||||||
|
--menu "Choose an edition:" 20 75 10 \
|
||||||
|
"plasma-mobile" "Plasma Mobile (QT based mobile UI)" \
|
||||||
|
"phosh" "Phosh (GTK based mobile UI)" \
|
||||||
|
3>&1 1>&2 2>&3 3>&-)
|
||||||
|
else
|
||||||
EDITION=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
EDITION=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
||||||
--menu "Choose an edition:" 20 75 10 \
|
--menu "Choose an edition:" 20 75 10 \
|
||||||
"minimal" "Minimal Edition (only CLI)" \
|
"minimal" "Minimal Edition (only CLI)" \
|
||||||
|
|
@ -543,18 +562,27 @@ if [ ! -z "$DEVICE" ]; then
|
||||||
"server" "Minimal with LAMP and Docker (only cli)" \
|
"server" "Minimal with LAMP and Docker (only cli)" \
|
||||||
"budgie" "Full Budgie desktop (EXPERIMENTAL))" \
|
"budgie" "Full Budgie desktop (EXPERIMENTAL))" \
|
||||||
3>&1 1>&2 2>&3 3>&-)
|
3>&1 1>&2 2>&3 3>&-)
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
clear
|
clear
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$EDITION" = "phosh" ]]; then
|
||||||
|
#Set Phosh specific variables
|
||||||
|
USER="manjaro"
|
||||||
|
PASSWORD="123456"
|
||||||
|
CONFIRMPASSWORD="123456"
|
||||||
|
ROOTPASSWORD="root"
|
||||||
|
CONFIRMROOTPASSWORD="root"
|
||||||
|
fi
|
||||||
if [ ! -z "$EDITION" ]; then
|
if [ ! -z "$EDITION" ]; then
|
||||||
|
if [[ "$EDITION" != "phosh" ]]; then
|
||||||
USER=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
USER=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
||||||
--inputbox "Enter the username you want:
|
--inputbox "Enter the username you want:
|
||||||
(usernames must be all lowercase and first character may not be a number)" 10 90 \
|
(usernames must be all lowercase and first character may not be a number)" 10 90 \
|
||||||
3>&1 1>&2 2>&3 3>&-)
|
3>&1 1>&2 2>&3 3>&-)
|
||||||
|
fi
|
||||||
if [[ "$USER" =~ [A-Z] ]] || [[ "$USER" =~ ^[0-9] ]] || [[ "$USER" == *['!'@#\$%^\&*()_+]* ]]; then
|
if [[ "$USER" =~ [A-Z] ]] || [[ "$USER" =~ ^[0-9] ]] || [[ "$USER" == *['!'@#\$%^\&*()_+]* ]]; then
|
||||||
clear
|
clear
|
||||||
msg "Configuration aborted! Username contained invalid characters."
|
msg "Configuration aborted! Username contained invalid characters."
|
||||||
|
|
@ -590,20 +618,24 @@ fi
|
||||||
|
|
||||||
|
|
||||||
if [ ! -z "$FULLNAME" ]; then
|
if [ ! -z "$FULLNAME" ]; then
|
||||||
|
if [[ "$EDITION" != "phosh" ]]; then
|
||||||
PASSWORD=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
PASSWORD=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
||||||
--insecure --passwordbox "Enter new Password for $USER:" 8 50 \
|
--insecure --passwordbox "Enter new Password for $USER:" 8 50 \
|
||||||
3>&1 1>&2 2>&3 3>&- \
|
3>&1 1>&2 2>&3 3>&- \
|
||||||
)
|
)
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
clear
|
clear
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -z "$PASSWORD" ]; then
|
if [ ! -z "$PASSWORD" ]; then
|
||||||
|
if [[ "$EDITION" != "phosh" ]]; then
|
||||||
CONFIRMPASSWORD=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
CONFIRMPASSWORD=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
||||||
--insecure --passwordbox "Confirm new Password for $USER:" 8 50 \
|
--insecure --passwordbox "Confirm new Password for $USER:" 8 50 \
|
||||||
3>&1 1>&2 2>&3 3>&- \
|
3>&1 1>&2 2>&3 3>&- \
|
||||||
)
|
)
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
clear
|
clear
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -616,20 +648,24 @@ if [[ "$PASSWORD" != "$CONFIRMPASSWORD" ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -z "$CONFIRMPASSWORD" ]; then
|
if [ ! -z "$CONFIRMPASSWORD" ]; then
|
||||||
|
if [[ "$EDITION" != "phosh" ]]; then
|
||||||
ROOTPASSWORD=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
ROOTPASSWORD=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
||||||
--insecure --passwordbox "Enter new Root Password:" 8 50 \
|
--insecure --passwordbox "Enter new Root Password:" 8 50 \
|
||||||
3>&1 1>&2 2>&3 3>&- \
|
3>&1 1>&2 2>&3 3>&- \
|
||||||
)
|
)
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
clear
|
clear
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -z "$ROOTPASSWORD" ]; then
|
if [ ! -z "$ROOTPASSWORD" ]; then
|
||||||
|
if [[ "$EDITION" != "phosh" ]]; then
|
||||||
CONFIRMROOTPASSWORD=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
CONFIRMROOTPASSWORD=$(dialog --clear --title "Manjaro ARM Installer v${VERSION}" \
|
||||||
--insecure --passwordbox "Confirm new Root Password:" 8 50 \
|
--insecure --passwordbox "Confirm new Root Password:" 8 50 \
|
||||||
3>&1 1>&2 2>&3 3>&- \
|
3>&1 1>&2 2>&3 3>&- \
|
||||||
)
|
)
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
clear
|
clear
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -815,10 +851,19 @@ esac
|
||||||
installer_getarmprofiles
|
installer_getarmprofiles
|
||||||
|
|
||||||
#Package lists
|
#Package lists
|
||||||
|
sed -i 's/pico-wizard-plamo-scripts//g' $TMPDIR/arm-profiles/editions/$EDITION
|
||||||
|
sed -i 's/pico-wizard-git//g' $TMPDIR/arm-profiles/editions/$EDITION
|
||||||
PKG_DEVICE=$(grep "^[^#;]" $TMPDIR/arm-profiles/devices/$DEVICE | awk '{print $1}')
|
PKG_DEVICE=$(grep "^[^#;]" $TMPDIR/arm-profiles/devices/$DEVICE | awk '{print $1}')
|
||||||
PKG_EDITION=$(grep "^[^#;]" $TMPDIR/arm-profiles/editions/$EDITION | awk '{print $1}')
|
case "$DEVICE" in
|
||||||
SRV_EDITION=$(grep "^[^#;]" $TMPDIR/arm-profiles/services/$EDITION | awk '{print $1}')
|
pinephone)
|
||||||
|
PKG_EDITION=$(grep "^[^#;]" $TMPDIR/arm-profiles/editions/$EDITION | awk '{sub(/>pinephone/,""); print $1}')
|
||||||
|
cat $TMPDIR/arm-profiles/services/$EDITION | sed -e '/^#/d' -e 's/>pinephone //g' >$srv_list
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
PKG_EDITION=$(grep "^[^#;]" $TMPDIR/arm-profiles/editions/$EDITION | awk '{sub(/>pinephone.*/,""); print $1}')
|
||||||
cat $TMPDIR/arm-profiles/services/$EDITION | sed -e '/^#/d' -e '/>pinephone/d' >$srv_list
|
cat $TMPDIR/arm-profiles/services/$EDITION | sed -e '/^#/d' -e '/>pinephone/d' >$srv_list
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
# Commands
|
# Commands
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue