Posted on Leave a comment

Installing AlmaLinux 8 on Arm, using a Raspberry Pi 4

A few weeks ago, we took a look at how to install the new Rocky Linux 8 on Arm, using a Raspberry Pi, as a replacement for CentOS.  This is due to Red Hat altering the release strategy for CentOS, transitioning from a stable methodology to more early and rapid development.  However, there is also a second community build aiming to fill the gap left by Red Hat, so today we will look at the process of installing the new AlmaLinux 8, again on the Raspberry Pi 4 with community-built UEFI firmware.

Like Rocky Linux, this new AlmaLinux is a Linux distribution put together by the community, in order to replace the stable, predictable manner in which packages are updated.  AlmaLinux comes in both x86 and aarch64 builds of the OS, and we’ll be using the aarch64 build of course for our Pi.

We’re going to replicate the previous how-to for the most part, so let’s recap the hardware we’ll use:

  • Raspberry Pi 4B
  • SD Card
  • USB stick for install media
  • USB Stick or USB-to-SSD adapter for destination (permanent storage) media

To get started, we are going to download and flash the community-built UEFI firmware for the Raspberry Pi to an SD Card.  This UEFI implementation is closer in nature to a “normal” PC UEFI BIOS, and will cause the Pi to boot a bit more standard than would be achieved with the Raspberry Pi OS method.  The UEFI firmware is placed directly on an SD Card, and when the Pi is powered on it will read the UEFI firmware and can then boot from a USB stick or over the network.  To install the UEFI firmware, download the latest release .zip file (RPi4_UEFI_Firmware_v1.28.zip at the time of this writing) from https://github.com/pftf/RPi4/releases

Next, unzip this .zip file you just downloaded, and copy the contents to an SD Card.  The card needs to be formatted as FAT32, so if you are re-purposing an SD Card that had Linux on it previously you might need to delete partitions and re-create a FAT32 partition on the SD Card.  Once the files are copied to the SD Card, it will look like this:

With the SD Card complete, we can now proceed to download AlmaLinux.  Browse to https://almalinux.org and click on Download.  You will have the option for x86 or aarch64 downloads, obviously we’ll want the Arm64 version so click on that link, and then choose a mirror close to you.  Once you are taken to the mirror’s repository, you’ll see you have Boot, Minimal, or DVD .iso files to choose from.  For this tutorial, we’ll go with minimal, so click on that one and your download will begin.  Once the download is complete, flash the file to a USB stick using Rufus, Etcher, WinDisk32, or any other method you prefer.

Now that we have our SD card for booting and USB stick for installing, we just determine what to use for destination storage.  As the Pi doesn’t have any onboard eMMC, and the SD Card slot is occupied by our firmware, we could use another, separate USB drive, network attached storage, or for this tutorial we’ll actually go with a USB-to-SSD adapter, which will allow us to hook up a 2.5 inch SATA SSD as our permanent storage.

Plug the SSD into the adapter, and then connect the USB plug into one of the USB 3.0 (blue) ports on the Pi.  Attach a keyboard, mouse, and monitor, insert the SD Card, and the USB Stick with AlmaLinux on it, then plug in power.  After a moment you will see a Raspberry Pi logo, and the Pi will boot from the USB stick.  The AlmaLinux installation process will begin, and if you are familiar with the CentOS installation process you will notice it’s nearly identical, since the upstream sources are the same.

AlmaLinux-8-Install

The Raspberry Pi is not as fast as a PC, or a large Arm Server, so you’ll need to be patient while the installation wizard loads and navigating the menus can be a bit slow.  However, you will be able to setup a user account, choose your timezone, and select the destination drive to install to (the SSD).  Once satisfied, you can begin the installation, and again you’ll need to be patient while the files are copied to the SSD.  Make some coffee or tea. 

AlmaLinux-Install-Complete

Once the process does complete, you can reboot the Pi, remove the USB stick so you don’t start the whole process over, and eventually boot into your new AlmaLinux 8.4 for Arm distro!

AlmaLinux-8-Login

Posted on 6 Comments

How to Install Rocky Linux 8 on Arm, Using a Raspberry Pi 4

