In this issue:
Gigabyte announces Cavium ThunderX2 support; Alpine Linux 3.6.0, 3.6.1; New Docker container directory for “arm64v8”; OpenSUSE on ARM hardware; Ard Biesheuvel’s “Works of ARD” weblog and “Project dogfood”; and pigz, a fast parallel version of gzip.
TAIPEI, Taiwan, May 29 2017 – GIGABYTE Technology, a leading producer of high performance server hardware, and Cavium, Inc. (NASDAQ: CAVM), a leading provider of semiconductor products that enable intelligent processing for enterprise, data center, cloud, wired and wireless networking – today announced availability of high performance ARM server platforms based on Cavium’s second generation 64-bit Armv8 ThunderX2 product family.
Alpine Linux announced a new release, Alpine Linux 3.6.0, the first in the 3.6 stable series. This release continues ARM support, and adds support for IBM z and Power processors.
There has been a significant refresh for a number of development packages, including Rust 1.17.0, Cargo 0.18.0, PHP 7.1, LLVM 4.0, Go 1.8, Python 3.6, nginx 1.12 and Ruby 2.4. The kernel provided is the LTS Linux 4.9.29 kernel.
This release was followed on June 1, 2017 with a bug fix release, Alpine Linux 3.6.1, which contains bug fixes including security updates for libtasn1, samba, libxcmcp, strongswan, openldap, and mosquitto. Kernel support is now 4.9.30.
Alpine is a frequent choice for Docker projects because of its compact packaging which results in remarkably small Docker images. As of this writing, the new Alpine release has not yet been picked up by Docker for their popular aarch64/alpine container. This is because Docker reorganized their container support on DockerHub to use new names, making the it now arm64v8/alpine.
The new naming scheme is unique to Docker, and allows them to distinguish between the various 32-bit ARM variants that have distinctly different container support, e.g. ‘arm32v6’ for the original Raspberry Pi and the Pi Zero.
Andreas Färber has an hour-long presentation on OpenSUSE on ARM hardware, in which he details the state of OpenSUSE on a whole series of ARM development boards. The talk was presented at the openSUSE Conference 2017 and published on May 27, 2017. Andreas notes that this is “not a hardware selection guide”, and recommends that if you want ARM hardware recommendations that you consult the opensuse-arm mailing list instead.
Andreas’s hard work and others have resulted in OpenSUSE for a number of systems, with more in progress, tracked on their development wiki. Among those systems where OpenSUSE has some good results include the DragonBoard 410c, Firefly-RK3399 (in progress), Odroid C2, Pine64, and Raspberry Pi 3.
OpenSUSE also supports a standard UEFI boot process, and the provided instructions would enable you to PXE boot the system.
Ard Biesheuvel is a developer for Linaro, working on the ARM open source ecosystem. He writes in March 2017 about Project dogfood: my arm64 desktop, an effort to bring a full 64-bit ARM environment to the desktop using an AMD Overdrive B1 development board in an ATX form factor.
So what would I need to turn this into a desktop system that is good enough for my day to day work?
Among the things he had to sort out to make this possible included getting a quieter fan, identifying a good case and power supply, USB and graphics support, and a number of kernel and firmware issues.
The most challenging issue identified, and the one with the most creative solution, involved finding firmware support for boards whose drivers are written only in x86 code. The workaround reads as follows:
So when Alexander Graf (of Suse) approached me at Linaro Connect two weeks ago, to discuss the possibilities of running x86 option ROMs on an emulator inside UEFI, I was skeptical at first, but after some more thought and discussion, I decided it was worth a try. Over the past ten days, we have collaborated online, and managed to implement an X86 emulator inside UEFI, based on an old version of QEMU (which is still LGPL licensed) combined with the more recent AArch64 support (whose copyright is owned by HiSilicon)
The successful result is documented in a video, gui boot on overdrive b1.
pigz is a “parallel implementation of gzip for modern multi-processor, multi-core machines”. By breaking your compression problem into pieces and then doing each piece individually, pigz effectively uses as much of your machine as you will let it to compress data quickly.
A sample will illustrate. On a 123 megabyte file (the source code for PostgreSQL), standard gzip took 18.4 seconds to compress a tar file on the 96-core Type 2A Armv8 machine at Packet. With pigz, the same operation took 0.4 seconds, a 45x speedup on a 96-core machine.
pigz – pronounced “pig-zee” – is credited to Mark Adler, and is is available as a part of the Ubuntu and CentOS distributions. You can also compile it from its provided source code.
Written with vim on a MacBook Air, and examples tested on a 96-core Cavium based ARM server on Packet.
Works on Arm News is released weekly on Fridays. Follow @worksonarm on Twitter for the weekly link, or follow the worksonarm-news project on Github for notifications. Email to [email protected] if you’d like a direct email.
Back and current issues are available from the Works on Arm News archive on Github.