Sync edgetx to Gitea
This commit is contained in:
Executable
+164
@@ -0,0 +1,164 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
## Bash script to setup EdgeTX development environment on Ubuntu 22.04 running on bare-metal or in a virtual machine.
|
||||
## Let it run as normal user and when asked, give sudo credentials
|
||||
|
||||
QT_VERSION="6.9.3"
|
||||
GCC_ARM_VERSION="14.2.rel1"
|
||||
|
||||
PAUSEAFTEREACHLINE="false"
|
||||
STEP=1
|
||||
# Parse argument(s)
|
||||
for arg in "$@"
|
||||
do
|
||||
if [[ $arg == "--pause" ]]; then
|
||||
PAUSEAFTEREACHLINE="true"
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ $(lsb_release -rs) != "22.04" ]]; then
|
||||
echo "ERROR: Not running on Ubuntu 22.04!"
|
||||
echo "Terminating the script now."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== Step $((STEP++)): Setting up package repositories ==="
|
||||
sudo apt-get -y install --no-install-recommends software-properties-common gpg gpg-agent wget ca-certificates
|
||||
sudo mkdir -p /etc/apt/keyrings
|
||||
# Set up Kitware repository for newer cmake
|
||||
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \
|
||||
gpg --dearmor - | sudo tee /etc/apt/keyrings/kitware-archive-keyring.gpg >/dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main" | \
|
||||
sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
|
||||
# Set up NodeSource repository for Node.js 20.x
|
||||
wget -O - https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key 2>/dev/null | \
|
||||
gpg --dearmor - | sudo tee /etc/apt/keyrings/nodesource.gpg >/dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | \
|
||||
sudo tee /etc/apt/sources.list.d/nodesource.list >/dev/null
|
||||
# Set up Git PPA for newer git
|
||||
sudo add-apt-repository ppa:git-core/ppa --yes
|
||||
# Set up Rob Savoury's PPA for newer SDL2
|
||||
sudo add-apt-repository ppa:savoury1/multimedia --yes
|
||||
if [[ $PAUSEAFTEREACHLINE == "true" ]]; then
|
||||
echo "Step finished. Please check the output above and press Enter to continue or Ctrl+C to stop."
|
||||
read
|
||||
fi
|
||||
|
||||
echo "=== Step $((STEP++)): Updating Ubuntu package lists. Please provide sudo credentials, when asked ==="
|
||||
sudo apt-get -y update
|
||||
if [[ $PAUSEAFTEREACHLINE == "true" ]]; then
|
||||
echo "Step finished. Please check the output above and press Enter to continue or Ctrl+C to stop."
|
||||
read
|
||||
fi
|
||||
|
||||
echo "=== Step $((STEP++)): Installing packages ==="
|
||||
sudo apt-get -y install --no-install-recommends \
|
||||
build-essential \
|
||||
cmake \
|
||||
kitware-archive-keyring \
|
||||
git \
|
||||
zip \
|
||||
unzip \
|
||||
file \
|
||||
gawk \
|
||||
libsdl2-dev \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
python3-setuptools \
|
||||
python3-tk \
|
||||
libcups2 \
|
||||
libssl-dev \
|
||||
libgtest-dev \
|
||||
clang \
|
||||
libclang-dev \
|
||||
python-is-python3 \
|
||||
dfu-util \
|
||||
nodejs \
|
||||
stlink-tools \
|
||||
openocd \
|
||||
pv
|
||||
if [[ $PAUSEAFTEREACHLINE == "true" ]]; then
|
||||
echo "Step finished. Please check the output above and press Enter to continue or Ctrl+C to stop."
|
||||
read
|
||||
fi
|
||||
|
||||
echo "=== Step $((STEP++)): Installing lv_font_conv ==="
|
||||
sudo npm i lv_font_conv -g
|
||||
if [[ $PAUSEAFTEREACHLINE == "true" ]]; then
|
||||
echo "Step finished. Please check the output above and press Enter to continue or Ctrl+C to stop."
|
||||
read
|
||||
fi
|
||||
|
||||
echo "=== Step $((STEP++)): Installing Python packages ==="
|
||||
sudo python3 -m pip install \
|
||||
asciitree \
|
||||
jinja2 \
|
||||
pillow \
|
||||
clang \
|
||||
lz4 \
|
||||
aqtinstall \
|
||||
pyelftools \
|
||||
pydantic
|
||||
if [[ $PAUSEAFTEREACHLINE == "true" ]]; then
|
||||
echo "Step finished. Please check the output above and press Enter to continue or Ctrl+C to stop."
|
||||
read
|
||||
fi
|
||||
|
||||
echo "=== Step $((STEP++)): Installing Qt ==="
|
||||
sudo mkdir -p /opt/qt
|
||||
sudo chown "${USER}:${USER}" /opt/qt
|
||||
aqt install-qt --outputdir /opt/qt linux desktop ${QT_VERSION} linux_gcc_64 -m qtmultimedia qtserialport
|
||||
if [[ $PAUSEAFTEREACHLINE == "true" ]]; then
|
||||
echo "Step finished. Please press Enter to continue or Ctrl+C to stop."
|
||||
read
|
||||
fi
|
||||
|
||||
echo "=== Step $((STEP++)): Fetching GNU Arm Embedded Toolchains ==="
|
||||
wget -q --show-progress --progress=bar:force:noscroll https://developer.arm.com/-/media/Files/downloads/gnu/${GCC_ARM_VERSION}/binrel/arm-gnu-toolchain-${GCC_ARM_VERSION}-x86_64-arm-none-eabi.tar.xz
|
||||
if [[ $PAUSEAFTEREACHLINE == "true" ]]; then
|
||||
echo "Step finished. Please press Enter to continue or Ctrl+C to stop."
|
||||
read
|
||||
fi
|
||||
|
||||
echo "=== Step $((STEP++)): Unpacking GNU Arm Embedded Toolchains ==="
|
||||
pv arm-gnu-toolchain-${GCC_ARM_VERSION}-x86_64-arm-none-eabi.tar.xz | tar xJf -
|
||||
if [[ $PAUSEAFTEREACHLINE == "true" ]]; then
|
||||
echo "Step finished. Please press Enter to continue or Ctrl+C to stop."
|
||||
read
|
||||
fi
|
||||
|
||||
echo "=== Step $((STEP++)): Removing the downloaded archives ==="
|
||||
rm arm-gnu-toolchain-${GCC_ARM_VERSION}-x86_64-arm-none-eabi.tar.xz
|
||||
if [[ $PAUSEAFTEREACHLINE == "true" ]]; then
|
||||
echo "Step finished. Please press Enter to continue or Ctrl+C to stop."
|
||||
read
|
||||
fi
|
||||
|
||||
echo "=== Step $((STEP++)): Moving GNU Arm Embedded Toolchains to /opt ==="
|
||||
sudo mv arm-gnu-toolchain-${GCC_ARM_VERSION}-x86_64-arm-none-eabi /opt/gcc-arm-none-eabi
|
||||
if [[ $PAUSEAFTEREACHLINE == "true" ]]; then
|
||||
echo "Step finished. Please press Enter to continue or Ctrl+C to stop."
|
||||
read
|
||||
fi
|
||||
|
||||
echo "=== Step $((STEP++)): Adding GNU Arm Embedded Toolchain and Qt to PATH of current user ==="
|
||||
cat >> ~/.bashrc << EOF
|
||||
export PATH="/opt/gcc-arm-none-eabi/bin:\$PATH"
|
||||
export PATH="/opt/qt/${QT_VERSION}/gcc_64/bin:\$PATH"
|
||||
EOF
|
||||
if [[ $PAUSEAFTEREACHLINE == "true" ]]; then
|
||||
echo "Step finished. Please press Enter to continue or Ctrl+C to stop."
|
||||
read
|
||||
fi
|
||||
|
||||
echo "=== Step $((STEP++)): Removing modemmanager (conflicts with DFU) ==="
|
||||
sudo apt-get -y remove modemmanager
|
||||
if [[ $PAUSEAFTEREACHLINE == "true" ]]; then
|
||||
echo "Step finished. Please check the output above and press Enter to continue or Ctrl+C to stop."
|
||||
read
|
||||
fi
|
||||
|
||||
echo "Finished setting up EdgeTX development environment."
|
||||
echo "Please execute: source ~/.bashrc"
|
||||
Reference in New Issue
Block a user