Linux Embedded

Le blog des technologies libres et embarquées

HowTo

Découverte de l’OS Zephyr

Introduction Zephyr est un projet open source visant à créer un OS indépendant ouvert conçu pour l’IoT. Il évolue donc dans le même monde que Contiki, MynewtOS, RIOT OS et nombreuses autres solutions. Le marché de l’IoT étant en plein essor, les développeurs d’applications ont besoin d’un système sur lequel baser leurs solutions innovantes. Ces systèmes doivent répondre aux contraintes…

Xvisor – première mise en œuvre

Introduction Xvisor est un hyperviseur open source en licence GPLv2. Cet hyperviseur est de type-1 ou natif, c’est-à-dire qu’il s’exécute directement sur la cible sans couche d’abstraction intermédiaire. Il existe un autre type d’hyperviseur, de type-2, qui s’exécute au-dessus d’un système d’exploitation. Xvisor est développé depuis 2014, et est porté principalement sur des cibles ARM (v5, v6, v7a v7a-ve v8a),…

Introduction à Ofono

Présentation Ofono, une pile téléphonique pour systèmes Linux Ofono est une pile téléphonique développée par Intel dont le développement est aujourd’hui assuré par la communauté. Ofono est distribué sous une licence GPL-2.0+ et est écrit en langage C. Une pile téléphonique est un framework permettant de faire abstraction du matériel (le modem en lui-même) et du protocole de communication entre…

Créer un compositeur avec QtWayland en QML

Considérons un système relié à un écran d’affichage sur lequel plusieurs applications graphiques sont présentes : lorsqu’une application est lancée, une fenêtre contenant l’interface graphique de l’application s’affiche à l’écran. Avec Wayland, ce fonctionnement est assuré par un logiciel compositeur. Cet article aura pour but de décrypter les étapes à effectuer pour développer un compositeur QtWayland en QML. Le module…

Environnement open source pour les objets connectés

Dans cet article nous allons explorer quelques solutions open source afin de mettre en place un réseau pour objets connectés. En voici un exemple simple : la mise en place d’une boîte à meuh connectée. Notre objet connecté aura pour rôle d’envoyer une requête au cloud à chaque fois qu’il détecte un changement d’orientation grâce à son accéléromètre. Cette requête déclenchera…

GPIO sur AOSP

Introduction Nous avons déjà évoqué l’architecture d’AOSP et les modifications possibles lors de précédents articles. Android présente de nombreux avantages, à commencer par la relative facilité de développer une application en Java. Un inconvénient d’AOSP est qu’il ne supporte pas les interfaces tels que I2C, GPIO, SPI. Nous allons voir dans cet article comment il est possible d’utiliser un port GPIO sous Android.

Créer un slider circulaire en QML

Introduction Le QML offre de nombreuses possibilités dans le domaine de l’interface utilisateur. Les éléments de base (Item, Rectangle, Text, etc) couplés au C++ et au javascript sont de formidables outils de création. Ils permettent aussi d’avoir un code clair et efficace en utilisant le principe de Model/View (http://doc.qt.io/qt-5/qtquick-modelviewsdata-modelview.html). Ce qui nous intéresse dans notre cas c’est de réaliser un…

Yocto : comprendre BitBake

La documentation de Yocto est abondante. De nombreux tutoriaux vous expliqueront comment construire une image, écrire une recette ou ajouter le support d’une nouvelle carte. Cette documentation couvre la plupart des aspects de Yocto et fournit des méthodes pour résoudre la plupart des problèmes, mais très peu de documents tentent de répondre à cette question : “Yocto, comment ça marche?”.…

Introduction aux FPGA

Le FPGA (Field Programmable Gate Array) est désormais très utilisé dans les solutions embarquées. L’approche dite “co-design”  permet, entre autres, de limiter la charge du calculateur. Elle permet également d’avoir une solution adaptable car programmable suivant l’application, tant du côté du CPU (grâce au système d’exploitation) que du FPGA. Certains fabricants fournissent désormais des cartes intégrant directement un FPGA ;…

Comprendre dbus

Au fur et à mesure des articles de ce blog, nous remontons les couches de l’infrastructure d’un système linux récent. Après avoir abordé la partie init de systemd puis avoir étudié comment les événements noyau créent des entrées dans /dev grâce à udev, il est temps de s’intéresser à l’étage suivant : la communication entre les processus via dbus.