Séminaire gratuit sur Android le 29 janvier à Gardanne

Android robotLe programme Captronic organise un séminaire gratuit sur Android et son utilisation dans les systèmes embarqués. Celui-ci se tiendra le 29 janvier à Gardanne, près de Marseille, et sera présenté par mon collègue Maxime Ripard, qui est le créateur de notre formation sur le développement système avec Android.

Matinée

  • Présentation générale d’Android
  • Opportunités d’utiliser Android dans des systèmes embarqués qui ne sont ni des téléphones ni des tablettes
  • Détails sur l’architecture d’Android et sa personnalisation
  • Code source et compilation
  • Modifications apportées par Android au noyau Linux
  • Chargeurs de démarrage pour Android
  • Prise en charge d’un nouveau matériel
  • L’organisation du système de fichiers d’Android
  • Les couches natives d’Android et l’appel d’un programme C depuis Android pour l’accès à un matériel spécifique
  • Introduction au développement d’applications
  • Personnalisation du système
  • Utilisation d’adb (Android Debug Bridge) pour la mise au point et le contrôle à distance du système.
  • Ressources et bonnes pratiques

Après-midi

  • Démonstrations de plusieurs aspects du développement de systèmes avec Android
    • Récupération des sources et compilation
    • Démonstration de l’émulateur d’Android
    • Démarrage d’Android sur une carte électronique à base de processeur ARM OMAP 3530, en utilisant une console série.
    • Prise en compte de boutons spécifiques. Exemple de la touche « Back ».
    • Utilisation d’adb : installation, accès au logs du système, accès à une ligne de commande sur l’équipement, échange de fichiers avec le PC.
    • Personnalisation du système : changer le nom du produit, le fond d’écran par défaut, rajouter une nouvelle propriété.
    • Pour l’accès à un matériel spécifique (un périphérique USB par exemple), développement d’une bibliothèque native et accès à cette fonctionnalité depuis le framework Android via une classe et une bibliothèque JNI spécifiques.
    • Présentation d’une application permettant de contrôler un périphérique USB.
  • Questions et réponses

L’inscription est gratuite mais une inscription préalable est requise. Voir la page de Captronic sur ce séminaire.

Par ailleurs, les transparents de ce séminaire sont disponibles dans leur intégralité. Cela vous permettra de vous assurer que le séminaire correspondra à vos attentes.

Brevets logiciels : lettre aux députés européens

La menace des brevets logiciels est de retour, à travers le projet de « Brevet Unitaire » qui est actuellement à l’étude à la Commission Juridique du Parlement Européen. En quelques mots, il s’agit de confier à l’Office Européen des Brevets (OEB) le soin de définir ce qui est brevetable et ce qui ne l’est pas. Or l’OEB est bien connu pour être favorable aux brevets logiciels, et échappe également à tout contrôle démocratique.

Vous trouverez plus d’informations sur le site Stop Software Patents.

Après les dernières batailles sur les brevets logiciels en 2005, il était temps de reprendre ma plume pour essayer de sensibiliser nos représentants aux dangers que représentent les brevets logiciels. La lettre ci-dessous a été envoyée la semaine dernière à chacun des membres de la commission juridique, en version anglaise ou en version française.

Il ne s’agit pas d’une étude juridique approfondie sur les brevets logiciels, car je ne suis qu’un ingénieur, ne disposant pas de connaissances juridiques avancées. Il s’agit plutôt du témoignage de mes inquiétudes par rapport à ces brevets, inquiétudes légitimées par les nombreuses dérives observées de par le monde depuis de longues années, et par les multiples pressions que nos législateurs ont subies pour légaliser les brevets logiciels en Europe.

Il n’est peut-être pas trop tard pour écrire à vos représentants aux parlement Européen, mais en tout cas, il n’est pas trop tard pour signer la pétition que de nombreuses entreprises et de nombreux particuliers ont signée.

Madame, Monsieur le député européen,

