wiki:setup

Version 16 (modified by Sanahuja Guillaume, 7 months ago) ( diff )

--

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 python needed by the toolchains installation scripts

sudo apt install python

Install g++ to compile simulator: (flair does not use the toolchain for simulator to avoid problem with opengl)

sudo apt install g++

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
    

Codeblocks

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 http://sourceforge.net/projects/codeblocks/files/Binaries/10.05/Linux%20%2864%20bit%29/codeblocks-10.05-1-debian-amd64.tar.bz2
$ 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.

You can also create a dedicated user for running flair programs, to avoid allowing this priorities for your regular user.

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/bluetooth.target.wants/bluetooth.service

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:

[General]
# 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
   HostName 192.168.147.63
   User root
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

change the name (uav1 in this example) and its address (192.168.147.63 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@192.168.147.63

moreover, the command

$ scp toto uav1:

is equivalent to

$ scp toto root@192.168.147.63:
Note: See TracWiki for help on using the wiki.