Linux - Building and Packaging (old)
Introduction
This page describes how to setup a build environment, using a Ubuntu 14.04.3 LTS 64 bit (Trusty Tahr). The same method can apply to others GNU/Linux dist like Debian or Fedora.
Since Qt5.6, Qt do not provides the Linux32 prebuild binaries or Linux32 Qt installer. See Linux32(i686) Qt5.6 issue part.
Setup a build environment
Install all tools, dependencies, compiler and more which are needed for building:
sudo apt-get install build-essential \ curl \ gdb \ wget \ debhelper \ p7zip-full \ unzip \ flex \ bison \ libsdl1.2-dev \ libudev-dev \ libusb-1.0-0-dev \ git-core \ git-doc \ gitk \ ccache \ cmake \ libzip-dev \ libpng-dev \ libjpeg-dev \ libtiff5-dev \ libcurl4-openssl-dev \ libgeos++-dev \ libgdal-dev
For x86_64 architecture you still need libc6 32bits compatible for ARM toolchain use or it fails silently!
sudo apt-get install libc6-i386
Linux32 (i686) - Qt5.6 issue
Qt5.6 is not available for download anymore, you can use the Qt5.6 packages that comes from you system:
sudo add-apt-repository ppa:librepilot/tools -y sudo apt-get update -q sudo apt-get install -y libudev-dev \ libusb-1.0-0-dev \ libsdl1.2-dev \ python \ libopenscenegraph-dev \ qt56-meta-minimal \ qt56svg \ qt56script \ qt56serialport \ qt56multimedia \ qt56translations \ qt56tools \ qt56quickcontrols make arm_sdk_install source /opt/qt56/bin/qt56-env.sh make opfw_resource make gcs GCS_EXTRA_CONF=osg ./build/librepilot-gcs_release/bin/librepilot-gcs
Get the code using Git
Choose/create a dir where you want LibrePilot code:
mkdir -p ~/code cd ~/code
Checkout code :
git clone https://bitbucket.org/librepilot/librepilot.git
Change current directory to ~/code/librepilot:
cd ~/code/librepilot
Now you can checkout code from remote Git server:
git checkout next
Dev Tools Installation
Install development libraries and tools, these will be downloaded and automatically installed using root Makefile:
make all_sdk_install
After you have run make all_sdk_install, make sure you run the next two commands to make sure everything was installed.
make osg_install make osgearth_install
Connecting your hardware
If you don't install a package previously you cannot access the hardware connected to Usb port as a normal user because access rights are missing.
Copy the udev rules file to the right place and add your current user to the plugdev group. May need a new terminal session to be taken in account.
sudo cp package/linux/45-uav.rules /etc/udev/rules.d/45-uav.rules sudo udevadm control --reload-rules sudo usermod -a -G plugdev your_username
Build - Run software locally
make opfw_resource make gcs ./build/librepilot-gcs_release/bin/librepilot-gcs
Take also a look to the Make Basics page.
Build package
Build a .deb package:
Tip: set after make -j(numbers of cores/threads)
example: make -j4 package ( for 4 cores/threads)
make package
Updating your local source of Librepilot
Go to the location where you have your source files ( if its the same as above it will be ~/code/librepilot )
The first command will get the new changes
The second command will rebuild
git pull make package