Archives de catégorie : GNU/Linux

Compilation en mode statique : avantages, inconvénients et mise en œuvre

La plupart du temps, lorsque vous compilez un programme avec g++, votre exécutable est en mode dynamique. Ainsi lorsque vous lancez votre exécutable, celui-ci va charger les bibliothèques qui contiennent le code des fonctions que vous n’avez pas codées (par exemple la méthode cout). Ces bibliothèques dynamiques sont des fichiers « .so » sous GNU/Linux ou « .dll » sous Microsoft Windows.

Lorsque vous compilez un programme en mode statique, le code des fonctions externes est inclus dans l’exécutable final. Vous ne dépendez plus alors de bibliothèques externes, votre exécutable est autonome.

Détaillons un peu plus ce qui précède…
Imprimer cet article Imprimer cet article
Continuer la lecture

RaspberryPi à tout faire…

Un titre un peu fourre tout car en effet le sujet est vaste…Cet article présente les bases de l’installation d’un RaspberryPi et sa configuration de base. Puis nous allons tester les différentes possibilités d’E/S SANS programmation : E/S TOR (GPIO), bus 1Wire, bus I2C, voie série,bus SPI. Puis nous passerons à la programmation en langage C à l’aide de la bibliothèque WiringPi de Gordon Henderson. Enfin nous terminerons par la création d’une page web qui dialoguera avec ces différents bus grâce à un script CGI. Bref que du bon… Continuer la lecture

Horloge RTC gérée par le noyau Linux sur RaspberryPi

Vous savez sans nul doute que le RaspberryPi n’est pas équipé d’une horloge temps réel pour des raisons de coût. La distribution Raspian a fait le choix de récupérer l’heure sur Internet quand la carte est connecté sinon elle repart avec la dernière heure connu (fake_hwclock). Bien sur ce n’est pas satisfaisant…aussi vous trouverez sur le grand « n’Internet » nombre de site qui décrive comment rajouter une RTC (principalement en I2C). J’ai même fait quelques lignes la-dessus à la fin de l’article sur l’I2C sur Raspberry. Cependant je voudrais faire « encore mieux », en particulier que la partie « user space » (espace utilisateur) ne gère pas cette RTC mais que le noyau s’en charge de A à Z. Cette article décrit cette mise en oeuvre.

Continuer la lecture

Installer une chaîne de cross-compilation pour µP ARM sur une Debian Squeeze (6.0) ou Wheezy (7.0)

De plus en plus de cartes électroniques à bas coût sont disponibles sur le marché de l’embarqué. Dans quasiment tous les cas elles sont équipées d’un coeur ARM. Par exemple, le RaspberryPi (ARM11 : architecture armv6) ou les cartes Olinuxino (ARM9 (armv5) pour la iMX233 et Cortex A8 (armv7) pour la carte A13) utilisent des processeurs ayant un coeur ARM. Suivant le processeur utilisé, celui-ci peut posséder une unité de calcul en virgule flottante. Nous aurons donc à installer une chaîne de cross-compilation qui supporte ou pas l’unité de calcul en virgule flottante. Sur Debian, le projet emdebian propose des cross-compilateurs pour les architectures précédemment cités.
Imprimer cet article Imprimer cet article
Continuer la lecture

Installation et utilisation de QTExtSerialPort sous Debian/GNU Linux 6.0

Pour un projet industriel, les étudiants doivent utiliser QT4 et dialoguer avec différents appareils par le port série. QT4 ne délivrant pas nativement de classe gérant le port série, il faut se tourner vers des développements extérieurs. Pour l’instant j’en connais deux:

Mon environnement de développement sera une debian Squeeze. QTCreator est installé depuis les paquets standards (en version 1.3.1 basé sur les librairies QT 4.6.3). Continuer la lecture

Utiliser un support RW (CD ou DVD) avec l’écriture par paquet

Dans le cadre d’une formation informatique, nous avons décider d’utiliser des supports RW (CD ou DVD) pour sauvegarder des images disques réalisées avec le logiciel PartImage. Le tutoriel disponible sur le site de la distribution SystemRescueCD n’est pas à jour, aussi voici un tutoriel qui présente l’écriture par paquet avec GNU/Linux Lenny. Vous pouvez cependant appliquer les commandes suivantes avec d’autres distributions.

Continuer la lecture