# 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. On Arch Linux there is currently no script to install the dependencies. You can, however, check how the Arch Linux Dockerfile for reference. ## 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 ant \ ninja python-pip tar unzip zip vim wget # Install Python dependencies pip install serial empy numpy toml jinja2 pyyaml cerberus # 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


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.