As you have probably read, Red Hat is changing the way that CentOS builds are delivered, moving the project to a Stream release, which brings in updates and patches faster, but may have less stability and potential for bugs to be introduced.  For some users, the more timely updates are a good thing, but for others, enterprise stability and long release cycles are better.  For those users who desire less frequent builds and have stricter testing and integration cycles, several projects sprang up to fill the hole left by CentOS.  One such new distro is Rocky Linux, which just had it’s first official release, known as Rocky Linux 8.4.

Let’s take a look at how to install Rocky Linux on Arm, as they produce a native aarch64 build typically geared towards Arm Servers, though in this case we will use a Raspberry Pi 4 just to demonstrate it works.

First and foremost, let’s cover what we’ll need for this project:

  • Raspberry Pi 4B
  • SD Card
  • USB stick for install media
  • USB Stick or USB-to-SSD adapter for destination (permanent storage) media

To begin our process, we need to download the community built UEFI firmware for the Raspberry Pi, which we will use to boot up the Pi, as opposed to the normal u-boot and device tree methodology used by Raspberry Pi OS.  The UEFI firmware will go onto an SD Card just like normal, and when the Pi is powered up it will read the firmware from the SD Card and can then proceed to boot from USB or over the network.  To install the UEFI firmware, simply go to https://github.com/pftf/RPi4/releases and download the latest release .zip file (RPi4_UEFI_Firmware_v1.28.zip at the time of this writing). 

Next, grab an SD Card and make sure it has a FAT32 partition.  Extract the contents of the .zip file you downloaded, and copy those contents to the FAT32 partition on the SD Card.  Once the files are in place, it should look like this:

At this point the SD Card is ready, and the Pi should be able to boot from it, but let’s set is aside for a moment as there are a few more steps to tackle.

Next, it’s time to grab a copy of Rocky Linux.  Head to https://rockylinux.org and click on the Download button.  You’ll see both the x86 and the Arm64 (aarch64) versions, we of course want the Arm distribution.  Choose the version you want from Minimal, DVD, or Boot, but make note, they are large files.  Even the “Minimal” installation .iso is 1.6gb, which is what we’ll use in this tutorial.  So, go ahead and download the “Minimal” aarch64 .iso, and wait for the download to complete.

Once downloaded, we’ll need to flash that .iso installation file to a USB stick.  You can use Etcher, WinDisk32, Rufus, or just `dd` it to your USB stick, whatever you prefer.

At this point, we’re almost ready to power up the Pi and start installing, but still have one more task to accomplish.  We need to figure out what storage media we are going to eventually install Rocky Linux to.  The SD Card slot is taken for the firmware, so we could perhaps use a second USB stick and let that be our long term storage medium where the OS lives, or perhaps a better idea is to purchase a USB-to-SATA adapter and use an SSD, just like a normal PC or laptop would use for storage.  This might prove to be more reliable long term, so let’s go for it.

Attach the SSD to the adapter, plug it into a USB3 port, hook up a keyboard and monitor, insert the UEFI firmware SD Card, and finally plug in the USB stick with Rocky Linux installer.  Now power up, and you should see a Pi logo, and after a moment the Pi will attempt to boot from the USB stick, which contains the Rocky Linux installation process (it’s nearly identical to the Fedora, CentOS, and Red Hat installers, if you have used those before).

In the installation wizard, you can add a user account, set your timezone, setup networking, and select the drive to install to.  Once you have everything configured, the installation will begin, and files are copied from the installer USB stick to the SSD.  This will take a while since we are using a RaspPi in this demo, but could potentially be much faster on big Arm Servers like an Ampere Altra, ThunderX, or even a SolidRun Honeycomb. 

At the end of the installation, you’ll be prompted to reboot.  You can remove the installation USB stick, reboot, and when the Pi boots back up it will automatically boot directly from the SSD.  At this point, you’ve successfully installed Rocky Linux on your Raspberry Pi!

Good luck and have fun with Rocky Linux 8 on your Raspberry Pi!

Posted on 17 Comments

How to Run Rosetta@Home on Arm-Powered Devices

How to Run Rosetta@Home on Arm-Powered Devices