Je suis le créateur et dirigeant de Bootlin, une jeune société d’ingénierie en informatique embarquée, qui accompagne des entreprises du monde entier dans la conception de systèmes embarqués, sur un marché à forte croissance.

C’est la disponibilité d’un grand nombre de briques logicielles Open-Source qui a permis à notre société de connaître une croissance continue depuis sa création en 2004. De très nombreux produits industriels et d’électronique grand public sont conçus à partir de ces briques, développées en commun par une communauté de développeurs dans le monde entier, à laquelle notre entreprise participe.

Or, cette dynamique aurait pu être atténuée si les brevets logiciels avaient été légaux dans l’UE, comme ils le sont aux États-Unis et au Japon. Par leur nombre et souvent leur trivialité, ces brevets constituent un véritable « champ de mines » pour tout créateur de logiciels et de système embarquant du logiciel. Pour une société aux moyens limités, il est en effet impossible de s’assurer que les idées que l’on met en pratique en programmant, ou les composants logiciels qu’on réutilise, ne «posent pas le pied» sur méthode brevetée par un tiers. Le créateur d’un produit innovant à base de matériel et de logiciel court alors le risque de voir son investissement ruiné par un concurrent plus gros auquel son invention ferait de l’ombre. Ce concurrent, s’il possède un jeu de brevets suffisamment fourni, pourra toujours trouver un brevet logiciel trivial enfreint par le produit concurrent, et faire arrêter la diffusion du produit. Un autre danger vient aussi de sociétés (« Patent trolls ») qui ne créent aucun produit et ne vivent que par la recherche de victimes qui enfreignent des brevets dans leurs produits.

Il est ainsi inquiétant de constater qu’au moins dans le domaine du logiciel, les brevets sont détournés de leur vocation première de favoriser l’innovation. C’est tout le contraire qui se produit, et il semble que les brevets ne sont aujourd’hui plus qu’un instrument pour des sociétés géantes pour lutter contre leurs concurrents, gros comme petits, et s’opposer à la distribution de produits concurrents. Les premiers brevets accordaient un monopole provisoire en échange de la révélation d’un secret de fabrication. Pour de nombreux brevets logiciels, comme le fameux « double clic » breveté par Microsoft, il n’y a plus de secret de fabrication à révéler, tant leurs effets sont faciles à reproduire. Pourtant, on continue d’accorder un monopole pour ces brevets.

Notre entreprise est donc inquiète des projets en cours pour installer un brevet unitaire dans l’UE, accompagné d’une cour unifiée des brevets.

Nous sommes préoccupés du fait que le règlement sur le brevet unitaire, selon l’accord obtenu en décembre 2011 par les négociateurs du Conseil, de la Commission et de la commission des affaires juridiques du Parlement européen, abandonne toute question à propos des limites de la brevetabilité à la jurisprudence de l’Office Européen des Brevets (OEB), sans contrôle démocratique, ni recours devant un tribunal indépendant.

Pourtant, au mépris du rejet que le Parlement européen a exprimé dans ses votes du 24 septembre 2003 et du 6 juillet 2005, l’OEB a continué à délivrer des brevets logiciels, sous l’appellation trompeuse d’« inventions mises en œuvre par ordinateur ». C’est peut-être parce que l’OEB, échappant à tout contrôle démocratique, a un intérêt financier à délivrer un maximum de brevets, et ainsi alimenter une augmentation des litiges, qui profite aux cabinets d’avocats mais décourage l’innovation, qui pourtant est le principal moteur de notre économie.

Le règlement sur le brevet unitaire est une opportunité pour les législateurs de l’UE d’harmoniser le droit matériel des brevets dans le cadre institutionnel et juridique de l’UE, et de mettre fin aux pratiques intéressées de l’OEB qui étendent le domaine de la brevetabilité aux logiciels. Si cela échoue, le brevet unitaire sera plus préjudiciable que bénéfique pour les entreprises informatiques européennes.

Pour ces raisons, nous incitons vivement les législateurs à adopter des amendements qui énoncent clairement que les décisions de l’OEB sont sujettes à un recours devant la Cour de justice de l’Union européenne et réaffirment le rejet des brevets logiciels exprimé par les votes du Parlement Européen.

