forked from norman/fusionpbx-install.sh-github-mirror
While SignalWire doesn't have aarch64 debs of FreeSWITCH, PostgreSQL.org and sury.org have debs of PgSQL & PHP for aarch64, respectively. Compiling FreeSWITCH from source works cleanly on aarch64, tested on both Armbian and stock Debian. So might as well remove the unsupported. While we're add it, let's parallelize the makes, as it's dreadfully slow on most SBCs without it
103 lines
2.6 KiB
Bash
Executable File
103 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
#make sure lsb release is installed
|
|
apt-get install lsb-release
|
|
|
|
#operating system details
|
|
os_name=$(lsb_release -is)
|
|
os_codename=$(lsb_release -cs)
|
|
os_mode='unknown'
|
|
|
|
#cpu details
|
|
cpu_name=$(uname -m)
|
|
cpu_architecture='unknown'
|
|
cpu_mode='unknown'
|
|
|
|
#set the environment path
|
|
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
|
|
#check what the CPU and OS are
|
|
if [ .$cpu_name = .'armv6l' ]; then
|
|
# RaspberryPi Zero
|
|
os_mode='32'
|
|
cpu_mode='32'
|
|
cpu_architecture='arm'
|
|
elif [ .$cpu_name = .'armv7l' ]; then
|
|
# RaspberryPi 3 is actually armv8l but current Raspbian reports the cpu as armv7l and no Raspbian 64Bit has been released at this time
|
|
os_mode='32'
|
|
cpu_mode='32'
|
|
cpu_architecture='arm'
|
|
elif [ .$cpu_name = .'armv8l' ]; then
|
|
# No test case for armv8l
|
|
os_mode='unknown'
|
|
cpu_mode='64'
|
|
cpu_architecture='arm'
|
|
elif [ .$cpu_name = .'aarch64' ]; then
|
|
os_mode='64'
|
|
cpu_mode='64'
|
|
cpu_architecture='arm'
|
|
elif [ .$cpu_name = .'i386' ]; then
|
|
os_mode='32'
|
|
if [ .$(grep -o -w 'lm' /proc/cpuinfo | head -n 1) = .'lm' ]; then
|
|
cpu_mode='64'
|
|
else
|
|
cpu_mode='32'
|
|
fi
|
|
cpu_architecture='x86'
|
|
elif [ .$cpu_name = .'i686' ]; then
|
|
os_mode='32'
|
|
if [ .$(grep -o -w 'lm' /proc/cpuinfo | head -n 1) = .'lm' ]; then
|
|
cpu_mode='64'
|
|
else
|
|
cpu_mode='32'
|
|
fi
|
|
cpu_architecture='x86'
|
|
elif [ .$cpu_name = .'x86_64' ]; then
|
|
os_mode='64'
|
|
if [ .$(grep -o -w 'lm' /proc/cpuinfo | head -n 1) = .'lm' ]; then
|
|
cpu_mode='64'
|
|
else
|
|
cpu_mode='32'
|
|
fi
|
|
cpu_architecture='x86'
|
|
else
|
|
error "You are using an unsupported cpu '$cpu_name'"
|
|
exit 3
|
|
fi
|
|
|
|
if [ .$cpu_architecture = .'arm' ]; then
|
|
if [ .$os_mode = .'32' ]; then
|
|
verbose "Correct CPU and Operating System detected, using the ARM repo"
|
|
elif [ .$os_mode = .'64' ]; then
|
|
switch_source=true
|
|
switch_package=false
|
|
else
|
|
error "Unknown OS mode $os_mode this is unsupported"
|
|
switch_source=true
|
|
switch_package=false
|
|
fi
|
|
elif [ .$cpu_architecture = .'x86' ]; then
|
|
if [ .$os_mode = .'32' ]; then
|
|
error "You are using a 32bit OS this is unsupported"
|
|
if [ .$cpu_mode = .'64' ]; then
|
|
warning " Your CPU is 64bit you should consider reinstalling with a 64bit OS"
|
|
fi
|
|
switch_source=true
|
|
switch_package=false
|
|
elif [ .$os_mode = .'64' ]; then
|
|
verbose "Correct CPU and Operating System detected"
|
|
else
|
|
error "Unknown Operating System mode '$os_mode' is unsupported"
|
|
switch_source=true
|
|
switch_package=false
|
|
fi
|
|
else
|
|
error "You are using an unsupported architecture '$cpu_architecture'"
|
|
warning "Detected environment was :-"
|
|
warning "os_name:'$os_name'"
|
|
warning "os_codename:'$os_codename'"
|
|
warning "os_mode:'$os_mode'"
|
|
warning "cpu_name:'$cpu_name'"
|
|
exit 3
|
|
fi
|