Linux aarch64 support for the VirtualHub and libraries

Linux aarch64 support for the VirtualHub and libraries

More and more customers are starting to use our devices with Linux aarch64. Last December we explained how to recompile some of our libraries to run on this platform. This week we are completing support for this platform by releasing a new VirtualHub that runs on Linux aarch64 (also known as arm64), and we are also adding support for aarch64 in the C++, Java, python, PHP and Javascript libraries.



First of all, some words about the Linux architecture aarch64 (also called arm64): 90% of our clients who works under aarch64 use Nvidia Jetson boards. So we decided to use a Jetson Nano board for our developments and tests. We picked in particular the Jetson Nano Developer Kit .

the Jetson Nano Developer Kit
the Jetson Nano Developer Kit



All binaries we provide are compiled with GCC on the official JetPack 4.2 image. This image is derived from the Ubuntu 18.04 distribution. So the binaries should work on any Linux aarch64 distribution. We have verified that they were run properly on a Raspberry Pi 3 with an aarch64 image as well.

Jetson Nano Developer Kit provides many connectivity options
Jetson Nano Developer Kit provides many connectivity options



The VirtualHub


The archive of the VirtualHub Linux now contains an aarch64 folder, with an executable for this platform.

To use the VirtualHub on Linux aarch64, you just have to download the VirtualHub for Linux, unzip it and run the executable in the aarch64 directory.

$ 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 ...



It works like any other Linux. By default, it needs superuser rights to access USB ports, but as explained in our tutorial "How to begin with Yoctopuce devices on Linux", it is possible to add an udev rule to work around this restriction.

It is also possible to install a startup script for the VirtualHub in order to have the VirtualHub started automatically on boot. This procedure is documented in the README.txt file that is in the VirtualHub archive.

Java and python libraries


The Java and python libraries now support natively Linux aarch64. It is no longer necessary to recompile the C++ library and to copy the libyapi-aarch64.so file, as the latter is already included in the zip file.

PHP, Javascript libraries


Thanks to the new VirtualHub it is now possible to use USB ports under Linux aarch64 for PHP, Javascript and EcmaScript 2017 libraries.

The C++ library


The C++ library already supported Linux aarch64, so we did not change anything. As for other platforms, the C++ library does not contain precompiled examples. If you want to compile all the examples for aarch64 just run the build.sh script shell at the root of the library.

$ ./build.sh



The command line library


Like the C++ library, this library did already support Linux aarch64, so we did not change anything. But unlike other OS, the archive does not contain precompiled executables for the various utilities. We made this decision because the archive is already very big, and because we plan to change the way to distribute this library.

If you want to use this library in Linux aarch64, you have to run the following command at the root of the library to compile all the executables:

$ ./build.sh aarch64



.NET Core and C#


Update: The C# library now supports Linux aarch64. You can read our post on the topic.
It is currently not possible to use our C# library under Linux aarch64. We are awaiting the release of version 3.0 of .NET Core which should provide support for Linux aarch64, to adapt our library. Fortunately, the release is scheduled for the end of summer .

Add a comment No comment yet Back to blog












Yoctopuce, get your stuff connected.