N’hésitez pas à me contacter si vous le souhaitez.

Bien cordialement,

Michael Opdenacker

Actus trimestrielles: avril 2012

Ceci est le deuxième exemplaire du bulletin d’informations de Bootlin en 2012. Nous avons le plaisir de partager avec vous des nouvelles de nos projets, de nos formations et de nos contributions.

Nouvelle formation « Android : développement système

Comme annoncé dans l’édition précédente de ce bulletin, nous avons créé une nouvelle formation sur le développement de systèmes avec Android.

Cette formation est conçue pour les ingénieurs qui souhaitent développer un système embarqué à base d’Android. En quatre jours, au travers de cours théoriques et de travaux pratiques, elle vous familiarise avec la compilation et le démarrage d’Android, avec l’adaptation d’Android à une nouvelle carte embarquée (en supposant que celle-ci soit déjà supportée par le noyau Linux), et enfin avec la construction d’un vrai système via l’accès à un matériel spécifique, la personnalisation du système de fichiers et les techniques de débug.

La première session inter-entreprises sur ce sujet se tiendra du 11 au 14 juin 2012 à Toulouse (la session sera présentée en anglais, mais le formateur sera francophone, pour des échanges en français pendant les travaux pratiques). Il reste encore des places disponibles pour cette session.

Nous commencerons à donner des sessions sur site à partir de juillet 2012. N’hésitez pas à nous contacter si vous souhaitez organiser une session dans vos locaux.

Ouverture du code source de nos supports de formation

Depuis la création de Bootlin en 2004, nous avons toujours publié nos supports de formation sous licence libre (actuellement la licence Creative Commons Attribution Share-Alike), de telle sorte que chacun puisse partager, améliorer et bien sûr utiliser nos supports de formation sur Linux embarqué et sur le noyau Linux. Depuis ce temps, les supports de formation étaient disponibles au format PDF, et au format OpenDocument pour le code source, mais nous ne mettions à jour les versions en ligne que de temps à autre.

Nous avons maintenant le plaisir de vous annoncer que nos supports de formation sont en cours de conversion vers le langage LaTeX, et que leur dernière version est disponible à tout instant sur notre dépôt Git public.

Pour le moment, nous avons déjà publié sur ce dépôt nos transparents sur Linux embarqué (500 pages environ), ainsi que les instructions pour les travaux pratiques de nos sessions sur Linux embarqué et sur le noyau Linux. Dans un futur proche, nous publierons également la version LaTeX des transparents de notre formation sur le noyau Linux (qui est déjà disponible aux formats PDF et OpenDocument), ainsi que les supports de notre nouvelle formation sur le développement système avec Android.

La création de ce dépôt public Git est un signe fort de notre engagement pour des supports de formation ouverts.

Le format LaTeX et le dépôt Git public permettent maintenant à tout un chacun de suivre les évolutions de nos supports, pour se tenir informé, ou même pour donner une formation en utilisant nos supports (l’utilisation commerciale de ceux-ci est la bienvenue, car elle permet de diffuser la connaissance des logiciels libres pour l’embarqué).

Prochaines sessions inter-entreprises

Voici nos prochaines sessions de formation :

  • Noyau Linux et développement de pilotes de périphériques
    4 au 8 juin 2012
    Toulouse
    Session en français
    (Plus de places disponibles)
    Détails
  • Développement système avec Android
    11 au 14 juin 2012
    Toulouse
    Session en anglais
  • Développement de systèmes Linux embarqué
    18 au 22 juin 2012
    Avignon
    Session en français
    Détails
  • Noyau Linux et développement de pilotes de périphériques
    2 au 6 juillet 2012
    Avignon
    Session en français
    Détails
  • Noyau Linux et développement de pilotes de périphériques
    8 au 12 octobre 2012
    Avignon
    Session en anglais
    Détails
  • Développement de systèmes Linux embarqué
    15 au 19 octobre 2012
    Toulouse
    Session en français
    Détails
  • Développement de systèmes Linux embarqué
    3 au 7 décembre 2012
    Avignon
    Session en anglais
    Détails
  • Développement de systèmes Linux embarqué
    4 au 8 février 2013
    Lyon
    Session en français
    Détails

