diff --git a/README.md b/README.md index abcfc78..c0c74b7 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,21 @@ sudo -s clear && bash manjaro-arm-installer ``` +## Supported Devices: +* Pinebook +* Raspberry Pi 3B +* Rock64 (rev2) +* RockPro64 (new) +* Odroid C2 +* Odroid N2 (new) +* Pine64-LTS / Sopine + +## Supported Editions / Desktops: +* Minimal (no xorg, no apps) +* KDE/Plasma (full plasma desktop with apps) +* LXQT (full LXQT desktop with some qt apps) +* CuboCore (base plasma desktop with CoreApps) + ## Other notes: This script is available as a **Arch** (*pkg.tar.xz*) package in my **Manjaro Strit** repo, called `manjaro-arm-installer`. diff --git a/manjaro-arm-installer b/manjaro-arm-installer index ed54f67..ddb51ca 100755 --- a/manjaro-arm-installer +++ b/manjaro-arm-installer @@ -139,10 +139,19 @@ create_install() { info "Installing packages for $EDITION on $DEVICE..." # Install device and editions specific packages $NSPAWN $TMPDIR/root pacman -Syyu base $PKG_DEVICE $PKG_EDITION --noconfirm + if [[ "$DEVICE" = "on2" ]]; then + if [[ "$EDITION" = "kde" ]] || [[ "$EDITION" = "cubocore" ]]; then + $NSPAWN $TMPDIR/root pacman -R sddm sddm-kcm --noconfirm + $NSPAWN $TMPDIR/root pacman -S sddm-n2 sddm-kcm --noconfirm + elif [[ "$EDITION" = "lxqt" ]]; then + $NSPAWN $TMPDIR/root pacman -R sddm sddm-qt-manjaro-theme --noconfirm + $NSPAWN $TMPDIR/root pacman -S sddm-n2 sddm-qt-manjaro-theme --noconfirm + fi + fi info "Enabling services..." # Enable services - $NSPAWN $TMPDIR/root systemctl enable systemd-networkd.service getty.target haveged.service dhcpcd.service 1> /dev/null 2>&1 + $NSPAWN $TMPDIR/root systemctl enable getty.target haveged.service 1> /dev/null 2>&1 $NSPAWN $TMPDIR/root systemctl enable $SRV_EDITION 1> /dev/null 2>&1 info "Applying overlay for $EDITION..." @@ -192,6 +201,8 @@ create_install() { echo "/dev/mmcblk0p1 /boot vfat defaults 0 0" | tee --append $TMPDIR/root/etc/fstab elif [[ "$DEVICE" = "oc1" ]] || [[ "$DEVICE" = "oc2" ]]; then $NSPAWN $TMPDIR/root systemctl enable amlogic.service 1> /dev/null 2>&1 + elif [[ "$DEVICE" = "on2" ]]; then + $NSPAWN $TMPDIR/root systemctl disable dhcpcd.service 1> /dev/null 2>&1 elif [[ "$DEVICE" = "pinebook" ]]; then $NSPAWN $TMPDIR/root systemctl enable pinebook-post-install.service 1> /dev/null 2>&1 else @@ -260,6 +271,27 @@ prepare_card () { mkdir -p $TMPDIR/root chmod 777 -R $TMPDIR/root mount ${SDCARD}${SDDEV}1 $TMPDIR/root + + elif [[ "$DEVICE" = "on2" ]]; then + #Clear first 8 mb + dd if=/dev/zero of=${LDEV} bs=1M count=8 1> /dev/null 2>&1 + + #partition with 2 partitions + parted -s $LDEV mklabel msdos 1> /dev/null 2>&1 + parted -s $LDEV mkpart primary fat32 0% 256M 1> /dev/null 2>&1 + START=`cat /sys/block/$DEV/${DEV}p1/start` + SIZE=`cat /sys/block/$DEV/${DEV}p1/size` + END_SECTOR=$(expr $START + $SIZE) + parted -s $LDEV mkpart primary ext4 "${END_SECTOR}s" 100% 1> /dev/null 2>&1 + partprobe $LDEV 1> /dev/null 2>&1 + mkfs.vfat "${LDEV}p1" 1> /dev/null 2>&1 + mkfs.ext4 "${LDEV}p2" 1> /dev/null 2>&1 + + #copy rootfs contents over to the FS + mkdir -p $TMPDIR/root + mkdir -p $TMPDIR/boot + mount ${LDEV}p1 $TMPDIR/boot + mount ${LDEV}p2 $TMPDIR/root # For pine devices elif [[ "$DEVICE" = "pinebook" ]] || [[ "$DEVICE" = "sopine" ]]; then @@ -307,7 +339,7 @@ cleanup () { msg "Writing bootloader and cleaning up after install..." # For Raspberry Pi devices if [[ "$DEVICE" = "rpi2" ]] || [[ "$DEVICE" = "rpi3" ]]; then - #copy rootfs contents over to the FS + #move boot files mv $TMPDIR/root/boot/* $TMPDIR/boot #clean up @@ -316,7 +348,7 @@ cleanup () { rm -r $TMPDIR/root $TMPDIR/boot partprobe $SDCARD 1> /dev/null 2>&1 -# For Odroid devices + # For Odroid devices elif [[ "$DEVICE" = "oc1" ]] || [[ "$DEVICE" = "oc2" ]] || [[ "$DEVICE" = "xu4" ]]; then #flash bootloader cd $TMPDIR/root/boot/ @@ -328,6 +360,20 @@ cleanup () { rm -r $TMPDIR/root partprobe $SDCARD 1> /dev/null 2>&1 + elif [[ "$DEVICE" = "on2" ]]; then + + # move boot files + mv $TMPDIR/root/boot/* $TMPDIR/boot + #flash bootloader + dd if=$TMPDIR/boot/u-boot.bin of=${SDCARD} conv=fsync,notrunc bs=512 seek=1 1> /dev/null 2>&1 + + #clean up + umount $TMPDIR/root + umount $TMPDIR/boot + losetup -d $LDEV 1> /dev/null 2>&1 + rm -r $TMPDIR/root $TMPDIR/boot + partprobe $LDEV 1> /dev/null 2>&1 + # For pinebook device elif [[ "$DEVICE" = "pinebook" ]] || [[ "$DEVICE" = "sopine" ]]; then #flash bootloader @@ -364,6 +410,7 @@ DEVICE=$(dialog --clear --title "Manjaro ARM Installer" \ "sopine" "SOPINE / PINE A64-LTS" \ "oc2" "Odroid C2" \ "rpi3" "Raspberry Pi 3" \ + "on2" "Odroid N2" \ "oc1" "Odroid C1/C1+ (unmaintained)" \ "xu4" "Odroid XU4 (unmaintained)" \ "rpi2" "Raspberry Pi 2 (unmaintained)" \