Setup your computer

Fl-AIR directory

It is advised to put all Fl-AIR related stuffs in the same directory, for example $HOME/flair:

$ mkdir $HOME/flair

Then add an environment variable to your .bashrc with the path of this directory:

$ nano ~/.bashrc

and add

# variable for Fl-AIR
export FLAIR_ROOT=$HOME/flair

reload the script

$ source ~/.bashrc

All Fl-AIR documentation, scripts and CMakeLists.txt will use this variable.

Install packages

Install glxinfo needed to detect your graphic driver (for simulator):

sudo apt install mesa-utils libgl1-mesa-dev

Install an optional IDE (Integrated Development Environment), for example:

  • CodeLite (all Fl-AIR documentation is based on it):
  • or eclipse:
    sudo apt-get install eclipse-cdt
  • or codeblocks (depreciated because of cmake and code completion problems, see next section if you want to use CodeBlocks):
    sudo apt-get install codeblocks codeblocks-contrib


if Codeblocks is slow or crashes

It seems that auto completion plugin of Codeblocks (version 12.11 and up) does not work very well with a cmake generated project. One solution is to deactivate this plugin, another solution is to install an older version of Codeblocks (10.05), from this page. For example on a 64 bits computer:

$ cd
$ wget
$ tar -xjf codeblocks-10.05-1-debian-amd64.tar.bz2
$ cd amd64
$ sudo dpkg -i *.deb
$ cd ..
$ rm -rf amd64 codeblocks-10.05-1-debian-amd64.tar.bz2

environment variables

When Codeblocks is not launched from command line, it does not read environment variables set in .bashrc. This can make trouble when a CMakelists.txt is modified for example.

To solve this, go to settings/environment menu. Choose environment variables section on the left. Clic on Add and fill the form:

  • key: FLAIR_ROOT
  • value: path to the FLAIR_ROOT directory

Use rtprio

In order to use FL-AIR without Xenoami, but with high priorities, you need to be root or to allow your user using the following file:

$ sudo nano /etc/security/limits.conf

And add these lines:

your_user		soft	rtprio		99
your_user               hard    rtprio          99

where your_user is your user login. Then logout and login.

Setup bluetooth for DualShock3 controller (optional)

Using bluetooth for the ds3 is not conventional. Thus, you need a small modification in the linux's bleutooth service. You just have to do it once.

On newer distros (ubuntu >=16.4 or mint>=18)

$ sudo nano /etc/systemd/system/

And modify the ExecStart value:

ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=input

Then restart the dameon bluetoothd:

$ sudo systemctl daemon-reload
$ sudo service bluetooth restart 

On older distros

$ sudo nano /etc/bluetooth/main.conf

and add a line to DisablePlugins:

# List of plugins that should not be loaded on bluetoothd startup
DisablePlugins = network,input

Then restart bluetoothd:

$ sudo service bluetooth restart 

Configure SSH hosts (optional)

Alias can be defined in the ~/.ssh/config file:

$ mkdir -p ~/.ssh
$ nano ~/.ssh/config

and add a line for each target

Host uav1
   User root
   StrictHostKeyChecking no

change the name (uav1 in this example) and its address ( in this example).

NB: the 2 last lines are optional, but it will help if you connect to 2 different targets with same IP. Yet, you will be exposed to the man in the middle attack (see this page), which should not be a big deal in our case (target as no root password...).

Using this alias you can connect to the target that way:

$ ssh uav1

which is equivalent to

$ ssh root@

moreover, the command

$ scp toto uav1:

is equivalent to

$ scp toto root@
Last modified 3 months ago Last modified on Dec 2, 2020, 12:21:46 PM