You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							155 lines
						
					
					
						
							3.4 KiB
						
					
					
				
			
		
		
	
	
							155 lines
						
					
					
						
							3.4 KiB
						
					
					
				#!/bin/bash -e
 | 
						|
 | 
						|
OP_ROOT=$(git rev-parse --show-toplevel)
 | 
						|
 | 
						|
# Install packages present in all supported versions of Ubuntu
 | 
						|
function install_ubuntu_common_requirements() {
 | 
						|
  sudo apt-get update
 | 
						|
  sudo apt-get install -y --no-install-recommends \
 | 
						|
    autoconf \
 | 
						|
    build-essential \
 | 
						|
    clang \
 | 
						|
    cmake \
 | 
						|
    make \
 | 
						|
    cppcheck \
 | 
						|
    libtool \
 | 
						|
    libstdc++-arm-none-eabi-newlib \
 | 
						|
    gcc-arm-none-eabi \
 | 
						|
    bzip2 \
 | 
						|
    liblzma-dev \
 | 
						|
    libarchive-dev \
 | 
						|
    libbz2-dev \
 | 
						|
    capnproto \
 | 
						|
    libcapnp-dev \
 | 
						|
    curl \
 | 
						|
    libcurl4-openssl-dev \
 | 
						|
    wget \
 | 
						|
    git \
 | 
						|
    git-lfs \
 | 
						|
    ffmpeg \
 | 
						|
    libavformat-dev \
 | 
						|
    libavcodec-dev \
 | 
						|
    libavdevice-dev \
 | 
						|
    libavutil-dev \
 | 
						|
    libavfilter-dev \
 | 
						|
    libeigen3-dev \
 | 
						|
    libffi-dev \
 | 
						|
    libglew-dev \
 | 
						|
    libgles2-mesa-dev \
 | 
						|
    libglfw3-dev \
 | 
						|
    libglib2.0-0 \
 | 
						|
    libomp-dev \
 | 
						|
    libopencv-dev \
 | 
						|
    libpng16-16 \
 | 
						|
    libssl-dev \
 | 
						|
    libsqlite3-dev \
 | 
						|
    libusb-1.0-0-dev \
 | 
						|
    libzmq3-dev \
 | 
						|
    libsdl1.2-dev \
 | 
						|
    libsdl-image1.2-dev \
 | 
						|
    libsdl-mixer1.2-dev \
 | 
						|
    libsdl-ttf2.0-dev \
 | 
						|
    libsmpeg-dev \
 | 
						|
    libportmidi-dev \
 | 
						|
    libfreetype6-dev \
 | 
						|
    libsystemd-dev \
 | 
						|
    locales \
 | 
						|
    opencl-headers \
 | 
						|
    ocl-icd-libopencl1 \
 | 
						|
    ocl-icd-opencl-dev \
 | 
						|
    clinfo \
 | 
						|
    python-dev \
 | 
						|
    python3-pip \
 | 
						|
    qml-module-qtquick2 \
 | 
						|
    qtmultimedia5-dev \
 | 
						|
    qtwebengine5-dev \
 | 
						|
    qtlocation5-dev \
 | 
						|
    qtpositioning5-dev \
 | 
						|
    libqt5sql5-sqlite \
 | 
						|
    libqt5svg5-dev \
 | 
						|
    libqt5x11extras5-dev \
 | 
						|
    libreadline-dev \
 | 
						|
    libdw1
 | 
						|
}
 | 
						|
 | 
						|
# Install Ubuntu 21.10 packages
 | 
						|
function install_ubuntu_latest_requirements() {
 | 
						|
  install_ubuntu_common_requirements
 | 
						|
 | 
						|
  sudo apt-get install -y --no-install-recommends \
 | 
						|
    qtbase5-dev \
 | 
						|
    qtchooser \
 | 
						|
    qt5-qmake \
 | 
						|
    qtbase5-dev-tools
 | 
						|
}
 | 
						|
 | 
						|
# Install Ubuntu 20.04 packages
 | 
						|
function install_ubuntu_lts_requirements() {
 | 
						|
  install_ubuntu_common_requirements
 | 
						|
 | 
						|
  sudo apt-get install -y --no-install-recommends \
 | 
						|
    libavresample-dev \
 | 
						|
    qt5-default
 | 
						|
}
 | 
						|
 | 
						|
# Detect OS using /etc/os-release file
 | 
						|
if [ -f "/etc/os-release" ]; then
 | 
						|
  source /etc/os-release
 | 
						|
  case "$ID $VERSION_ID" in
 | 
						|
    "ubuntu 21.10")
 | 
						|
      install_ubuntu_latest_requirements
 | 
						|
      ;;
 | 
						|
    "ubuntu 20.04")
 | 
						|
      install_ubuntu_lts_requirements
 | 
						|
      ;;
 | 
						|
    *)
 | 
						|
      echo "$ID $VERSION_ID is unsupported. This setup script is written for Ubuntu 20.04."
 | 
						|
      read -p "Would you like to attempt installation anyway? " -n 1 -r
 | 
						|
      echo ""
 | 
						|
      if [[ ! $REPLY =~ ^[Yy]$ ]]; then
 | 
						|
        exit 1
 | 
						|
      fi
 | 
						|
      install_ubuntu_lts_requirements
 | 
						|
  esac
 | 
						|
else
 | 
						|
  echo "No /etc/os-release in the system"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
# install pyenv
 | 
						|
if ! command -v "pyenv" > /dev/null 2>&1; then
 | 
						|
  curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
 | 
						|
fi
 | 
						|
 | 
						|
# in the openpilot repo
 | 
						|
cd $OP_ROOT
 | 
						|
 | 
						|
source ~/.bashrc
 | 
						|
if [ -z "$OPENPILOT_ENV" ]; then
 | 
						|
  printf "\nsource %s/tools/openpilot_env.sh" "$OP_ROOT" >> ~/.bashrc
 | 
						|
  source ~/.bashrc
 | 
						|
  echo "added openpilot_env to bashrc"
 | 
						|
fi
 | 
						|
 | 
						|
# do the rest of the git checkout
 | 
						|
git lfs pull
 | 
						|
git submodule init
 | 
						|
git submodule update
 | 
						|
 | 
						|
# install python
 | 
						|
PYENV_PYTHON_VERSION=$(cat $OP_ROOT/.python-version)
 | 
						|
PATH=$HOME/.pyenv/bin:$HOME/.pyenv/shims:$PATH
 | 
						|
pyenv install -s ${PYENV_PYTHON_VERSION}
 | 
						|
pyenv rehash
 | 
						|
eval "$(pyenv init -)"
 | 
						|
 | 
						|
# **** in python env ****
 | 
						|
pip install pip==21.3.1
 | 
						|
pip install pipenv==2021.5.29
 | 
						|
pipenv install --dev --deploy
 | 
						|
 | 
						|
echo
 | 
						|
echo "----   FINISH OPENPILOT SETUP   ----"
 | 
						|
echo "Configure your active shell env by running:"
 | 
						|
echo "source ~/.bashrc"
 | 
						|
 |