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/

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/release/

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

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

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

ARM Server Update, Spring 2017

As always, much has changed in the ARM Server world since our last post!  Here are the highlights of what’s going on in the Linux on ARM Server community:

First and foremost, a huge announcement from Microsoft came at the 2017 Open Compute Project (OCP) U.S. Summit last month.  Microsoft stated they can utilize ARM Servers to power over 50% of their Cloud Workload, and demonstrated two designs, one based on the Cavium ThunderX2, and one based on the Qualcomm Centriq 2400.  They even showed an internal build of Windows Server running on the Qualcomm.

Next, 96Boards showed off all the latest projects and boards they have been working on at Linaro Connect, from IoT to the powerful Qualcomm Snapdragon 820 SBC.

Finally, on the Raspberry Pi front, a new Raspberry Pi Zero was released with WiFi built-in.  This will allow the Raspberry Pi Zero to be more easily adapted to IoT applications, without the need for a USB Wi-Fi adapter or USB ethernet adapter that was previously required.  This simpler solution addresses one of the biggest complaints about the Pi Zero.

 

 

Posted on

Qualcomm Centriq 2400 ARM Server Processor

Qualcomm has announced their new ARM Server processor, called the Centriq 2400, which is designed for high efficiency processing and is capable of handling datacenter workloads.  While Cavium, AMD, and Applied Micro all have ARM Server processors, Qualcomm’s new processor is the first to be built on a 10-nanometer manufacturing process.  It will be able to handle cloud software stacks now that the software ecosystem has matured, and should be able to compete with Xeon offerings as the hyperscalers like Microsoft, Facebook, Google, Amazon, Tencent, Baidu, Alibaba, and China Mobile build out next generation datacenters.

Qualcomm has lots of experience of course developing, manufacturing, and selling ARM processors via their Snapdragon line of cell phone chips, so they do have an edge on the competition as vendors like Cavium and Applied Micro don’t have the same experience and relationships already built.  Additionally, Qualcomm can leverage some synergies with the Snapdragon 820 and 835, albeit they definitely have their differences.

With another vendor now entering the ARM Server marketplace (and a major one at that), the future is looking bright for ARM gaining more traction and making inroads in the datacenter.

 

Posted on

ARM Server Linux Update, March 2016

It has been a few months since our last ARM Server update, and as usual, a lot has changed in just a short time!

The biggest and most important news is the launch of the Raspberry Pi 3, freshly upgraded to a quad-core 64-bit ARM processor from Broadcom, whereas all previous Raspberry Pi’s have been based on 32-bit processors. With 8 million units sold, the Raspberry Pi is by far the most popular ARM single board computer, so the move to a 64-bit processor will potentially add millions of units to the 64-bit ARM ecosystem.

In January, the AMD Opteron A1100 officially launched, which is also a 64-bit model. It is available in 3 different SKU’s with varying core count and speeds, and AMD is arguably the biggest name to launch an ARM Server SOC thus far.

The LeMaker Cello is a new board based on the 96Boards Enterprise Edition specification, utilizing one of the AMD Opteron processors. It has gigabit ethernet, DDR3 memory, SATA, and USB 3.0, so connectivity and data throughput should be excellent.

Finally, as part of the latest 96Boards Reference Software Platform, both Debian and CentOS are now supported for install, and a single 4.4 Kernel run the DragonBoard, HiKey, and HuskyBoard.

So there you have it. Just a few short months, and lots of change has happened in the ARM Server ecosystem (as usual)!

Posted on

miniNodes.com Launches First Hosted 64-Bit ARM Server

Phoenix, AZ — Cloud hosting provider miniNodes.com, a pioneer in the ARM server hosting industry, is proud to announce the immediate availability of the world’s first hosted 64-bit ARM server. The new 64-bit ARM miniNode is the first publicly available hosted Linux server to use a processor based on the ARMv8 architecture.

While the transition from 32-bit to 64-bit CPU’s is already underway in the smartphone market, the server market has been slower to evolve. This has been due to the limited availability and prohibitively expensive early samples of 64-bit ARM hardware. However, the new 64-bit ARM miniNode eliminates the barriers to entry and dramatically reduces the cost for companies to begin testing software, porting applications, and building new technologies that leverage the benefits of the ARMv8 architecture. The 64-bit ARM miniNode is based on the HiSilicon Kirin 6220 processor, which has 8 ARM Cortex-A53 cores, coupled with 1gb of RAM and 20gb of storage. Linux support includes Debian 8.0 “Jessie” at launch, with other Linux distributions expected to become available in the future.

Although ARM processors already power the vast majority of smartphones, tablets, and media players, as well as some laptops, the biggest market segment poised for growth is the server and datacenter industry. ARM’s low power, high efficiency CPU designs can result in significant energy savings for web-scale datacenter operators, where energy and cooling are the largest costs. Companies can make sure their applications and code are ready to take advantage of these next-generation datacenters by using the new miniNode 64-bit ARM server to achieve compatibility today.

