PublicFiles/Artian-Apps/apps/Box86/install-64

94 lines
3.7 KiB
Bash

#!/bin/bash
function check-armhf() {
ARMHF="$(dpkg --print-foreign-architectures | grep "armhf")"
}
#add armhf architecture (multiarch)
check-armhf
if [[ "$ARMHF" == *"armhf"* ]]; then
echo "armhf arcitecture already added..."
else
sudo dpkg --add-architecture armhf
check-armhf
if [[ "$ARMHF" != *"armhf"* ]]; then
error "armhf architecture should be added by now, but it isn't!"
fi
fi
if dpkg -l box86 &>/dev/null ;then
sudo apt purge -y --allow-change-held-packages box86*
fi
#install box86 dependencies
unset rpi_arm_userspace
# only install the libraspberrypi0 arm32 package if the user already has the libraspberrypi0 arm64 package installed
if package_installed libraspberrypi0 ; then
rpi_arm_userspace="libraspberrypi0:armhf"
fi
unset mesa_va_drivers
# only install the mesa-va-drivers arm32 package if the user already has the mesa-va-drivers arm64 package installed
if package_installed mesa-va-drivers ; then
mesa_va_drivers="mesa-va-drivers:armhf"
fi
if [[ ! -z "$__os_original_id" ]]; then
error "User error: Box86 cannot be installed on $__os_original_desc. Please use any official Ubuntu Flavor, Debian, or PiOS/Raspbian Bullseye."
elif [[ "$__os_codename" == "buster" ]]; then
error "User error: Box86 cannot be installed on $__os_desc. Please use any official Ubuntu Flavor, Debian, or PiOS/Raspbian Bullseye."
fi
# libsdl2-mixer-2.0-0:armhf NOT included since it depends on libopusfile0 on newer distros (buster+ and focal+) which is NOT multiarch compatible
install_packages libc6:armhf libstdc++6:armhf \
libx11-6:armhf \
libgtk-3-0:armhf \
libgtk2.0-0:armhf libgdk-pixbuf2.0-0:armhf \
libpng16-16:armhf libjpeg62:armhf \
libopenal1:armhf osspd:armhf libvorbisfile3:armhf \
libcurl4:armhf \
libudev1:armhf \
libsdl2-2.0-0:armhf libsdl2-image-2.0-0:armhf libsdl2-net-2.0-0:armhf libsdl2-ttf-2.0-0:armhf \
libsdl1.2debian:armhf libsdl-mixer1.2:armhf libsdl-image1.2:armhf libsdl-net1.2:armhf libsdl-sound1.2:armhf libsdl-ttf2.0-0:armhf libsmpeg0:armhf \
libcal3d12v5:armhf \
libssl1.1:armhf '|' libssl3:armhf libssh-gcrypt-4:armhf \
libcups2:armhf \
libgssapi-krb5-2:armhf libkrb5-3:armhf \
$rpi_arm_userspace $mesa_va_drivers libegl1-mesa:armhf libgl1-mesa-glx:armhf libgles2-mesa:armhf
sudo wget https://pi-apps-coders.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list
if [ $? != 0 ];then
sudo rm -f /etc/apt/sources.list.d/box86.list
error "Failed to add box86.list file!"
fi
sudo rm -f /usr/share/keyrings/box86-debs-archive-keyring.gpg /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg
sudo mkdir -p /etc/apt/trusted.gpg.d
wget -qO- https://pi-apps-coders.github.io/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg > /dev/null
if [ $? != 0 ];then
sudo rm -f /etc/apt/sources.list.d/box86.list
error "Failed to add KEY.gpg to APT keyring!"
fi
# obtain SOC_ID
get_model
if [[ "$SOC_ID" == "tegra-x1" ]] || [[ "$SOC_ID" == "tegra-x2" ]]; then
install_packages box86-tegrax1:armhf || exit 1
elif [[ "$SOC_ID" == "rk3399" ]]; then
install_packages box86-rk3399:armhf || exit 1
elif [[ "$SOC_ID" == "bcm2711" ]]; then
install_packages box86-rpi4arm64:armhf || exit 1
elif [[ "$SOC_ID" == "bcm2837" ]]; then
install_packages box86-rpi3arm64:armhf || exit 1
elif cat /proc/cpuinfo | grep -q aes; then
warning "There is no box86 pre-build for your device $SOC_ID $model"
warning "Installing the generic arm box86 build as a fallback (crypto extensions enabled)"
install_packages box86-generic-arm:armhf || exit 1
else
warning "There is no box86 pre-build for your device $SOC_ID $model"
warning "Installing the RPI4 tuned box86 build as a fallback (no crypto extensions enabled)"
install_packages box86-rpi4arm64:armhf || exit 1
fi