wiki:prerequisite

Version 5 (modified by Sanahuja Guillaume, 21 months ago) (diff)

--

Prerequisite

This page gathers some prerequisites. It is necessary to read and understand everything in this page before starting to work with Flair.

C/C++

Fl-Air is written in C++. To develop on this framework, you need to understand C and C++.

Here are lessons (in French):

Linux

Flair work on linux only. If you want to install it on your computer, one recommended distribution is Mint as it is popular, convivial and easy to install. All documentation in this wiki is based on Mint, but it should work with other distributions. Whatsoever the distribution you choose, install the 65 bit version of it. Flair only supports 64 bit hosts.

To use Flair, you have to know some basics about linux (how to launch a program, configure wifi, etc). Moreover a lot of operations are done through the command line.

To learn the command line, you can read this tutorial or any equivalent. Please note that on target (unlike on computer), the only user is the root one, without password by default. On the target, the default text editor are vi and nano. You can read this page for example to begin with nano.

In this wiki, commands that must be entered in a linux console on your computer (host) will be indicated as above with a $:

$ command

Commands that must be entered in a linux console on the target will be indicated as above with a #:

# command

But be careful, the target does not have any keyboard (nor screen!). So the command must be entered from your computer, on a terminal connected to the target, either by serial, or by SSH).

Serial console

Serial console allows to connect to the target to access the bootloader (u-boot), or to have a linux console. The console is also accessible through the network . Yet, if network does not work, serial console is the only way to talk to the target!

You can use gtkterm or cutecom.

SSH

Secure SHell (SSH) is both a program and a secured communication protocol. It can connect remotely to a computer through network. The computer we connect to is called the server, and the computer used to connect to the server is called the client.

To connect to a SSH server, the command is like this:

$ ssh user@server

where user is the user name we want to connect to the server. server field can be either the name of the server or its IP address. For example, to connect to storage as toto:

$ ssh toto@storage

To connect to a target (once netwok is configured, see this page?):

$ ssh root@192.168.147.63

IP address as to be adapted to your case.

Note that the first time you connect to a SSH server, you will be asked a confirmation as this server is not a knwon hosts.

SCP

Secure CoPy (SCP) est un moyen sécurisé de copie de fichiers entre ordinateurs basé sur le protocole SSH. Il nous permet notamment d'envoyer à la cible des fichiers de notre ordinateur.

Pour copier un fichier vers un autre ordinateur, utiliser la commande:

$ scp chemin_vers_source utilisateur@serveur:/chemin_vers_destination

chemin_vers_source est le chemin du fichier source, utilisateur le compte qui va se connecter au serveur, et chemin_vers_destination l'endroit où placer le fichier sur le serveur. Par exemple, pour copier le fichier test se trouvant dans votre répertoire personnel dans le dossier /home/root de la cible (une fois le wifi configuré, voir section précedente):

$ scp ~/test root@192.168.6.1:/home/root

SVN

SVN ou Subversion est un système de gestion de version.

On l'utilise généralement via la ligne de commande (svn checkout, svn up, svn commit). Il existe aussi des clients graphiques tels que rapidsvn, rabitvcs, etc...

CMake

CMake permet la génération de fichiers de construction standards (makefile, projets pour différents IDE), via des fichiers de configuration, appelés CMakeLists.txt. L'intérêt est de n'utiliser qu'un seul fichier de configuration (le CMakeLists.txt), quelque soit l'IDE pour lequel on veut construire le projet. Chacun peut alors utiliser l'IDE qu'il préfère. Par ailleurs, CMake s'adapte suivant le système d'exploitation utilisé.

L'utilisation de CMake passe par la ligne de commande.

Pour connaitre la liste des generators (type de fichiers de constructions), exécuter:

$ cmake --help

Ce qui donnera la syntaxe d'utilisation de CMake; à la fin se trouve la liste des generators. Sous Windows, on obtient par exemple:

The following generators are available on this platform:
  Unix Makefiles              = Generates standard UNIX makefiles.
  Ninja                       = Generates build.ninja files (experimental).
  CodeBlocks - Ninja          = Generates CodeBlocks project files.
  CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
  CodeLite - Ninja             = Generates CodeLite project files.
  CodeLite - Unix Makefiles    = Generates CodeLite project files.
  Eclipse CDT4 - Ninja        = Generates Eclipse CDT 4.0 project files.
  Eclipse CDT4 - Unix Makefiles
                              = Generates Eclipse CDT 4.0 project files.
  KDevelop3                   = Generates KDevelop 3 project files.
  KDevelop3 - Unix Makefiles  = Generates KDevelop 3 project files.
  Sublime Text 2 - Ninja      = Generates Sublime Text 2 project files.
  Sublime Text 2 - Unix Makefiles
                              = Generates Sublime Text 2 project files.

Ainsi, pour construire un projet pour CodeBlocks, lancer dans un répertoire contenant un fichier CMakeLists.txt:

$ cmake -G "CodeLite - Unix Makefiles"