More information about the miniNode 64-bit ARM server can be found on our website, https://www.mininodes.com/product/64-bit-arm-mininode/

More information on ARM Holdings can be located on their website, http://www.arm.com

Posted on

Installing Ubuntu Server 14.04 on the ARM Allwinner A80 Optimusboard or pcDuino8 Arches

Previously in this series, we investigated building and running a minimal linux server on the Allwinner A80 Optimusboard.  While that was a great exercise in learning about the A80 and its SDK, the output of that work was not all that useful.  Additionally, we were still missing major hardware components such as ethernet, wi-fi, and NAND.  More recently, the pcDuino team released both a Fedora and a Lubuntu beta image for the pcDuino8 board (recently renamed Arches).  Their Lubuntu build is made up of two pieces: a kernel image and a rootfs image.  The kernel image is 3.4.39, and it simply boots the board and then points over to the rootfs.  However, they utilized an older Lubuntu 12.10 image, which also inherently provides the LXDE desktop, neither of which is optimal when looking to deploy a server.

To build an ideal microserver, we really needed a bare minimum Ubuntu LTS system.  Thus, we kept the 3.4.39 kernel they provided, but we swapped in a freshly built Ubuntu 14.04 LTS file system created by mk-sbuild.  There is no window manager, no video acceleration, and no packages above and beyond what is needed to bring up the system.  It is up to the user to install whatever software they want, whether that is a LAMP stack, nodejs, ruby, FTP, DNS, Gnome, VNC, etc, etc.

Here is how to make use of this image:

First and foremost, you’ll need to download 3 files that we are going to use.  One file will be used by LiveSuit, and the other 2 files we are going to place on a microSD card.  Here are our downloads:

After they are finished downloading, we need to uncompress the ubuntu-trusty-arm-mininodes-20141227.img.gz image file.

gzip -d ubuntu-trusty-arm-mininodes-20141227.img.gz

Next, copy update.sh and ubuntu-trusty-arm-mininodes-20141227.img to a microSD card and then set it aside, we’re going to need it later in the process.

Now, we are ready to start.  First, load LiveSuit and select the kernel file so that it is ready to format / flash when the board is powered up.

install-ubuntu-on-allwinner-a80-optimusboard-1

Next, we need to connect the serial cable to the Optimusboard, open up a screen session (or use Putty if on Windows), and apply power.  Quickly press any key to interrupt its boot process and drop to the u-boot shell.  Type ‘efex’ (without the quotes) and press Enter.

install-ubuntu-on-allwinner-a80-optimusboard-2

LiveSuit will now find the board, and flash the kernel to the NAND (/dev/nanda to be exact).  It only takes a moment, because we are simply flashing the kernel at this point.

install-ubuntu-on-allwinner-a80-optimusboard-3

Once finished, the Optimusboard will reboot itself, and attempt to boot, but it fail with an error of “No valid rootfs found”.  Now it is time for the micro SD card.

install-ubuntu-on-allwinner-a80-optimusboard-4

Place the micro SD card in the slot, and the board will recognize that it contains an update.sh file.  It will immediately begin copying the contents of ubuntu-trusty-arm-mininodes-20141227.img to the NAND (/dev/nandd).

install-ubuntu-on-allwinner-a80-optimusboard-5

After approximately 5 minutes it will finish copying the data, and we can safely remove the SD card.

install-ubuntu-on-allwinner-a80-optimusboard-6

Once it’s removed, press the Reset button on the Optimusboard, and we should now boot up cleanly, and after a moment arrive at an Ubuntu login prompt.  The default username / password combo is ubuntu / ubuntu.

The build script only gets us to a minimal working state, so, let’s finish bringing the system all the way up and prepare it for use.  First, lets expand the filesystem to use all of the available space on the NAND (roughly 8gb):

resize2fs /dev/nandd

Then to verify the results:

df -h

Obviously we’ll want to change the passwords, for security purposes:

passwd

su root

passwd

Finally, lets bring up the ethernet port and grab a DHCP ip address, so we can access the internet.

ifconfig eth0 up

dhclient eth0

If all goes according to plan, you should now have a minimal Ubuntu 14.04 LTS ARMv7 install running on your Allwinner A80 Optimusboard! From here, you can customize the system to best suit your needs!

Posted on

Hosted Raspberry Pi Servers Now Available on miniNodes.com

miniNodes is proud to announce it is the first provider in North America to offer hosted Raspberry Pi servers.  Although they are small in size, Raspberry Pi Model B+ servers are able to perform many of the same functions and roles larger servers typically fulfill.  Raspberry Pi servers can host websites, email, databases, and DNS, can be used for learning programming languages like Python, Ruby, NodeJS, Bash scripting, and Linux administration, and can even be used as Minecraft servers.

Our hosted Raspberry Pi servers come in either 16gb or 32gb sizes, combined of course with the Pi’s ARM Cortex processor and 512mb of RAM.  Each node has a static IP Address, and SSH access.

For more details or to order, see https://www.mininodes.com/product/raspberry-pi-mininode/