Version 16 (modified by 3 years 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):
- Download the version corresponding to your OS : https://downloads.codelite.org/
- If the downloaded file is .deb, run:
sudo opkg install filename.deb
- 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: