Archives février 2016

Faire un daemon sous Linux

Sous linux, le terme daemon désigne un ou des processus qui s’exécutent en arrière plan. C’est l’équivalent des services sous Windows.

Les étapes suivantes visent à démarrer un programme exécutable automatiquement lors du lancement. Il est toujours possible d’arrêter, de lancer ou de relancer le daemon en exécutant manuellement le script dans une console.

1 ) Mettre un script dans le répertoire /etc/init.d/

Vous trouverez dans ce répertoire le fichier skeleton, qui est un canevas simple à modifier. Faites une copie du fichier et changer le nom pour qu’il représente bien l’application qui sera lancée. Dans notre exemple, il s’agit d’un petit programme qui gère le clignotement d’une led de statut. J’ai donc renommé le fichier stateLed.

cp /etc/init.d/skeleton /etc/init.d/stateLed

Voici les lignes que vous devrez modifier :

DESC="Description of the service"
NAME=daemonexecutablename
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS="--options args"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

Voici les lignes modifiées pour mon exemple :

DESC="State led service"
NAME=stateLed
DAEMON=/usr/bin/$NAME
DAEMON_ARGS=" 4"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

2) Pour que le script puisse s’exécuter, il faut maintenant le rendre exécutable. Entrez la commande suivante dans une console :

sudo chmod +x stateLed

3 )Pour que l’appel du programme par le script fonctionne, il faut mettre le fichier exécutable dans le répertoire /usr/bin/.

Si le programme requiert divers appels de commande, il est aussi possible de mettre un script dans le répertoire /usr/sbin/. Voici un exemple :

#!/bin/bash
/etc/init.d/stateLed start

4) La dernière étape valide le script dans la liste des scripts à considérer.

update-rc.d stateLed defaults

Vous devriez obtenir un message semblable à ceci :

Adding system startup for /etc/init.d/stateLed ...    
/etc/rc0.d/K20stateLed -> ../init.d/stateLed 
/etc/rc1.d/K20stateLed  -> ../init.d/stateLed 
/etc/rc6.d/K20stateLed  -> ../init.d/stateLed     
/etc/rc2.d/S20stateLed -> ../init.d/stateLed     
/etc/rc3.d/S20stateLed  -> ../init.d/stateLed     
/etc/rc4.d/S20stateLed  -> ../init.d/stateLed     
/etc/rc5.d/S20stateLed  -> ../init.d/stateLed

Ça devrait maintenant fonctionner.

 


PCDuino : Eth0 (connexion filaire) ne fonctionne pas

Étrangement, le lien filaire ne fonctionne pas sur l’image distribuée par le fabricant. Pour solutionner, il suffit de modifier le fichier des interfaces réseau, /etc/network/interfaces.

Éditez le fichier et ajoutez les deux lignes suivantes devraient solutionner.

auto eth0
iface eth0 inet dhcp

Pour appliquez les modifications sans redémarrer, entrez la commande :

ifup -a

Cross-compilation Linux vers ARM (PCDuino 3)

Pour des programmes moyens ou grands, il est préférable de compiler sur une station plus puissante pour ensuite exécuter le programme sur le mini-pc, dans le cas présent, un ARM A20 sur un PCDuino 3.

Les étapes sont simples.

1 ) Installer GCC pour cross compilation

sudo apt-get install gcc-arm-linux-gnueabihf

2 ) Installer G++ pour cross compilation

sudo apt-get install g++-arm-linux-gnueabihf

3 ) Faire un test

Le grand classique : « Bonjour le monde » dans le fichier allo.c

#include <stdio.h>
 
int main(void)
{
    printf("Bonjour le monde");
}

Compiler le petit code précédent

arm-linux-gnueabihf-gcc allo.c -o allo

Copiez le fichier généré sur votre PCDuino et exécutez le. Un manière facile de transférer le fichier est d’utiliser le service ssh. Par exemple, si votre module ARM se trouve à l’adresse 192.168.1.101, la commande suivante copiera le fichier allo dans le répertoire Documents de celui-ci.

scp allo ubuntu@192.168.1.101:/home/ubuntu/Documents/

N’oubliez pas de rendre le fichier exécutable une fois copié.

chmod +x allo

 


PcDuino 3 – Installation de Qt

04027682-photo-qt-logopcduino3Après quelques tentatives différentes, voici une méthode par laquelle j’ai installé et fait fonctionné Qt sur mon PCDuino 3.

La version de Qt installée avec cette méthode est 4.8. Je n’ai pas encore fait fonctionné QT5 mais je le ferai prochainement. Pour le moment, j’ai fait fonctionné Qt5 mais pas dans QTCreator.

La méthode est exécutée sur l’image SD Ubuntu distribuée par le fabricant.

Voici les commandes à exécuter dans un terminal sur le PCDuino.

apt-get update
apt-get install qtcreator
apt-get install qt4-dev-tools
apt-get install qt4-qmake
apt-get install libqt4-dev
apt-get install mysql-client

Vous devriez ensuite effacer les paquets d’installation afin de récupérer un peu d’espace disque.

apt-get clean

Vous pouvez maintenant démarrer QTCreator et configurer le compilateur.