Posted on

Arm Servers Need an Arm Desktop Unit of Computing


We as an industry are finally having an open and honest discussion with ourselves, about why Arm Servers have not been as successful as we had all hoped, and why that is. Not excuses, just an analysis of facts and the consequences they have had.

To set the stage, let’s rewind 4 years. Arm had very high expectations for the Arm Server ecosystem, and made public statements on a regular basis that they intended to capture 20% of the Server market by 2020. We are now 9 months away from that date, and Arm Servers are closer to a 1% novelty still being explored and tested for workload compatibility by users.

In early 2015, the number was 20%, but by January of 2016 the number actually grew to 25%! Here is the opening statement from an article on the Next Platform at the time:

“So 2016 is the year, or at least it is supposed to be. The year when 64-bit ARM chips finally make their way into servers and perhaps start getting wheeled through the loading bays of actual datacenters to start running real workloads alongside the Xeon processors that by and large dominate in the glass house.”

And here are the 2015 claims:

That sentiment and the high hopes continued through the next several years, with Arm Servers always ‘just around the corner’, ‘ready to make a breakthrough’, or ‘poised to take marketshare away from Intel’. AMD entered and left the ARM Server SoC business. Qualcomm entered and left the Arm Server SoC business. Applied Micro was acquired and their Server SoC was abandoned, but fortunately came back via an acquisition of their IP. Either way, time and knowledge were lost.

That brings us to the present day.

Last week, Arm further revealed the E1 and N1 Neoverse processors based on the Ares architecture, which were previously announced last fall at ArmTechCon 2018. Performance numbers and the processor design surely look great, and the product announcement generated plenty of media attention, as has been the norm. The dialogue has shifted, however, as the media has once again seen a new product announcement, but has begun to wonder when these Arm Servers will actually be competetive and ship in any real volumes. This conversation then exploded a few days later, when Linus Torvalds weighed in on the topic, claiming that Arm has already lost, due to the fact that developers and IT teams (for the most part) build and develop on x86 PC’s and workstations, then deploy to the organization’s own servers or the cloud providers. The natural tendency then, is to purchase x86 servers, to match the architecure and eliminate any chance of hardware incompatibility. The x86 PC is, more or less, just a smaller and cheaper version of the exact same server hardware running in the datacenter. Software stacks might vary between local and cloud, but if you can at least minimize differences and just focus on any bugs that may arise due to software variances, that is still better than pushing code up to servers and having to troubleshoot both software AND hardware variances. Thus, the ultimate takeway in Linus’ view, is that until there are cheap, standards-compliant Arm desktop PC’s that developers can use locally, Arm Servers will not stand a chance in the datacenter.

And he is right.

Arm Server enthusiasts have been complaining about this for years, and the product void and differences between the ultra-small and ultra-cheap Arm single board computers (think, Raspberry Pi and similar) and the big, enterprise Arm Servers is too vast. The missing piece in the ecosystem has been a “PC-like” system, that is standards compliant with SBSA and SBBR, and essentially mimics the entire user experience of the x86 PC platforms. This means a normal UEFI boot up and BIOS / GUI that allows user configuration, and a hardware design that allows end users to add whatever hard drives and SSD’s they’d like, choose their brand and size of memory, add in whatever graphics card they prefer, put it all together, and it “just works”. Then, they can install whatever (ARM64) OS they would like, such as RedHat, CentOS, Fedora, Debian, Ubuntu, Suse, etc. Again, it “just works”. The end result is a very “PC-like” experience, and a fully operational Arm desktop computer.

No custom kernels, no board-specific software, no vendor-provided code, no bugs, quirks, hacks, odd shapes and sizes, no fighting with the system, no frustration, and no time spent troublseshooting why the system doesn’t boot or hardware doesn’t work.

