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: http://cdimage.ubuntu.com/releases/18.04/beta/

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: https://www.raspberrypi.org/documentation/hardware/computemodule/cm-emmc-flashing.md

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:

kernel=vmlinuz
initramfs initrd.img followkernel
arm_control=0x200
#device_tree_address=0x02000000

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: https://github.com/raspberrypi/firmware/blob/master/boot/bcm2710-rpi-cm3.dtb

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:  http://cdimage.ubuntu.com/releases/18.04/beta/

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

Where to Buy an Arm Server

Being Arm enthusiast’s 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.

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 CoM’s, and a single power supply to run the whole cluster.

We are in the process of validating the hardware, and ensuring proper functionality, but hope to launch the board soon!

mininodes-raspberry-pi-cluster-board

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!

 

Posted on

miniNodes ARM Innovators Program Interview

The full Arm Innovators Program interview is now posted, and we are proud to be highlighted by Arm for our innovations in the Arm Server ecosystem!

As you can see, we are currently prototyping a Raspberry Pi Cluster PCB that will hold 5 Raspberry Pi Computer on Module (CoM) boards, with a power input and ethernet switch built in.

This Raspberry Pi Cluster Board will allow the Docker, Kubernetes, OpenFasS, Minio, and other cluster projects to easily develop, test, and build their software in a cheap and convenient way, with no cabling mess.  Home automation, IoT, and hardware hacking are other potential uses for the board.

We’re still a few weeks away from launching, but keep watching this space as we will be sure to make an announcement as soon as it is ready!

mininodes-arm-innovator

Posted on

Report: Qualcomm Centriq TCO beats Intel

Tirias Research recently released a new Report detailing the Qualcomm Centriq Total Cost of Ownership versus an Intel Xeon x86 platform on a common workload, and the Qualcomm came out far ahead.  The full article is located here:  https://www.forbes.com/sites/tiriasresearch/2018/02/20/qdt-improved-server-tco/#3bbff2bc4675  The relevant piece is this:

Our TCO analysis demonstrated that using only one Qualcomm Centriq 2452 SoC per server chassis, a 12kW rack full of 36 46-core SoCs should show slightly better performance than a rack full of Intel Xeon Silver 4110 dual-socket server chassis, at only 51% of the power consumption. That’s similar performance with about half the power consumption.

 

Using two Qualcomm Centriq 2452 SoCs per server chassis in a 12kW rack should yield a little over double the performance of the dual-socket Intel Xeon Silver 4110 servers at 88% of the power consumption. A key factor is that only 35 of the Intel Xeon Silver 4110 systems can fit within the 12kW rack power budget. In this scenario, Qualcomm Centriq 2400 offers double the performance with less power consumption.

So, a single socket Centriq is essentially using half as much power for the exact same performance and workload, translating in to real savings.  And, there is room for performance improvement as well, by moving up to a dual socket design.  In that scenario, doubling the performance of the Xeon rack still results in a 12% power budget savings.  Double the performance and still drawing less power per rack, Qualcomm’s going to be challenging Intel’s dominance in the datacenter.

 

Posted on

miniNodes Selected to Arm Innovators Program

The title says it all!  miniNodes is proud to announce that we have been selected to participate in the ARM Innovators Program, and will soon be designing and testing an ARM Server thesis project in conjunction with Arm!

As more information becomes available, we will be sure to share!  In the meantime, the full text of the announcement is located here:  https://community.arm.com/company/b/blog/posts/welcoming-new-arm-innovators-featuring-experts-in-drones-cameras-voice-and-cellular

 

arm-innovators-program-image