Projets

Depuis le début de l’année, nous avons été impliqués dans les projets suivants :

  • Optimisation du temps de démarrage et de la consommation électrique pour un terminal de paiement sur plateforme MIPS;
  • Optimisation du système de fichiers et intégration d’un système de compilation automatique, développement d’un pilote PHY Ethernet pour plateforme de traitement de vidéo satellite à base d’ARM AT91;
  • Intégration d’un système de compilation automatique, mise au point et support d’une plateforme AT91 ARM utilisée comme passerelle entre équipements médicaux;
  • A partir d’avril, nous travaillerons avec un des principaux fournisseurs de processeurs ARM, pour les aider à intégrer le support de leurs processeurs dans les sources officielles du noyau Linux;
  • Poursuite du développement des supports pour notre nouvelle formation « Android : développement système »;
  • Poursuite de notre travail sur le pilote pour les convertisseurs analogique – numérique des processeurs AT91 ARM (voir le paragraphe « Contributions » plus bas);
  • Poursuite de nos bancs d’essai de Linux temps-réel sur les CPUs AT91 ARM (voir le paragraphe « Contributions » plus bas);

Offres d’emploi

Bootlin est à la recherche d’un développeur noyau en région niçoise, pour un recrutement en CDI. Plus de détails.

Conférences et contributions

Embedded Linux Conference et Android Builders Summit

Trois ingénieurs de Bootlin ont participé à l’Embedded Linux Conference 2012 et à l’Android Builders Summit 2012 à Redwood Shores, près de San Francisco en Californie en février. Cette forte participation de nos ingénieurs aux conférences techniques est un facteur clé pour rester à jour des technologies dans le domaine de Linux embarqué et pour garder le contact avec la communauté de développeurs.

Durant la conférence, nous avons publié des rapports journaliers sur les présentations que nous avons trouvé intéressantes :

A l’issue de la conférence, nous avons aussi publié des vidéos des présentations :

Notre script pour encoder les vidéos au format libre de droits VP8 et ajouter une séquence d’introduction aux vidéos est maintenant disponible sur notre serveur Git public.

A cette conférence, notre ingénieur Thomas Petazzoni a donné une présentation intitulée « Buildroot, a nice, simple and efficient embedded Linux build system ». En voici
les transparents et la vidéo.

FOSDEM

Deux de nos ingénieurs ont participé à la conférence FOSDEM, une conférence de la communauté des développeurs de logiciels libres, en début février.

Notre ingénieur Maxime Ripard a donné une présentation sur ses travaux sur le sous-système IIO du noyau, qu’il a utilisé pour écrire un pilote ADC pour les processeurs AT91. Voici les transparents.

Notre ingénieur Thomas Petazzoni a donné une présentation intitulée « Utilisation de Qt pour applications non graphiques ». Voici les transparents.

Convertisseurs analogique – numériques pour AT91

Des détails sur le pilote pour les convertisseurs analogique – numérique des processeurs AT91 ont été publiés sur le wiki d’Atmel Linux4Sam. Ce pilote s’appuie sur l’infrastructure IIO, et nous sommes en train de faire inclure ce driver dans les sources officielles de Linux. Voir la page sur le wiki d’Atmel.

Tests de performance sur Linux temps-réel

Un rapport sur des bancs d’essai très complets conduits par Grégory Clément de Bootlin sur les plateformes AT91 a été publié sur le wiki Linux4Sam d’Atmel. Ce rapport compare un noyau Linux standard, les patches PREEMPT-RT et l’approche Xenomai à base de co-noyau, à travers des mesures de performance sur des timers et des GPIOs. Voir la page sur le wiki d’Atmel.

Buildroot