This week, after an amazing Arm community effort, the Rosetta@Home project released support for sending work units to 64-bit Arm devices, such as the Raspberry Pi 4, Nvidia Jetson Nano, Rockchip RK3399-based single board computers, and other SBC’s that have 2gb of memory or more.

Sahaj Sarup from Linaro, the Neocortix team, Arm, and the Baker Lab at the University of Washington all played in role helping us port the Rosetta software to aarch64, get it tested in their Ralph (Rosetta ALPHa) staging environment, validate the scientific results, and eventually push it to Rosetta@Home.

Now, anyone with spare compute capacity on their Arm-powered SBC’s running a 64-bit OS can help contribute to the project by running BOINC, and crunch data and perform protein folding calculations that help doctors target the COVID-19 spike proteins (among other medicine and scientific workloads).

Here is a quick tutorial on how to get started, using a native operating system for your devices.  This methodology is not the only way to run Rosetta@Home, but, is intended for the technical users who want to run their own OS and manage the system themselves.

Raspberry Pi 4

To fight Covid-19 using a Raspberry Pi 4, you need a Raspberry Pi 4 with 2gb or 4gb of RAM.  The Rosetta work units are large scientific calculations, and they require 1.9gb of memory to run.  You will need to use a 64-bit OS for this, so Raspbian will not work, as it is a 32-bit OS.  Instead, you will need to download and flash Ubuntu Server from their official sources, located here:  https://ubuntu.com/download/raspberry-pi.  Once the SD Card is written, and your Pi 4 has booted up, connect an ethernet cable, and be sure to run ‘sudo apt-get update && sudo apt-get upgrade’ to make sure the system is up to date.  At this point a reboot may be necessary, and once the system comes back up, we can start to install BOINC and Rosetta.  Run ‘sudo apt-get install boinc-client boinctui’ to bring in the BOINC packages.  If you are using a 2gb RAM version of the Pi 4, we need to override one setting to cross that 1.9gb threshold mentioned earlier.  If you have a 4gb RAM version of the Pi 4, you can skip this next item.  But, 2gb users, you will need to type ‘sudo nano /var/lib/boinc-client/global_prefs_override.xml’ and enter the following to increase the default memory available to Rosetta to the maximum amount of memory on the board:

<global_preferences>
   <ram_max_used_busy_pct>100.000000</ram_max_used_busy_pct>
   <ram_max_used_idle_pct>100.000000</ram_max_used_idle_pct>
   <cpu_usage_limit>100.000000</cpu_usage_limit>
</global_preferences>

 Press “Control-o” on the keyboard to save the file, and then press Enter to keep the file name the same.  Next, press “Control-x” to quit nano.

Next, using your desktop or laptop PC, head to http://boinc.bakerlab.org and create an account, and while there, be sure to join the “crunch-on-arm” team!  

Back on the Raspberry Pi, we can now run ‘boinctui’ from the command prompt, and a terminal GUI will load.  Press F9 on the keyboard, to bring down the menu choices.  Navigate to the right, to Projects.  Make sure Add Project is highlighted, and press Enter.  You will see the list of available projects to choose from, choose Rosetta, select “Existing User” and enter the credentials you created on the website a moment ago.  

It will take a moment, but, Rosetta will begin downloading the necessary files and then download some work units, and begin crunching data on your Raspberry Pi 4!

You can press ‘Q’ to quit boinctui and it will continue crunching in the background.

 

Nvidia Jetson

If you have an Nvidia Jetson Nano, you can actually follow the same directions outlined above directly on the Nvidia-provided version of Ubuntu.  To recap, these are the steps:

  • Open a Terminal, and run ‘sudo apt-get update && sudo apt-get upgrade’.  After that is complete, reboot.
  • Using your desktop or laptop PC, head to http://boinc.bakerlab.org and create an account, and join the “crunch-on-arm” team
  • Back on the Jetson Nano, run ‘sudo apt-get install boinc-client boinctui’
  • Run ‘boinctui’, press F9, navigate to Projects, Add Project, and choose Rosetta@Home.  Choose an Existing Account, enter your credentials, and wait for some work units to arrive!

 

