Development Environment on ArchLinux
These instructions allow you to build PX4 (without RTPS) for NuttX targets, using an unsupported version of GCCE from the package manager. The instructions have been tested on Antergos (an Arch Linux based distribution) as it is easier to set up than Arch Linux. We hope to provide fully tested instructions with the supported toolchain in the near future.
Permissions
The user needs to be added to the group "uucp":
sudo usermod -a -G uucp $USER
Then log out and log in for changes to take effect.
Script-based Installation
This script installs the (unsupported) latest GCCE from the package manager. MicroRTPS is not built.
Once ArchLinux is installed you can use the docker script archlinux_install_script.sh to install all dependencies required for building PX4 firmware.
To install using this script, enter the following in a terminal:
wget https://raw.githubusercontent.com/PX4/containers/master/docker/px4-dev/scripts/archlinux_install_script.sh
sudo -s
source ./archlinux_install_script.sh
Manual Installation
Common Dependencies
To install the dependencies manually, enter the following lines into a terminal.
# Common dependencies for all targets
sudo pacman -Sy --noconfirm \
base-devel make cmake ccache git \
ninja python-pip tar unzip zip vim wget
# Install Python dependencies
pip install serial empy numpy toml jinja2
# Install genromfs
wget https://sourceforge.net/projects/romfs/files/genromfs/0.5.2/genromfs-0.5.2.tar.gz
tar zxvf genromfs-0.5.2.tar.gz
cd genromfs-0.5.2 && make && make install && cd ..
rm genromfs-0.5.2.tar.gz genromfs-0.5.2 -r
genromfs is also available in the Archlinux User Repository (AUR). To use this package, install yaourt (Yet AnOther User Repository Tool) and then use it to download, compile and install genromfs as shown:
yaourt -S genromfs
GCCE Compiler
A GCC compiler is required to build for NuttX targets. Enter the command below to install the latest version from the package manager (unsupported).
# Compiler from package manager (unsupported)
sudo pacman -Sy --noconfirm \
arm-none-eabi-gcc arm-none-eabi-newlib
Alternatively, the standard instructions for installing the official version are listed below.
These are untested. Attempt them at your own risk!
Execute the script below to install GCC 7-2017-q4:
pushd .
cd ~
wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/7-2017q4/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
tar -jxf gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
exportline="export PATH=$HOME/gcc-arm-none-eabi-7-2017-q4-major/bin:\$PATH"
if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi
popd
Now restart your machine.
Troubleshooting
Check the version by entering the following command:
arm-none-eabi-gcc --version
The output should be something similar to:
arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255204]
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.