2022-01-02 14:47:16 -08:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
set -e
|
2020-02-28 20:18:02 -08:00
|
|
|
|
2021-12-31 19:29:38 -08:00
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
|
|
|
|
|
ROOT="$(cd $DIR/../ && pwd)"
|
2022-11-30 15:11:26 -08:00
|
|
|
SUDO=""
|
2021-10-11 01:03:56 +02:00
|
|
|
|
2022-01-02 14:47:16 -08:00
|
|
|
# NOTE: this is used in a docker build, so do not run any scripts here.
|
|
|
|
|
|
2022-11-30 15:11:26 -08:00
|
|
|
# Use sudo if not root
|
|
|
|
|
if [[ ! $(id -u) -eq 0 ]]; then
|
|
|
|
|
if [[ -z $(which sudo) ]]; then
|
|
|
|
|
echo "Please install sudo or run as root"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
SUDO="sudo"
|
|
|
|
|
fi
|
|
|
|
|
|
2021-10-23 00:45:20 +02:00
|
|
|
# Install packages present in all supported versions of Ubuntu
|
|
|
|
|
function install_ubuntu_common_requirements() {
|
2022-11-30 15:11:26 -08:00
|
|
|
$SUDO apt-get update
|
|
|
|
|
$SUDO apt-get install -y --no-install-recommends \
|
2020-02-28 19:26:15 -08:00
|
|
|
autoconf \
|
|
|
|
|
build-essential \
|
2022-01-10 11:43:18 -08:00
|
|
|
ca-certificates \
|
2022-07-29 17:46:19 +02:00
|
|
|
casync \
|
2021-10-23 00:45:20 +02:00
|
|
|
clang \
|
|
|
|
|
cmake \
|
|
|
|
|
make \
|
|
|
|
|
cppcheck \
|
|
|
|
|
libtool \
|
|
|
|
|
gcc-arm-none-eabi \
|
2020-02-28 19:26:15 -08:00
|
|
|
bzip2 \
|
2021-10-23 00:45:20 +02:00
|
|
|
liblzma-dev \
|
|
|
|
|
libarchive-dev \
|
|
|
|
|
libbz2-dev \
|
2020-05-12 18:50:07 -07:00
|
|
|
capnproto \
|
|
|
|
|
libcapnp-dev \
|
2020-02-28 19:26:15 -08:00
|
|
|
curl \
|
2021-10-23 00:45:20 +02:00
|
|
|
libcurl4-openssl-dev \
|
2020-02-28 19:26:15 -08:00
|
|
|
git \
|
2021-10-19 22:37:08 -07:00
|
|
|
git-lfs \
|
2021-10-23 00:45:20 +02:00
|
|
|
ffmpeg \
|
2022-01-25 23:15:24 +01:00
|
|
|
libavformat-dev \
|
2022-01-26 10:59:21 +01:00
|
|
|
libavcodec-dev \
|
2021-10-23 00:45:20 +02:00
|
|
|
libavdevice-dev \
|
|
|
|
|
libavutil-dev \
|
|
|
|
|
libavfilter-dev \
|
2020-02-28 19:26:15 -08:00
|
|
|
libeigen3-dev \
|
|
|
|
|
libffi-dev \
|
|
|
|
|
libglew-dev \
|
|
|
|
|
libgles2-mesa-dev \
|
|
|
|
|
libglfw3-dev \
|
|
|
|
|
libglib2.0-0 \
|
2023-03-31 03:24:41 +08:00
|
|
|
libncurses5-dev \
|
|
|
|
|
libncursesw5-dev \
|
2020-02-28 19:26:15 -08:00
|
|
|
libomp-dev \
|
|
|
|
|
libopencv-dev \
|
2020-02-28 19:58:05 -08:00
|
|
|
libpng16-16 \
|
2022-11-30 21:56:03 -08:00
|
|
|
libportaudio2 \
|
2020-02-28 19:26:15 -08:00
|
|
|
libssl-dev \
|
|
|
|
|
libsqlite3-dev \
|
|
|
|
|
libusb-1.0-0-dev \
|
2020-05-12 18:50:07 -07:00
|
|
|
libzmq3-dev \
|
2020-08-26 17:09:23 +02:00
|
|
|
libsystemd-dev \
|
2020-02-28 19:26:15 -08:00
|
|
|
locales \
|
2021-10-23 00:45:20 +02:00
|
|
|
opencl-headers \
|
2020-02-28 19:26:15 -08:00
|
|
|
ocl-icd-libopencl1 \
|
|
|
|
|
ocl-icd-opencl-dev \
|
2021-10-29 09:19:43 +00:00
|
|
|
clinfo \
|
2023-07-26 23:08:23 -07:00
|
|
|
portaudio19-dev \
|
2021-03-29 13:57:05 +02:00
|
|
|
qml-module-qtquick2 \
|
2020-09-09 10:04:28 -07:00
|
|
|
qtmultimedia5-dev \
|
2021-05-17 14:57:07 +02:00
|
|
|
qtlocation5-dev \
|
|
|
|
|
qtpositioning5-dev \
|
2022-06-29 14:47:46 -07:00
|
|
|
qttools5-dev-tools \
|
2021-05-17 14:57:07 +02:00
|
|
|
libqt5sql5-sqlite \
|
|
|
|
|
libqt5svg5-dev \
|
2022-10-04 06:19:42 +08:00
|
|
|
libqt5charts5-dev \
|
2021-05-09 22:34:55 +02:00
|
|
|
libqt5x11extras5-dev \
|
2021-10-27 10:56:41 -07:00
|
|
|
libreadline-dev \
|
2022-01-02 14:47:16 -08:00
|
|
|
libdw1 \
|
|
|
|
|
valgrind
|
2021-10-23 00:45:20 +02:00
|
|
|
}
|
|
|
|
|
|
2022-04-25 16:06:30 -05:00
|
|
|
# Install Ubuntu 22.04 LTS packages
|
2022-12-20 16:44:33 -05:00
|
|
|
function install_ubuntu_lts_latest_requirements() {
|
2021-10-23 00:45:20 +02:00
|
|
|
install_ubuntu_common_requirements
|
|
|
|
|
|
2022-11-30 15:11:26 -08:00
|
|
|
$SUDO apt-get install -y --no-install-recommends \
|
2023-02-09 15:51:50 -05:00
|
|
|
g++-12 \
|
2021-10-23 00:45:20 +02:00
|
|
|
qtbase5-dev \
|
|
|
|
|
qtchooser \
|
|
|
|
|
qt5-qmake \
|
2022-04-25 16:06:30 -05:00
|
|
|
qtbase5-dev-tools \
|
|
|
|
|
python3-dev
|
2021-10-23 00:45:20 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Install Ubuntu 20.04 packages
|
2022-07-24 01:49:41 +02:00
|
|
|
function install_ubuntu_focal_requirements() {
|
2021-10-23 00:45:20 +02:00
|
|
|
install_ubuntu_common_requirements
|
|
|
|
|
|
2022-11-30 15:11:26 -08:00
|
|
|
$SUDO apt-get install -y --no-install-recommends \
|
2021-10-23 00:45:20 +02:00
|
|
|
libavresample-dev \
|
2022-04-25 16:06:30 -05:00
|
|
|
qt5-default \
|
|
|
|
|
python-dev
|
2021-10-23 00:45:20 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Detect OS using /etc/os-release file
|
|
|
|
|
if [ -f "/etc/os-release" ]; then
|
|
|
|
|
source /etc/os-release
|
2022-07-24 01:49:41 +02:00
|
|
|
case "$VERSION_CODENAME" in
|
|
|
|
|
"jammy")
|
2022-12-20 16:44:33 -05:00
|
|
|
install_ubuntu_lts_latest_requirements
|
|
|
|
|
;;
|
|
|
|
|
"kinetic")
|
|
|
|
|
install_ubuntu_lts_latest_requirements
|
2021-10-23 00:45:20 +02:00
|
|
|
;;
|
2022-07-24 01:49:41 +02:00
|
|
|
"focal")
|
|
|
|
|
install_ubuntu_focal_requirements
|
2021-10-23 00:45:20 +02:00
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
echo "$ID $VERSION_ID is unsupported. This setup script is written for Ubuntu 20.04."
|
2021-11-16 14:30:51 -08:00
|
|
|
read -p "Would you like to attempt installation anyway? " -n 1 -r
|
|
|
|
|
echo ""
|
|
|
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
2022-12-20 16:44:33 -05:00
|
|
|
if [ "$UBUNTU_CODENAME" = "jammy" ] || [ "$UBUNTU_CODENAME" = "kinetic" ]; then
|
|
|
|
|
install_ubuntu_lts_latest_requirements
|
2022-08-13 21:53:45 -04:00
|
|
|
else
|
|
|
|
|
install_ubuntu_focal_requirements
|
|
|
|
|
fi
|
2021-10-23 00:45:20 +02:00
|
|
|
esac
|
|
|
|
|
else
|
|
|
|
|
echo "No /etc/os-release in the system"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2020-02-28 19:26:15 -08:00
|
|
|
|
2022-01-02 14:47:16 -08:00
|
|
|
# install python dependencies
|
|
|
|
|
$ROOT/update_requirements.sh
|
2021-06-24 05:31:28 +09:00
|
|
|
|
2020-02-29 01:42:38 -08:00
|
|
|
source ~/.bashrc
|
|
|
|
|
if [ -z "$OPENPILOT_ENV" ]; then
|
2021-12-31 19:29:38 -08:00
|
|
|
printf "\nsource %s/tools/openpilot_env.sh" "$ROOT" >> ~/.bashrc
|
2020-02-29 01:42:38 -08:00
|
|
|
source ~/.bashrc
|
|
|
|
|
echo "added openpilot_env to bashrc"
|
|
|
|
|
fi
|
|
|
|
|
|
2021-05-09 22:34:55 +02:00
|
|
|
echo
|
2022-01-07 15:15:18 -08:00
|
|
|
echo "---- OPENPILOT SETUP DONE ----"
|
|
|
|
|
echo "Open a new shell or configure your active shell env by running:"
|
2021-05-09 22:34:55 +02:00
|
|
|
echo "source ~/.bashrc"
|