Other Boards

If you have other single board computers that are 64-bit, and have 2gb of RAM, that run Armbian, the process is the same for those devices as well!  Examples of boards that could work include Rockchip RK3399 boards like the NanoPi M4 or T4, OrangePi 4, or RockPro64, Allwinner H5 boards like the Libre Computer Tritium H5 or NanoPi K1 Plus, or AmLogic boards like the Odroid C2, Odroid N2, or Libre Computer Le Potato.  Additionally, 96Boards offers high performance boards such as the HiKey960 and HiKey970, Qualcomm RB3, or Rock960 that all have excellent 64-bit Debian-based operating systems available.

For any of those, simply install the ‘boinc-client’ and ‘boinctui’ packages, and add the Rosetta project!

Of course, if you just so happen to have a spare Ampere eMAG, Marvell ThunderX or ThunderX2 laying around, those would work quite nicely as well.

Posted on 4 Comments

How-To: Install Minecraft Server on the Raspberry Pi Server or Ubuntu 18.04 Arm Server (2020 Edition)

Install Minecraft Server on the Raspberry Pi (2020 Edition)

Minecraft is one of the most popular games played online, and installing your own Minecraft Server on a Raspberry Pi or other Arm powered device is easy! These instructions will allow you to install Minecraft Server on our Raspberry Pi, Raspberry Pi 3, or on our Ubuntu 18.04 Arm Server.  They should also work locally on your own Raspberry Pi or other Arm powered single board computer!

To install Minecraft Server on your Raspberry Pi, just follow this quick tutorial to get you up and running!

Installing Java

Due to changes in the Oracle licensing, it is no longer possible to download JDK directly from their site without accepting a license agreement, as was possible in the past.  Thus, it is no longer possible to just use ‘wget’ from a terminal to download JDK.  Instead, you will have to use a web browser, navigate to https://www.oracle.com/java/technologies/javase-jdk8-downloads.html, and select the “jdk-8u241-linux-arm32-vfp-hflt.tar.gz” file.  This will need to be accomplished in one of two ways, depending on whether you are using SSH to connect to your server, or, if you are using a local Raspberry Pi with a desktop.  First, if you are using a local Raspberry Pi with a keyboard, monitor, mouse, and desktop installed, you can simply open up a web browser and visit https://www.oracle.com/java/technologies/javase-jdk8-downloads.html, and select the “jdk-8u241-linux-arm32-vfp-hflt.tar.gz” file.  Take note of where it downloads, we will need that in a moment.

If you are connected via SSH, you will need to use a terminal (text only) web browser such as Lynx.  This won’t be pretty, but, it should be enough to prompt for the download of the JDK file.  First connect to your node via SSH using the IP address, username, and password.  Then, install lynx and navigate to the Oracle website in text-only mode:

sudo apt-get install -y lynx && lynx https://www.oracle.com/java/technologies/javase-jdk8-downloads.html

Look for the text on the page where the name of the file is listed, jdk-8u241-linux-arm32-vfp-hflt.tar.gz, and press Enter to start the download.  If you are on a desktop version of the Raspberry Pi, now is the time to switch to the Terminal application, and change to the directory where your file got downloaded to (most likely Downloads … cd Downloads).  If you connected via SSH, then you are already in a terminal, and can proceed.

We need to extract Java, using this command:

sudo tar zxvf jdk-8u241-linux-arm32-vfp-hflt.tar.gz -C /opt/

If the download and extract were successful, we will test to make sure Java is working by:

sudo /opt/jdk1.8.0/bin/java -version

We should see this, confirming Java is now ready (your version may vary a bit):

java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b111)
Java HotSpot(TM) Client VM (build 25.0-b53, mixed mode)

Finally, let’s remove the downloaded gzip to save a bit of disk space:

sudo rm jdk-8u241-linux-arm32-vfp-hflt.tar.gz

Installing Minecraft Server

Now, it is time to download Minecraft Server!

Still in the terminal, get Minecraft from this URL:

wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar

Once it has finished downloading, we can launch it by running:

sudo /opt/jdk1.8.0/bin/java -Xmx1024M -Xms1024M -jar minecraft_server.1.15.2.jar

The original Raspberry Pi Model B only has 512mb of RAM, so it will not actually allocate 1024…but it will take approximately 400mb or so that is available to it.  The Raspberry Pi 3 and our Ubuntu 18.04 LTS Arm Server both have 1gb of RAM, which definitely helps increase performance of the Minecraft Server.  Of course, the Operating System does take up some of the available memory, but Minecraft Server will probably reserve about 750mb to 800mb of memory to run, which will be plenty.  On a Raspberry Pi 4 you can purchase up to 4gb RAM models, so if you have one of those, feel free to experiment with increasing the value of the memory, (1024) in the above command line (perhaps 2048)

At this point, Minecraft Server will go through it’s startup routine, and you will be able to join the newly created world by pointing your game to the IP Address of your node (you can also modify game variables by editing the server.properties file, located in your ~home directory.)

Have fun!

Posted on 1 Comment

Raspberry Pi 4 AI Server Now Available

As pioneers in the Arm micro server ecosystem, miniNodes has been an innovator and leading expert in the use of small devices to fulfill compute capacity at the Edge, watched as IoT has matured and impacted all industries, and is now witnessing AI and Machine Learning depart the Cloud and instead be performed on-device or at the Edge of the network. More and more phones, home assistant devices (such as Echo), and even laptops are including custom AI hardware accelerator chips designed to handle voice recognition, gesture and motion control, object detection, analyze video and camera feeds, and perform many other deep learning tasks.

The AI models and algorithms that make this happen have to be trained and tested on specialized hardware accelerators as well, and historically that has been very expensive to perform in the cloud. miniNodes is taking a different approach however, and pairing custom hardware AI Accelerators with cost effective Raspberry Pi 4 servers, to lower the cost of testing and training these models while still maintaining high levels of performance. Deep learning, neural network, and matrix multiplication activities can be offloaded to the AI hardware, rapidly accelerating the model training.

The first product to launch in the new miniNodes AI Server lineup is a Raspberry Pi 4 server combined with a Gyrfalcon 2801 NPU, for a maximum of 5.6 TOP/s of dedicated AI processing power. In the future, we will expand the lineup to include Google Coral and Intel Movidius hardware as well.

The Raspberry Pi has always been one of the most popular hosted Arm Servers at miniNodes, even as far back as the original Raspberry Pi (1) Model B, some of which are still running! Over the years, we upgraded to Raspberry Pi 2’s, 3’s, and the 3+. So, it was only a matter of time until we deployed new, faster Raspberry Pi 4 servers.

However, with the launch of the Pi 4 and its increased capabilities, we decided it was time to upgrade our infrastructure, management, and backend systems to match. That work is actually still ongoing, but in order to start testing the ability to run AI workloads, we have made a few units available for early adopters to begin testing their ML models. If you are looking for a cost effective way to get started with AI processing or are interested in testing AI/ML on Arm cores, this is a great way to get started. Check out the new miniNodes AI Arm Server here: https://www.mininodes.com/product/raspberrypi-4-ai-server/

And if you have any questions, just drop us a note at info@mininodes.com!

Posted on 1 Comment

Hosted Raspberry Pi 4 Servers, Coming Soon

Can a Raspberry Pi 4 function as a server?

Since it’s launch in June, many people have been wondering whether a Raspberry Pi 4 can take on the role of a small server. With 2gb or 4gb of RAM now available on the boards, and a significantly faster Arm processor than the previous model, a Raspberry Pi 4 Server is absolutely possible!

Longtime followers will know that miniNodes has been hosting Arm Server single board computers for years, and may already realize that our current Raspberry Pi Servers are typically sold out. Demand for them has always exceeded our capacity (sorry about that!), and customers have realized that they function great as lightweight servers for certain use-cases. Testing code and applications on Arm processors for compatibility, running simple services that don’t need a lot of CPU / compute power, early IoT product development work, Edge node and gateway workload testing, and bare-metal (non-shared) access are some of the reasons users have been drawn to our hosted Raspberry Pi’s. However, the capability of the nodes is certainly modest with their 1gb of RAM and Cortex A53 cores.

