Install Ubuntu Server 64 bit OS in Raspberry Pi


Raspberry Pi comes out with a default OS choice which appears logical to all people: Raspbian. Raspberry Pi Foundation is behind both products, so everyone supposes that this pair assures the best compatibility and performances. However, Raspbian is currently available only in 32 bit configuration while new RPI processor are 64 bit enabled. Some people refer to have strong performance improvements in using 64 bit OS on RPI, so I decided to test it installing what is the most common linux OS: Ubuntu. The version that we are going to install is the server one (without Desktop Environment), release 19.04.

So, this article is going to provide a guide to install Ubuntu Server OS in Raspberry Pi 3 model B+, but should work also on newer RPIs (for example RPI4).

Follow peppe8o posts on -> Twitter

What do you need


As usual, I suggest adding from now to your favourite e-commerce shopping cart all the needed hardware, so that at the end you will be able to evaluate overall costs and decide if continue with the project or remove them from the shopping cart. So, hardware will be only:

Raspberry PI 4 model B image
Raspberry PI 4 model B image

You also need a PC (notebook or desktop) to flash images.


  • Ubuntu Server disk image. I will use the preinstalled-server image, which allows you to unpack a preinstalled version of Ubuntu onto a target device. Official image for RPI 3 can be downloaded from here
  • an image flashing software like, for example, Etcher

Step-by-Step Guide

Download and install in your PC Etcher (if not available).
Download Ubuntu disk image (img.xz compressed file).
Insert your SD card in your PC/SD card reader.
Run Etcher in you PC.

Etcher Ubuntu Install

Click “Select Image” and select Ubuntu disk image previously downloaded. Now Etcher should also have recognised your SD card. Otherwise, click change and select correct SD card.

Click on “Flash! button and wait for operation to be completed.

Now extract SD Card from PC and insert it in your Raspberry Pi (that must be already connected also via HDMI to a monitor/TV). Power on the RPI and wait for boot till login prompt.

Login with default ubuntu credentials (please wait a while if it returns authentication error):

user: ubuntu
password: ubuntu

First login will require to change ubuntu password. Change it at your choice:

Ubuntu change password

Networking Setup

For those who use RPI via Ethernet connection, you can go ahead to the next paragraph (SSH Setup).

If we wantto use WiFi connectivity, we must create a new yaml file, named 01-netcfg.yaml:

sudo nano /etc/netplan/01-netcfg.yaml

Netplan is quite strict about indentation and spacing; proofread carefully. Configure as following:

 version: 2
 renderer: networkd
   dhcp4: yes
   dhcp6: no
     password: "**********"

change network_SSID_name and password with yours one. Note that both are enclosed in quotation marks (“). Save and exit. Activate the new networking setup by typing following commands:

sudo netplan generate
sudo netplan apply

Test if all is working with a simple ping:

ping -c3

Find your RPI IP address with the single command:


looking at wlan0 section. This IP will be used to connect remotely via SSH at the end of next step.

SSH Setup

Reboot to have a clean environment:

sudo reboot

Before all, update your installation:

sudo apt-get update

Ubuntu Server doesn’t come with ssh enabled, so we need to install related package:

sudo apt-get install openssh-server

After this operation you are able to connect remotely via SSH to your RPI server.

Final Check

Type the following command:

dpkg --print-architecture

that will show you have an arm64 (64 bit) OS:



Booting Ubuntu Server may require more time than Raspbian Lite. A way to improve it is avoiding the boot check on Ethernet connection if you use only WiFi. This also fixes warning “A start job is running for wait for network to be configured.” on booting, that wastes time if no Ethernet cable is plugged (WiFI only networking). The goal can be achived by editing 50-cloud-init.yaml:

sudo nano /etc/netplan/50-cloud-init.yaml

and commenting all networking section (inserting # before each line), so that the file will appear like the following:

# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init’s network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}

# version: 2
# ethernets:
# eth0:
# dhcp4: true
# match:
# macaddress: xx:xx:xx:xx:xx:xx
# set-name: eth0

Final Considerations

Having a 64 bit OS on RPI can give a great help for those people using Raspberry with CPU intensive applications. This doesn’t help if you need more RAM, that is limited by hardware sizing. Other performance improvements can come from some shrewdness regarding the correct Power Supply use, high performance SD Cards and other listed in 4 tricks to improve Raspberry Pi performance and power consuption article.


Please, share with your friends in your social network if you like this article!

How useful was this post?

Click on a star to rate it anonymously!

Average rating 5 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?