Once this is solved, and developers can easily build and test applications and code on an Arm Desktop PC locally, then Arm Servers become a more attractive target to deploy those apps to. Without an Arm Desktop PC, Arm Servers are just a novelty that individuals will continue to test, evaluate, and ultimately discard as not worth the switching costs, as has occured for the past 5 years.

Fortunately, Linus’ timing was excellent, as he spurred this debate just in advance of Linaro Connect, where miniNodes,, and Linaro are delivering a joint session titled “Designing a next generation ARM Developer Platform“.  In this talk, we will be discussing this problem in detail, hopefully spurring ideas, investment, and starting the process of correcting the problem and getting a small “NUC-like” Arm product engineered and built. The event is streamed live and recorded, so, tune in and watch if you can!

Hopefully, this is the tipping point, and industry change occurs as a result!

Posted on

New Product Announcement: miniNodes Arm VPS Cloud Server

This week, we are happy to announce the newest miniNodes Arm Server product, an Arm VPS cloud server built on top of the Amazon AWS platform and A1 instance type, leveraging the Amazon Graviton processor!

The miniNodes Arm VPS server product is for customers who want to begin working with Arm VPS servers, but find the AWS product lineup and user experience a bit overwhelming. The AWS platform at this point includes hundreds of distinct products and services, and the dashboard upon logging in to an AWS account can be challenging for a new user. Certainly, those customers who are extremely well versed in the AWS ecosystem can navigate and interact with the system in an effective manner, but for novice or even moderately skilled user, the native AWS user interface can be difficult to use when deploying and managing servers. Additionally, the default billing methodology on the AWS EC2 platform, is to charge a fixed price for CPU and RAM, and then add a variable utilization cost for storage and bandwidth consumption. This allows to user to only pay for what is used, and makes a lot of sense for many customers. However, there is an additional segment of customers who prefer to simply pay a fixed fee, repeatable every month, that already includes a pre-defined storage and bandwidth allocation. Digital Ocean has excelled in this scenario for many years now with their “Droplets”, that include the CPU, RAM, storage, network bandwidth included, for a set monthly price.

Thus, in an effort to simplify the user experience and entry point in to the Arm Server ecosystem, we have built a product line that includes 5 Arm VPS servers of varying sizes from small to large, with pre-defined values for CPU, RAM, storage, and bandwidth, with fixed pricing, and using our own simplified miniNodes interface. Utilizing an API, we then provision our Arm servers in the Amazon AWS cloud, provide the IP Address and credentials to the customer, and customers can connect to their Arm server within minutes.  For now, we only offer Ubuntu 18.04 LTS, but are working on adding Debian, Fedora, and Red Hat Enterprise Linux for Arm in the near future.

So, we hope this product makes sense for customers who:

  • are looking to get started with hosted Arm Servers and Arm development for the first time,
  • are current Arm VPS users but instead want flat, repeatable billing,
  • prefer a simpler interface than what AWS offers.

Our Arm VPS servers can be purchased here, and of course if you have any questions don’t hesitate to reach out to us!

Posted on

How to Install Ubuntu Arm Server on the Raspberry Pi Compute Module 3

A few weeks ago, the Ubuntu team released a pre-built 64-bit Ubuntu Arm Server Raspberry Pi image that can be downloaded and flashed to an SD Card, that is compatible with both the Raspberry Pi 3B and Raspberry Pi 3B+ single board computers. As we documented in our original article detailing the new Ubuntu build, in the past you needed to build a kernel, create a root filesystem, and then install the necessary firmware and drivers. But now with this new ready-made image, there is no longer a need for any of those difficult and time consuming tasks. While the image was intended to be run on standard Raspberry Pi 3B and 3B+ hardware, with some small modifications it can be installed and run on the Raspberry Pi Compute Module 3 as well.

First and foremost, you will need to start with the new 64-bit Raspberry Pi 3 Ubuntu Arm Server image, which can be downloaded here:

Once downloaded, you will need to unzip / extract the image file from the compressed archive file.