Enter the Raspberry Pi 4 Server

The Raspberry Pi Foundation caught the world by surprise when it released the new Raspberry Pi 4 board a few months ago. As mentioned, it came with increased RAM, a faster processor, gigabit networking, and USB 3.0 ports. These upgrades directly addressed the performance and connectivity shortcomings of the previous generation, though “shortcomings” is probably unfair when talking about a computer the size of a credit card and costing only $35. However, with these new components, the Raspberry Pi 4 is a very capable machine, and more specifically with a quad-core Cortex-A72, 4gb of RAM, and USB3 attached storage it is certainly able to fulfill the role of a small server. Content and data caching, IoT data collection and aggregation, extreme-edge compute environments, small office branches, archival storage, email relaying, (small) in-memory NoSQL datasets, and many other purpose-fit workloads are entirely possible!

Raspberry-Pi-4-Server

As also mentioned, miniNodes has been involved in the Arm Server ecosystem for many years, and we have a lot of experience with the challenges of hosting single board computers. The biggest issue for most long-term Raspberry Pi users, and other similar SBC’s without onboard storage, is that SD Cards wear out and fail. SD Cards were never designed to have constant and continual reading and writing, such as occurs when a full operating system is installed and running on them. SD Card failure leads to the Pi crashing, with potential for data corruption and data loss. Another major hurdle when deploying Raspberry Pi’s in a cloud hosting environment is the lack of native management, remote console access, or other typical hardware control mechanisms found on traditional servers. In fact, even placing single board computers in a datacenter is a challenge, with voltage, physical dimensions, port placement, and cabling very different from a standard 1U or 2U server chassis.

But, with some creative engineering and subject matter expertise, miniNodes is going to address these challenges and build an infrastructure to allow the Raspberry Pi 4 and other single board computers to function in a cloud server capacity that is similar to the user experience developers are already familiar with.

(Small) Arm Cloud Servers

It will take a few months, and some trial and error along the way, but our current plan is to tackle each previously identified challenge and come up with a solution that is both scalable and customer-friendly. First and foremost, we need to move storage off of the SD Card, and onto a more robust medium. Thus, a new NAS system (also running on Arm!) is being developed, where each node’s OS will live, allowing higher performance, greater reliability, and data replication. Next, the ability to remotely power cycle nodes is being built, by a power distribution and relay that can change states upon user command. Cabling, cooling, and rack mounting are also under active development, with power, networking, and the physical layout of the boards in a 2U server chassis being optimized.

A lot has been written about the heat produced by the Pi 4, and placing lots of them in a server chassis is not going to help, so we are doing careful analysis of the thermal properties of the boards, and experimenting with heatsinks and fans, as well as the placement, direction, and airflow across the boards in the chassis. Internal temperature monitoring (and alerting) is also being developed for the chassis, to ensure intervention can occur if needed.

Here are some of our first experiments with cooling solutions:

[columns] [span4]

Raspberry-Pi-4-Server-1

[/span4][span4]

Raspberry-Pi-4-Server-2

[/span4][span4]

Raspberry-Pi-4-Server-3

[/span4][/columns]

Finally, a complete re-architecting of the miniNodes website and management portal is needed to interface with the new components, so a website rebuild and a new user interface will be rolled out as well.

These exciting changes will result in a better customer experience, improved products and services, and higher performing nodes. We’ll keep this blog updated with the latest information and developments (and lessons learned) as we continue to make progress on the project, but early estimates are that we will be ready for launch sometime in Q1 2020. As much as we’d like to offer our Raspberry Pi 4 Servers sooner, we want to make sure we do it right, and are able to give customers an improved service to go along with the improved boards.

Stay tuned, and, if there are other Arm devices you’d like to see included, just let us know. You can find us tweeting here https://twitter.com/mininodes, or, just shoot an email to info at mininodes.com.

Posted on Leave a comment

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 4 Comments

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 1 Comment

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:  https://www.mininodes.com/product/5-node-raspberry-pi-3-com-carrier-board/

mininodes-raspberry-pi-cluster-board

Posted on Leave a comment

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