L’implication de Bootlin dans le projet Buildroot est toujours importante :

  • Maxime Ripard et Thomas Petazzoni ont participé au Buildroot Developer Day organisé à Bruxelles avant la conférence FOSDEM. Un rapport de cette rencontre, qui a réunit d’autres développeurs de Buildroot, est disponible dans les archives de la liste de discussion de Buildroot.
  • Depuis le début de l’année, Thomas Petazzoni a partagé 64 patches qui ont été inclus : prise en charge de la solution de traçage de Linux LTT-ng, prise en charge des outils de développement dans l’interface menuconfig, de nombreuses mises à jour pour le support des chaînes de compilation externes, et de nombreux autres correctifs.
  • Pendant la même période, Maxime Ripard a partagé 13 patches qui ont été inclus : prise en charge de systemd, améliorations de l’infrastructure de paquetages, et d’autres correctifs.
  • Thomas Petazzoni a implémenté une interface Web qui expose les résultats de nos tests avec des configurations aléatoires, disponibles sur http://autobuild.buildroot.org. Ces tests sont tournés 7 jours sur 7, 24 heures sur 24 sur trois machines, avec des configurations diverses. Cette interface Web récupère les résultats des tests et envoie un résumé tous les jours à la liste de diffusion de Buildroot. Cela a déjà permis de corriger de nombreux problèmes de compilation, and va permettre d’améliorer la qualité de Buildroot dans le futur.

Formation sur le noyau Linux

Les participants à notre session sur le noyau Linux et le développement de pilotes de périphériques, ont commencé à contribuer aux sources du noyau Linux pendant la session elle-même. Voici les patches qui ont été acceptés jusqu’à présent :

Dans nos travaux pratiques sur Git, au lieu de demander aux participants de faire des modifications « bidon » aux sources de Linux, nous leur demandons d’implémenter de vraies améliorations et de les envoyer aux bons mainteneurs et listes de discussion. De cette façon, nos clients acquièrent une meilleure compréhension de comment ils peuvent interagir avec les développeurs du noyau Linux, pour faire accepter leurs modifications et leurs contributions.

Voir les parties qui couvrent Git dans nos transparents sur le noyau et dans nos travaux pratiques.

Blog

Bootlin a publié plusieurs billets sur son blog en anglais. C’est là que nous publions nos ressources techniques, pour rendre celles-ci disponibles au plus grand nombre :

Nous avons également publié des informations en français:

Vous pouvez suivre les actualités de Bootlin en lisant nos blogs en anglais et en français, ainsi qu’en suivant nos
nouvelles brèves sur Twitter.

A ce propos, la colonne de droite sur le blog de Bootlin détaille les billets et les pages les plus visitées. Cela peut vous aider à découvrir des ressources techniques utiles que vous pourriez avoir manqué.

Bootlin reste à votre disposition pour vous accompagner dans vos projets sur Linux embarqué, aussi bien à travers ses services de développement et d’assistance technique, qu’à travers ses sessions de formation. N’hésitez pas à nous contacter!

Grégory, Maria, Maxime, Michael et Thomas – Bootlin

Poste d’ingénieur noyau Linux en région niçoise

Penguin worksBootlin recherche un ingénieur noyau Linux dans la région niçoise. Lee contrat sera en télétravail, mais demandera aussi de travailler sur des sites de clients dans la même région, et ceci sur de longues durées.

Voir une description détaillée du poste sur notre page carrières.

Pour cette ouverture de poste précise, nous avons absolument besoin d’une personne ayant déjà une expérience en développement sur le noyau Linux, et des contributions aux sources officielles de Linux constitueront un atout important. La raison est qu’un de nos clients recherche un ingénieur pour développer de nouveaux drivers et pour porter Linux sur des plateformes pré ou post silicium. Connaissant bien le client, l’intégration aux sources officielles du noyau Linux sera une priorité.

Une fois que nous aurons retenu un candidat avec le profil et les compétences que nous recherchons, et une fois que le client accepte de prendre cette personne pour une première mission, l’ingénieur sera recruté par Bootlin en CDI, et travaillera dans les locaux du client pendant au moins 6 mois.