Next, using a Raspberry Pi Compute Module IO Board or Waveshare Compute Module IO Board Plus, you will need to flash the image file to the Compute Module 3’s onboard eMMC. Instructions for that process can be found here:

After the flash process is complete, there should be 2 partitions on the eMMC, ‘boot’ and ‘system’. Mount the ‘boot’ partition of the eMMC so that you can view and edit the files on it.

The first change to be made is to the ‘config.txt’ file. Open it up and change the kernel line, add an initramfs, add an arm_control line, and comment out the device tree address as such:

initramfs initrd.img followkernel

Save and exit.

While the partition is still mounted, you need to add an additional file to the top level directory of the partition as well. In this ‘boot’ partition, you will notice there are .dtb files for the Raspberry Pi 3B. But since we are adapting this Ubuntu image for the Compute Module 3, we need to add the CM3’s .dtb file here as well. A copy of the Compute Module 3’s .dtb can be extracted from a stock Raspbian image, but for convenience a copy can be downloaded from the Raspberry Pi GitHub here:

Simply download it, then copy it to the mounted ‘boot’ partition.

At this point, all necessary changes are complete, and it’s time to boot up and check our work! Unmount the ‘boot’ partition, power down the Compute Module, and then change the IO Board to standard boot mode via it’s jumper setting. Reapply power, and the boot process should begin! The first boot takes a few minutes, as cloud-init runs a series of one-time setup processes to resize the rootFS, setup networking, generate SSH keys, create a container environment, and other tasks. But, after a few minutes you should be able to login to your new 64-bit Ubuntu Arm Server for Raspberry Pi Compute Module with a default username and password of ‘ubuntu’ via SSH or a console!

Posted on

64-bit Ubuntu Raspberry Pi 3 Arm Server Image Now Available

This morning there is some great news for fans of the popular Raspberry Pi 3 single board computer, looking to run 64-bit Ubuntu Arm Server on their board!


The Ubuntu team, with support from Arm, has released a ready-made image that can be written to an SD Card and directly booted on a Raspberry Pi 3B or 3B+, with no configuration necessary.  We were able to give this image a test, and although it is technically considered a beta, it seems most everything is working and all of the standard functionality one would expect from Ubuntu Server intact!


You can download the image here:

How to Install Ubuntu on the Raspberry Pi 3

Once the image is downloaded, it needs to be extracted, and can then be written to an SD Card.  Of course, the higher the read and write speed of the SD Card, the better overall system performance will be.


After getting the image written and inserted in to the Pi, take note that the first boot may take a few minutes while the OS goes through a few setup routines.


A quick run through the system showed the basic console hardware requirements of HDMI, USB, and Ethernet all worked out of the box, as well as WiFi.  SSH is enabled and working, and normal software installation and updating via ‘apt’ package management is working great.  As an added bonus, the image comes with ‘cloud-init’ setup to automatically expand the partition on the SD Card to the maximum capacity of the card, generate SSH keys, configure networking for the LXD container runtime (which is also preinstalled), and finally force a password change upon first login to the system.


All said, this means the Ubuntu Arm Server image is ready to use immediately upon writing the SD Card and booting the Pi!


In the past, it was technically possible to bootstrap a system using a custom built kernel and an Ubuntu rootfs, then add Pi-specific firmware and drivers.  After that you had to add users, manually install networking, and add even basic system utilities.  That process required in-depth knowledge of system installation and configuration, and was not something most users could tackle on their own.  However, thanks to the efforts of the Ubuntu Arm team in creating this new ready-made image, no advanced knowledge of the Linux build process is required, and even casual Raspberry Pi users can be up and running easily!


