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"
 | |
| 
 |