Setting up a “Le Potato” (Raspberry Pi-Alternative) With Ubuntu Server 22.04 Linux from Scratch
Libre Computer’s AML-S905X-CC single board computer, more affectionally known as the “Le Potato”, is a nice little $35 board made to compete with the Raspberry Pi 3B+.
With the Le Potato being readily available for purchase in the US while Raspberry Pis are practically impossible to come by, I’ve found that the Le Potato is an excellent Raspberry Pi-alternative to tinker around with.
Le Potato & Raspberry Pi differences
| | Le Potato | Raspberry Pi 3B+ | Raspberry Pi 4 |
| --------- | ------------ | --------------- | -------------- |
| Price | $35 | $35 | ~$45 |
| --------- | ------------ | --------------- | -------------- |
| Available | YES! | No | No |
| --------- | ------------ | --------------- | -------------- |
| Processor | 4 Core ARMv8 | 4 Core ARMv8 | 4 Core ARMv8 |
| | Cortex-A53 | Cortex-A53 | Cortex-A72 |
| | 1.512GHz | 1.4GHz | 1.8GHz |
| --------- | ------------ | --------------- | -------------- |
| GPU | 5 Core 3D | | |
| --------- | ------------ | --------------- | -------------- |
| RAM | 2GB DDR3 | 1GB DDR2 | 1/2/4/8 GB |
| --------- | ------------ | --------------- | -------------- |
| Video | H.264/H.265 | H.264 | H.264/H.265 |
| --------- | ------------ | --------------- | -------------- |
| Video Out | HDMI 2.0 | HDMI | micro-HDMI x2 |
| | 4K HDR | 1080p | 4k |
| --------- | ------------ | --------------- | -------------- |
| USB | USB2.0 x 4 | USB2.0 x 4 | USB2.0 x 2 |
| | | | USB3.0 x 2 |
| --------- | ------------ | --------------- | -------------- |
| Ethernet | 100 Mb | 300 Mb | 1Gb |
| --------- | ------------ | --------------- | -------------- |
| Wireless | X | 2.4GHz+5GHz | 2.4GHz+5GHz |
| --------- | ------------ | --------------- | -------------- |
| Bluetooth | X | 4.2 and BLE | 5.0 and BLE |
| --------- | ------------ | --------------- | -------------- |
| Power-in | MicroUSB | MicroUSB | USB-C |
| --------- | ------------ | --------------- | -------------- |
| Load OS | Micro SD | Micro SD | Micro SD |
| --------- | ------------ | --------------- | -------------- |
| Tinker! | 40 Pin | 40 Pin GPIO | 40 Pin GPIO |
| | GPIO Header | Header | Header |
| --------- | ------------ | --------------- | -------------- |
You can see from the my little chart above that the “Le Potato” is pretty comparable in most areas to the Pi 3B+ and/or Pi 4, most noticeably missing out on Wifi and Bluetooth adapters.
This means that you will have to either hardwire your Le Potato with an ethernet cord to your router/modem (suggested) or buy and install a compatible USB wifi dongle (more work). Also, the ethernet port is rated for 100Mb, which is 1/10th the speed of modern 1Gg connection speeds.
Also, if you plan on running a media server, like Plex, then it’s helpful that the Le Potato can handle H.265 video encoding. Whether or not you should attempt to run a media server on a Le Potato, though, is for a different article.
Also, the Le Potato was designed to match the same GPIO pins and form factor as the Raspberry Pi 2/3B+, meaning it works with 90% of those cases and accessories!
You could sell a strong argument for or against any of these three Single Board Computers but, at the end of the day, you can only really purchase the “Le Potato” right now, so, 🤷♂️.
What we will set up
In order to tinker around with new software, new home automations, new anything that could be messy or destructive, I like to set up these little “homelab” servers running Ubuntu Server Linux. So, that’s what we are going to set up today.
Using these little “Le Potato” “homelabs” allows me to remotely connect to them from my main computer (via ssh) and run, test, tinker, create, and destroy all while keeping my day-to-day computer safe and sound AND without having to run my laptop 24/7.
The possibilities are endless, but I like to use these little “homelab” servers for setting up all sorts of home automation tools (mainly using Docker) and for running long-term scripts and programs like data or analytics tools, media servers, torrents, etc.
This guide will cover setting up a “Le Potato” out of the box, getting Ubuntu Server 22.04 up and running on it, and getting connected to it from your main computer.
After that, the world is your oyster!
What you’ll need
- an AML-S905X-CC (Le Potato) Single Board Computer [link]
- a 5V 2.5A micro-usb power supply [link]
- a ~32GB+ MicroSD card (a reasonably good one)
- an ethernet cord (and internet access)
- a MicroSD card adapter (optional, depending on your computer)
- a computer case (optional, here’s a neat one with a fan)
- a main computer to flash the MicroSD card and ssh into your “Le Potato” after setup
What steps we will follow
To get our new “homelab” up and running, we are going to follow these steps:
- Flash Ubuntu Server onto the MicroSD card from your main computer
- Unbox and plug-in the “Le Potato”
- Connect to the “Le Potato” from your main computer via SSH
- Update your “Le Potato”
- Change your hostname
- Install Docker and Docker Compose
- Take over the world!
1. Flash the MicroSD card
Before we even open up our new “Le Potato” we need to prepare the MicroSD card for it. To do that, we will use our main computer to “flash” a version of Ubuntu Server 22.04 Linux onto it.
Flash, if you’re not familiar with the term, simply means to write the files onto the MicroSD card. However, flashing is a bit more technically specific about “how” it copies those files, so you’ll need to use a special tool to get the right results.
A great place to start is the “Le Potato” page on the libre.computer website.
Under the “Downloads” tab you’ll find a list of “Distros” (meaning Distributions, aka: versions or “flavors”) of different operating systems we might want to set up.
Let’s select the “Ubuntu” distro, since it’s pretty popular and the one I’m most familiar with, and have a look at the set-up guide.
To make things work as effectively as possible, Libre provides these guides and custom Ubuntu images that are tweaked just for the “Le Potato” hardware. Pretty neat, right?
The guide has three main steps:
1. Find the correct “image” (file) to download
To find the correct Ubuntu image, we can click on the “distro server” link at the very top of the guide.
Since we are using the Le Potato (model AML-S905X-CC) and we want to install Ubuntu Server, we should find and download the image named ‘ubuntu-22.04.1-preinstalled-server-arm64+aml-s905x-cc.img.xz’.
Your ‘ubuntu-22.04.01’ numbers might be different, depending on the current version of Ubuntu at the time of reading, but the rest should be the same.
At the time of this writing, the download of the “image” (file) is 2.0 GB, just FYI.
To make 100% certain the file downloaded correctly, you can verify the checksums using the SHA256SUMS file available on the same download page.
If you’re using a Mac, hop into the Terminal app and, from the same directory as the downloaded file, calculate the shashum with the following command:
shasum -a 256 ubuntu-22.04.1-preinstalled-server-arm64+aml-s905x-cc.img.xz
This will output your shasum and filename, which you can compare against the one listed in the SHA256SUMS file you downloaded. If they match, you’re good to go! If not, try your download again.
Example Output:
e811c815641af767d20781e59ffdf7a0591033b1ed9de796b3e65f7f40b79c92 ubuntu-22.04.1-preinstalled-server-arm64+aml-s905x-cc.img.xz
2. Decompress (or unzip) the file
Next we can decompress the file to its full size. On a Mac, that’s as easy as double-clicking the .xz
file and letting the Archive Utility unzip it into the same directory.
If you’re on a Windows machine, Libre recommends using 7-zip.
3. Flash the file to your MicroSD card
This is a pretty crucial step. Remember how I said to “flash” was like copying files, but more technical? Here’s where that “more technical” part comes in.
To make this work, we need to use a ‘bit-accurate’ flashing tool to copy the decompressed file, bit by bit, onto the SD card.
The recommended tool for Mac OS is the built-in Disk Utility app, but I’ve had the best luck with BalenaEtcher, so that’s what I use. Libre has a list of alternatives for Windows and Linux, though.
Start by downloading and launching BalenaEtcher. It has a super simple interface, so don’t worry!
First, choose “Flash from file” and select your decompressed file from above. Then, select your MicroSD card for the target. Finally, select “Flash!” It may or may not ask you to enter your administrator password to access the drive.
Once it’s done flashing and verifying, you will get a pop up on your Mac letting you know that it detected a new disk (your MicroSD card) and that it can’t read it. That’s expected (and fine, since we don’t need our Mac to read it). Just click “Eject” and remove your MicroSD card.
Flashing of the MicroSD card completed 🎉!
2. Unbox and plug-in the “Le Potato”
For this part, we need to unbox our “Le Potato” and grab our MicroSD card, ethernet cord, and power supply.
Pop the flashed MicroSD card into the “Le Potato” first. The slot is really tiny, so be prepared to squint.
Next, you’ll want to make sure you plug in your ethernet cable BEFORE your power, that way the internet will be available for Ubuntu to run initial setup as soon as it boots.
Finally, plug the “Le Potato” in to the power adapter and you should see a solid red, solid green, and intermittently blinking blue light on your board to indicate that it’s working. I like to give mine a good 60 seconds on first boot to allow it to setup the pre-made user account before continuing to the next step.
3. Connect to the “Le Potato” from your main computer via SSH
Now that “Le Potato” is cooking, we can hop back on our main computer and ssh
into it.
According to the release notes for the image we downloaded, the default username and password for the Ubuntu install will be ubuntu
and ubuntu
, respectively. Upon first login you will be forced to change this password to something more secure.
First, let’s find the IP address of the “Le Potato” on our local network.
On your Mac, hop into the Terminal and type arp -a
to see a list of your local network devices. Look through for the one named ubuntu
and copy the IP address. In my case, it was 192.168.1.241
.
Now, we know the IP address, username, and password, so we can SSH into our new “Le Potato”!
In the Terminal app again on your Mac, type the following (using your own IP address):
ssh ubuntu@192.168.1.241
First, you should get an alert about the authenticity of the host. This is fine, you can go ahead and type yes
to continue connecting.
Next, enter the password ubuntu
when prompted.
A bunch of system information should print out, including a list of how many packages are currently out of date on your system! Don’t worry, we’ll get to those in just a minute.
Go ahead and enter in the current password and create a new, secure password when prompted. As soon as you hit enter, the session will save and then log you out.
Log back in now, but using your new, fancy password.
4. Update your “Le Potato”
Now that everything is up and running and we have access to our “Le Potato”, let’s do a little software housekeeping.
Start by updating the package listings for Ubuntu using apt
.
sudo apt update
And now let’s go through and upgrade all of our necessary packages.
sudo apt upgrade
Before it continues, the apt upgrade
command shows us what all it needs to update and how much data it needs to download. Neat. Go ahead and type Y
and hit enter.
Remember, this is a $35 “computer”, so don’t be surprised if it takes a hot minute for all of the updates to download and install.
Once it’s done updating, I highly recommend rebooting with a sudo reboot
and then reconnecting via SSH.
Congrats, you now have the most up-to-date version of Ubuntu Server 🎉!
5. Change your hostname
Now let’s change the hostname from ubuntu
to something a little cooler.
First, we need to edit the /etc/cloud/cloud.cfg file to prevent the cloud config from overwriting our changes everytime it reboots.
Edit the /etc/cloud/cloud.cfg file and set preserve_hostname to true
sudo nano /etc/cloud/cloud.cfg
Scroll down to the preserve_hostname entry, change it to true, then save and exit by typing Ctrl + x
, then hitting y
and then hitting enter.
Now, you can change your hostname with the following command. I’m going to change mine to tater-tot
sudo hostnamectl set-hostname tater-tot
Go ahead and disconnect and SSH back into your Le Potato and you should see the command prompt updated with your new hostname!
Finally, if your want to set up a new user, firewall rules, or more, DigitalOcean has great guides that will walk you through, step-by-step.
6. Install Docker and Docker Compose
Now that our “Le Potato” is hot and fresh with the latest Ubuntu packages, let’s install Docker and Docker Compose so that we can use all of the amazing Docker images out there for us!
To install Docker, follow steps 1 and 2 of this DigitalOcean guide. It will walk you through downloading required packages and setting up Docker.
Once it’s installed, you should be able to run sudo systemctl status docker
and get a nice output like so:
Finally, install Docker Compose using this other great DigitalOcean guide.
Make sure not to skip the first step where you find the latest version available and update the first command to reflect it and the aarch64
architecture of the Le Potato.
At the time of this writing, the new current version was 2.20.2
so my command looks like this:
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-aarch64 -o ~/.docker/cli-plugins/docker-compose
Once you’re done, docker compose
will be ready to roll!
6. Take over the world!
That’s it!
You are now the proud owner of a hot and fresh “Le Potato” running the most up-to-date version of Ubuntu Server 22.04 with Docker and Docker Compose installed and ready to go!
Go forth and tinker! 🎉