One final thing to keep in mind, is that this image is fully intended to be a 64-bit Ubuntu Arm Server platform!  Use cases such as File or Print servers, DNS, MySQL or other database servers, web front-end caching, or other lightweight services all make sense for this platform.  It can also be used for installation and testing of Aarch64 software, developing and compiling Arm64 applications, exploring containers, or even production workloads where possible!  Small, distributed compute workloads, IoT services, Industrial Internet of Things, environmental monitoring, remote compute capacity in non-traditional settings, or many other uses cases are all possible.  While a desktop *can* be installed, due to the limited memory on the Raspberry Pi, only a lightweight desktop like LXDE or XFCE will truly work, with both Mate and Gnome quickly running out of memory, moving to Swap, and then slowing the system to a crawl.   Even so, desktop performance in this image is not optimized, so sticking with the intended use of this image as a Server OS makes the most sense.


In summary, thanks to a collaborative effort from Arm and the Ubuntu teams, the community now has a ready-made Raspberry Pi 3B(+) 64-bit Ubuntu Arm Server image!
Posted on

How to Install Ubuntu on an Arm Server

As a follow up to our previous blog post offering advice and options for purchasing an Arm Server, the second most frequent question we receive is regarding how to install Ubuntu on an Arm Server. This of course varies depending on the hardware you have chosen, but typically follows one of two options (with some customization likely to be necessary for Option 2).

The easiest method for installing Ubuntu on Arm is to acquire SBSA compatible hardware. This is typically a more expensive option, but because of a standard UEFI boot processes and hardware description, direct downloads of Debian Aarch64, Fedora Arm, CentOS Aarch64, and Ubuntu Arm Server install in a normal manner. Simply write the downloaded Ubuntu Arm Server image to a USB drive, insert it into the Arm Server, and then boot from that device to start the process. The installation process will then install the operating system to a local hard drive, setup the Grub bootloader, and configure the OS for boot. Typical units in this scenario are Cavium ThunderX or ThunderX2 servers, Qualcomm Centriq 2400 servers, or Softiron Overdrive 1000 or 3000 AMD Opteron A1100 servers. These machines simply install and boot operating systems in a “normal” fashion, similar to x86 counterparts.

A second, cheaper option, is to use a single board computer such as a Raspberry Pi, an Odroid, a NanoPi, a Pine64, or others. In this scenario, the board vendor is usually the one to develop and release the Ubuntu Arm image, though sometimes the Armbian team also provides an image that can be written directly to an SD Card and booted. For example, the Pine64 and many Odroid, FriendlyArm, OrangePi, and BananaPi models have pre-configured 32-bit and 64-bit Ubuntu Arm images available for installation (depending on the exact model). They typically contain a SoC-specific kernel, paired with an Ubuntu Arm rootfs, and need to written to an SD Card and then inserted into the board. Sometimes these boards also contain permanent storage such as eMMC, and the OS can be then be transferred from the SD Card to teh eMMC, depending on the model.

As always, if you have any feedback, let us know in the comments!

Posted on

ArmTechCon Recap

As you may have seen here and here, miniNodes recently got invited to participate at ArmTechCon, inside Arm’s own “Innovation Pavilion” in the Expo Hall.  Because our core business of hosting tiny Arm Servers isn’t that exciting to show off, especially at the biggest Arm ecosystem event of the year, we partnered with Robert Wolff and the awesome team at 96Boards to come up with something a bit more intriguing.   🙂

After some back and forth, we landed on a solar powered, connected, mobile developer and edge computing platform. The idea was to build a self-contained and self-powered box that could be taken out and used in geographically isolated areas, that could still have connectivity back to a central cloud provider. The actual use cases could vary dramatically, but the common theme is that there is a lack of infrastructure, electricity, or wifi in the targeted region. The box would be powered by solar panels for this iteration, but could also accept other renewable sources such as wind, hydroelectric via a waterwheel or impeller, geothermal, or more.

So, as one potential use case, we envisioned using the box in remote villages or locales that don’t have the typical infrastructure needed to teach development, AI, machine learning, edge computing, remote code or container deployment, or other advanced computer science topics.

