mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-18 20:03:53 +08:00
As some pandas (such as c2) still use the bbaa vendor id, add bbaa back to avoid misrecognition.
125 lines
3.1 KiB
Bash
Executable File
125 lines
3.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
SUDO=""
|
|
|
|
# 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
|
|
|
|
# Check if stdin is open
|
|
if [ -t 0 ]; then
|
|
INTERACTIVE=1
|
|
fi
|
|
|
|
# Install common packages
|
|
function install_ubuntu_common_requirements() {
|
|
$SUDO apt-get update
|
|
$SUDO apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
clang \
|
|
build-essential \
|
|
gcc-arm-none-eabi \
|
|
liblzma-dev \
|
|
capnproto \
|
|
libcapnp-dev \
|
|
curl \
|
|
libcurl4-openssl-dev \
|
|
git \
|
|
git-lfs \
|
|
ffmpeg \
|
|
libavformat-dev \
|
|
libavcodec-dev \
|
|
libavdevice-dev \
|
|
libavutil-dev \
|
|
libavfilter-dev \
|
|
libbz2-dev \
|
|
libeigen3-dev \
|
|
libffi-dev \
|
|
libglew-dev \
|
|
libgles2-mesa-dev \
|
|
libglfw3-dev \
|
|
libglib2.0-0 \
|
|
libjpeg-dev \
|
|
libqt5charts5-dev \
|
|
libncurses5-dev \
|
|
libssl-dev \
|
|
libusb-1.0-0-dev \
|
|
libzmq3-dev \
|
|
libzstd-dev \
|
|
libsqlite3-dev \
|
|
libsystemd-dev \
|
|
locales \
|
|
opencl-headers \
|
|
ocl-icd-libopencl1 \
|
|
ocl-icd-opencl-dev \
|
|
portaudio19-dev \
|
|
qttools5-dev-tools \
|
|
libqt5svg5-dev \
|
|
libqt5serialbus5-dev \
|
|
libqt5x11extras5-dev \
|
|
libqt5opengl5-dev
|
|
}
|
|
|
|
# Install Ubuntu 24.04 LTS packages
|
|
function install_ubuntu_lts_latest_requirements() {
|
|
install_ubuntu_common_requirements
|
|
|
|
$SUDO apt-get install -y --no-install-recommends \
|
|
g++-12 \
|
|
qtbase5-dev \
|
|
qtchooser \
|
|
qt5-qmake \
|
|
qtbase5-dev-tools \
|
|
python3-dev \
|
|
python3-venv
|
|
}
|
|
|
|
# Detect OS using /etc/os-release file
|
|
if [ -f "/etc/os-release" ]; then
|
|
source /etc/os-release
|
|
case "$VERSION_CODENAME" in
|
|
"jammy" | "kinetic" | "noble")
|
|
install_ubuntu_lts_latest_requirements
|
|
;;
|
|
*)
|
|
echo "$ID $VERSION_ID is unsupported. This setup script is written for Ubuntu 24.04."
|
|
read -p "Would you like to attempt installation anyway? " -n 1 -r
|
|
echo ""
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
exit 1
|
|
fi
|
|
install_ubuntu_lts_latest_requirements
|
|
esac
|
|
|
|
if [[ -d "/etc/udev/rules.d/" ]]; then
|
|
# Setup panda udev rules
|
|
$SUDO tee /etc/udev/rules.d/12-panda_jungle.rules > /dev/null <<EOF
|
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="3801", ATTRS{idProduct}=="ddcf", MODE="0666"
|
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="3801", ATTRS{idProduct}=="ddef", MODE="0666"
|
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="bbaa", ATTRS{idProduct}=="ddcf", MODE="0666"
|
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="bbaa", ATTRS{idProduct}=="ddef", MODE="0666"
|
|
|
|
EOF
|
|
|
|
# Setup jungle udev rules
|
|
$SUDO tee /etc/udev/rules.d/11-panda.rules > /dev/null <<EOF
|
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="3801", ATTRS{idProduct}=="ddcc", MODE="0666"
|
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="3801", ATTRS{idProduct}=="ddee", MODE="0666"
|
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="bbaa", ATTRS{idProduct}=="ddcc", MODE="0666"
|
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="bbaa", ATTRS{idProduct}=="ddee", MODE="0666"
|
|
EOF
|
|
|
|
$SUDO udevadm control --reload-rules && $SUDO udevadm trigger || true
|
|
fi
|
|
|
|
else
|
|
echo "No /etc/os-release in the system. Make sure you're running on Ubuntu, or similar."
|
|
exit 1
|
|
fi
|