Nous avons de plus en plus de demandes de clients pour utiliser nos modules sous Linux aarch64. En décembre dernier nous avions du reste expliqué comment recompiler certaines de nos librairies pour fonctionner sur cette plateforme. Cette semaine nous publions un nouveau VirtualHub qui supporte Linux aarch64 (ou arm64), et nous ajoutons le support aarch64 pour les librairies C++, Java, python, PHP et Javascript.
Tout d'abord, quelques mots sur l'architecture Linux aarch64 (aussi appelée arm64). Le 90% de nos clients qui travaillent sous aarch64 utilisent des boards Nvidia Jetson. Nous avons donc décidé d'utiliser un board Jetson Nano pour nos développements et nos tests. Plus particulièrement le Jetson Nano Developer Kit.
le Jetson Nano Developer Kit
Tous les binaires que nous fournissons sont compilés avec GCC sur de l'image officiel JetPack 4.2. Cet image est dérivée de la distribution Ubuntu 18.04 et les binaires devraient donc fonctionner sur n'importe quelle distribution Linux aarch64. Nous avons du reste vérifié qu'ils fonctionnaient sur un Raspberry Pi 3 avec une image aarch64.
la connectique du Jetson Nano Developer Kit est très bien fournie
Le VirtualHub
Désormais le fichier zip du VirtualHub pour Linux contient un sous répertoire aarch64 avec un binaire compilé pour cette plateforme.
Pour utiliser le VirtualHub sous Linux aarch64, il faut simplement télécharger le VirtualHub pour Linux, déziper l'archive et lancer l’exécutable qui se trouve dans le répertoire aarch64.
$ unzip VirtualHub.linux.35708.zip Archive: VirtualHub.linux.35708.zip inflating: mips/VirtualHub inflating: LISEZMOI.txt inflating: README.txt inflating: armel/VirtualHub inflating: RELEASE.txt inflating: FILES.txt inflating: aarch64/VirtualHub inflating: startup_script/yVirtualHub inflating: startup_script/yvirtualhub.service inflating: startup_script/yvirtualhub.openwrt inflating: udev_conf/51-yoctopuce_all.rules inflating: udev_conf/51-yoctopuce_group.rules inflating: 32bits/VirtualHub inflating: 64bits/VirtualHub inflating: armhf/VirtualHub inflating: mipsel/VirtualHub $ sudo ./aarch64/VirtualHub [2019-06-07 06:21:12] (01) Yoctopuce VirtualHub 1.10.35708 (dated Jun 6 2019) [2019-06-07 06:21:12] (01) Serial is VIRTHUB0-1d41c853af [2019-06-07 06:21:12] (01) NetworkName is ubuntu [2019-06-07 06:21:12] (01) LogicalName is not set [2019-06-07 06:21:12] (01) HTTP server is listening port 4444 ...
Il fonctionne comme sur n'importe quelle autre Linux. Par défaut, il a besoin des droits du super-utilisateur (root) pour pouvoir accéder aux ports USB, mais comme c'est expliqué dans le tutoriel "Comment débuter sous Linux avec des modules Yoctopuce", il est possible d'ajouter une règle udev pour contourner cette limitation.
Il est aussi possible d'installer un script de démarrage pour que le VirtualHub se lance automatiquement lors du boot. Cette procédure est documentée dans le fichier LISEZMOI.txt qui se trouve dans l'archive du VirtualHub.
Les librairies Java et python
Les librairies Java et python supportent désormais directement Linux aarch64. Il n'est plus nécessaire de recompiler la librairie C++ pour obtenir la librairie libyapi-aarch64.so. Cette dernière est déjà inclue dans le fichier zip.
Les librairies PHP, Javascript
Grâce au au nouveau VirtualHub il est désormais possible d'utiliser le ports USB sous Linux aarch64 pour les librairie PHP, Javascript et EcmaScript 2017.
La librairie C++
La librairie C++ supportait déjà Linux aarch64, nous n'avons donc rien changé. Comme pour les autres OS, la librairie C++ ne contient pas d'exemple précompilés. Si vous désirez compiler tout les binaires pour aarch64 il suffit d’exécuter le shell script build.sh à la racine de la librairie.
$ ./build.sh
La librairie ligne de commande
Tout comme la librairie C++, cette librairie supportait déjà Linux aarch64, mais contrairement aux autres OS, l'archive ne contient pas de version précompilés des différents utilitaires. Nous avons pris cette décision car l'archive est déjà très grosse et que nous prévoyons de changer le moyen de distribuer la librairie.
Si vous voulez utilisez cette librairie, il faut exécuter la commande suivante à la racine de la librairie pour compiler tous les exécutables:
$ ./build.sh aarch64
.NET Core et C#
Mise à jour: La librairie C# supporte désormais Linux aarch64. Vous pouvez lire notre article sur le sujet.
Il n'est pour l'instant pas possible d'utiliser notre librairie C# sous Linux aarch64. Nous attendons la sortie de la version 3.0 de .NET Core qui devrait apporter le support pour Linux aarch64, pour adapter notre librairie. Heureusement, la release est prévue pour la fin de l'été.