The end goal is to provide everything as open source, with a Bill of Materials and instructions for anyone to replicate the build, using readily available, off-the-shelf parts with no customization necessary. For the demo unit though, the project hasn’t made it quite that far yet.  For this prototype, the box consisted of a foldable solar panel array, that was hooked up to a charge controller, which then fed a battery pack. The battery pack was run over to an inverter, so that we could power multiple standard devices. The first device to be powered was a 96Boards Dragonboard, that had a small LCD attached for graphical output, and had a 4G LTE cellular mezzanine which provided data to the Dragonboard.  This, as long as there is cell service, the Dragonboard has connectivity to the internet!  At that point, we had effectively built a solar powered, self sustaining compute workstation that could connect to the internet nearly anywhere!

However, because we were just doing a proof of concept, we thought it would be fun to go even one step further!  Next, we setup sharing on the Dragonboard’s cellular connection, and ran an ethernet cable out from the Dragonboard over to a Raspberry Pi 3 Compute Module.  This Pi was running a service from Microsoft called Azure IoT Edge, which is a product that allows you to remotely push containers and code to an IoT device, or receive data and telemetry back from a device out in the wild.  Thus, as long as there is adequate sunlight (or another renewable source of power) and cell coverage, the box can be remotely monitored and even updated from anywhere.  Or, thanks to its LCD and USB keyboard, it can be used as a workstation in places where infrastructure is lacking.

Another potential use case for the platform could be as an environmental monitoring solution. When equipped with a gyroscope, the box could detect movements from events such as a rock slide, avalanche, mud slide, volcanic activity, etc. Any anomoly can be reported back to the central servers immediately for analysis.

When equipped with a camera, the box could also visually monitor the environment, and detect changes in imagery such as a smoke plume for early forest fire detection, wildlife movement, vehicles approaching locations where there should not be any, or more.

Finally, because of the device’s Raspberry Pi Compute Module carrier board, the box has the ability to run targeted workloads of its own, for extreme edge computing. The workloads can be updated, changed, and monitored remotely, again due to the Dragonboard’s cellular connectivity to the Microsoft Azure IoT Edge platform.

ArmTechCon was a big success, and it’s incredible what can be built using Arm technology.  Be sure to check back for status updates as the solar compute box undergoes future development and iterations!

Posted on

Where to Buy an Arm Server

Being Arm enthusiasts and deeply embedded in the Arm Server ecosystem, one of the questions we get asked often is,

“Where can I buy an Arm Server?”

In the past, it was difficult to actually find Arm Server hardware available to individual end-users. Not long ago, the only way to gain access to Arm Servers was to have NDA’s with major OEM’s or having the right connections to get engineering-sample hardware. However, over the course of the past 2 to 3 years, more providers have entered the market and hardware is now readily available to consumers. Here are some of the easiest ways to buy an Arm Server, although this list is not exhaustive. These servers all have great performance, relatively low costs, and are well supported.

First and foremost, the AMD Opteron A1100 may not be a commercial success, but it is a fantastic Arm Server platform that is supported upstream and runs perfect out-of-the-box. The SoftIron OverDrive 1000 comes in a small desktop style case, but the OverDrive 3000 series comes in a 1U chassis ready for rackmount installation. It has a BMC, 10gb ethernet, 14 SATA ports (!), and 2 PCIe slots. A standard UEFI boot process allows for easy installation of CentOS, RedHat, Debian, Ubuntu, SUSE, and any other Linux flavor that has an ARM64 build.

Next up is the Cavium ThunderX, and the newly released ThunderX2. These chips are sold in servers from several vendors, which come in various shapes and sizes. Some of the examples we’ve found include the System76 Starling, the Avantek R-series in both 1U and 2U sizes, and the Gigabyte Arm offering that closely match Avantek’s specs. There are High Density designs, single processor and dual processor options, and 10 GBE as well as SFP options available.