Une fois que cette première mission sera terminée, notre ingénieur se verra confier des projets pour d’autres clients de Bootlin, et donnera aussi des formation sur Linux embarqué et sur le développement noyau dans le monde entier. Un bon niveau d’anglais oral et écrit sera donc nécessaire.

Si vous êtes intéressé, veuillez vous référer à notre page carrières pour la description du poste et pour savoir comment vous porter candidat.

Un petit tour avec Yocto

J’ai eu récemment l’occasion de mettre en œuvre Yocto. J’avais déjà pas mal pratiqué OpenEmbedded auparavant. On peut voir Yocto comme un projet dérivé d’OpenEmbedded même si c’est un peu plus que cela.

En effet Yocto c’est Poky (un système de build qui s’appuie sur OpenEmbedded), quelques outils de build recréés pour l’occasion (swabber, pseudo, etc..) ainsi qu’un ensemble de méta données permettant de créer des distributions embarquées pour un certain nombre de cibles.

La force mais aussi la faiblesse d’OpenEmbedded c’est que c’est un système de build qui peut tout faire: des images finales de rootfs, mais aussi une distribution complète avec son dépôt de paquets prêt à l’emploi, et cela sur plusieurs plateformes matérielles. Cela en fait un système complexe à mettre en œuvre et à prendre en main. Il y a encore 2 ans, la documentation d’OpenEmbedded participait à cette difficulté de prise en main. En effet OpenEmbedded fournissait bien une documentation mais qui ne prenait vraiment tout son sens seulement une fois que l’on avait commencé à maîtriser le sujet. Ce qui est assez paradoxal pour une documentation. Il manquait les éléments qui permettent aux développeurs de rentrer dans ce système de build.

Avec Yocto j’ai pu constater qu’il y a eu un réel progrès de ce côté
là. Le projet vient avec une documentation beaucoup plus complète et surtout beaucoup plus accessible. La prise en main n’est tout de même pas immédiate mais cette fois cela est plutôt dû à la complexité et à la richesse de l’outil.

En quelques heures je suis quand même parvenu à développer un BSP (Board Support Package) minimaliste pour une carte donnée (en l’occurrence une AT91SAM9G20-EK). Le concept de layer permet d’avoir une couche de configuration spécifique pour un matériel donné. On peut en fait même supporter plusieurs matériels différents et on peut aussi ajouter des paquets spécifiques. En fait un layer n’est rien de plus qu’un ensemble de paquets et de configurations ou de surcharges de configurations. Le BSP n’est qu’un layer spécifique à un matériel (ou à un ensemble de matériel). Comme on le voit même pour le support d’une simple carte électronique, il y a déjà beaucoup de concepts qui entrent en jeu. Il y a aussi déjà de nombreuses façon de faire qui arriveront à la même fin mais qui seront plus ou moins faciles à maintenir. Le concept de BSP se rapproche surtout d’un « guideline » pour permettre à la « communauté Yocto » d’avoir un référentiel commun. Je tâcherai d’illustrer la mise en œuvre d’un BSP sur la carte AT91SAMG20-EK dans mes prochains articles ici même et/ou sur ma page Google+.

Une autre avancée notable de Yocto est son optimisation pour le temps de la première compilation d’une cible « minimale », je suis passé de plus de 3 heures à une légèrement plus d’heure maintenant. Cela reste quand même très long notamment pour une cible qui se veut minimale.

Pour faire une image d’un système avec quelques composants seulement, Buildroot reste largement plus approprié. Pour des systèmes requérant un grand nombre de composants, alors il vient souvent le besoin de fonctions plus avancées comme la gestion d’un dépôt de paquet ou la prise en charge de plusieurs plateformes matérielles par exemple. Dans ce cas-là, Yocto reste la meilleure (la seule?) option d’autant plus que ce projet tend à améliorer les points faibles historiquse d’OpenEmbedded.