A third option is the Qualcomm Centriq 2400 CPU, with it’s powerful “Falkor” cores and robust networking options. One word of caution is that Qualcomm recently cut staffing in it’s Datacenter division for a second time, and rumors have been swirling that they are looking to exit the business. However, the CPU is featured in servers built by SolarFlare, though there is no mention of price.

The final option is the newly released eMag Arm Server from a company that formed last year, Ampere Computing.  They released details on their Arm Server CPU, which is based on the IP gained from Applied Micro and their X-Gene 3 SoC, just prior to ArmTechCon.  Their platform has 32 Arm cores running at 3.0ghz, 42 lanes of PCIe bandwidth, and 1 TB of memory capacity.  It is now available for purchase from their website.

And of course, if buying physical servers and hosting them yourself, or placing them in a datacenter, is not feasible or cost effective in your situation, then our hosted Arm virtual servers are a great option as well!  Our miniNodes Arm VPS servers are built on the AWS platform, providing a reliable foundation and rapid provisioning, with predefined storage and networking limits and a fixed cost that doesn’t fluctuate month to month.  Be sure to check them out here:

Be sure to check back often for all things Arm Server related!

Posted on

ARM Server Update, Summer 2018

Continuing our quarterly ARM Server update series, it is now Summer 2018 so it is time to review the ARM Server news and ecosystem updates from the past few months!  This blog series only covers the ARM Server highlights, but for more in-depth ARM Server news be sure to check out the Works on Arm Newsletter, delivered every Friday by Ed Vielmetti!

Looking at our recent blog posts, the most important headline seems to be the rumored exit from the business by Qualcomm.  Although, at the moment, this has not been confirmed, if true it would be a major setback for ARM Servers in the datacenter.  The Qualcomm Centriq had been shown to be very effective by CloudFlare for their distributed caching workload, and had been shown by Microsoft to be running a portion of the Azure workload as well.

However, just as Qualcomm is rumored to be exiting, Cavium has released the new ThunderX2 to general availability, and several new designs have now been shown and are listed for sale.  The ThunderX2 processor is a 32-core design that can directly compete with Xeons, and provides all of the platform features that a hyperscaler would expect.

Finally, in software news, Ubuntu has released it’s latest 18.04 Bionic Beaver release, which is an LTS version, thus offering 5 years of support.  As in the past, there is an ARM64 version of Ubuntu, which should technically work on any UEFI standard ARM Server.  Examples include Ampere X-Gene servers, Cavium ThunderX servers, Qualcomm, Huawei, HP Moonshot, and AMD Seattle servers.

As always, make sure to check back for more ARM Server and Datacenter industry news, or follow us on Twitter for daily updates on all things ARM, IoT, single board computers, edge computing, and more!


Posted on

Prototype Raspberry Pi Cluster Board

The first samples of the miniNodes Raspberry Pi Cluster Board have arrived, and testing can now begin!

Thanks to the very gracious Arm Innovator Program, miniNodes was able to design and build this board with the help of Gumstix!  The design includes 5 Raspberry Pi Compute Module slots, an integrated Ethernet Switch, and power delivered to each node via the PCB.  All that is required are the Raspberry Pi 3 CoM’s, and a single power supply to run the whole cluster.

The second revision of the board is now complete (added a power LED, Serial Port header, and individual on/off switches), and pre-orders are underway here:


Posted on

Report: Qualcomm Looking to Exit ARM Server Processor Business

Recently, Bloomberg ran an article claiming that Qualcomm was seeking to close down or find a buyer for it’s ARM Server processor, the Centriq.  While the report has not been publicly confirmed by the company, if true, this would be welcome news to Cavium who just launched their ThunderX2 ARM Server processor.  Ampere could also benefit from this, as they are currently preparing to launch an updated X-Gene ARM Server processor based on the Applied Micro deisgn.

It would be a loss for the ARM Server ecosystem as a whole though, as the Centriq was well received in the press and reviews showed that the chip offered superior performance, lower power consumption, and excellent network throughput.

Here’s hoping this report is false!