Install Ubuntu Server 20.04 on Intel Compute Stick Guide

Intel Compute Stick
Intel Compute Stick*

My primary purpose for buying the Intel Compute Stick was to have an ultra portable x86_64 server to get around ARM limitations. Therefore the dated Ubuntu 14.04 GUI install had to go. In this guide we will walk through installing Ubuntu Server 20.04 on the Intel Compute Stick!

Hardware

For this project I used the Intel Compute Stick.* It costs about the same as a Raspberry Pi (update: no longer costs less than a Raspberry Pi, but still much less than a full computer!) making it an extremely cheap x86_64 single board computer. It has a Intel Atom 1.33GHz 64 bit processor and 1GB of RAM. This one is the cheapest one. There are various more expensive models that have more USB ports and run Windows 10 and have much more memory/power.

Intel Compute Stick
Intel Compute Stick*

Since this model of Compute Stick only has 1 USB port you will need a USB hub if you don’t already have one. It does not need to be powered for this guide. I used a cheap Sabrent USB 3.0 hub:

Sabrent Powered USB Hub
Sabrent Powered USB 3.0 Hub

The Sabrent powered USB hub delivers a whopping 2.5A of dedicated power for your USB attached devices. This is almost as much as the Pi adapter itself is rated for (3.0A). It will easily power the most thirsty of setups such as NVMe enclosures.

Links: Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.co.uk*, Amazon.es*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*

Note: Make sure Amazon doesn’t try to take you to the non-powered version and that it’s the one with the AC adapter that plugs in to provide extra power

And last but not least you will need a USB Ethernet adapter. I used my trusty Belkin USB 2.0 adapter.* Make sure yours is Linux compatible, preferably plug and play without needing extra drivers.

Belkin USB 2.0 Ethernet Adapter
Belkin USB 2.0 Ethernet Adapter*

Recommended SD card (optional):

SanDisk Extreme A1
SanDisk Extreme A1

The SanDisk Extreme A1-A2 SD card has the best scoring SD card on Pi Benchmarks for years and is second in popularity only to the SanDisk Ultra (often included in combo kits). The application class (A1) means random I/O speeds (very important when running an OS) have to meet a higher standard. There’s no benefit on the Pi for A2 right now so get whichever is cheaper/available.

Links: AliExpress*, Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*

Prepare Installation Media

Download Ubuntu Server from Ubuntu Server Official Download Page and create a bootable USB flash drive with whatever your favorite method is (Etcher, Win32DiskImager, etc).

Update BIOS

First we need to update the Compute Stick’s BIOS. My Stick came out of the box with a BIOS that was 3 years out of date. Go to https://downloadcenter.intel.com/ and search for your model of Intel Compute Stick (mine is STCK1A8LFC). You’ll see the BIOS update on the search. Go there and download it (it’s a .BIO file) and put it on your USB flash drive.

Now plug your flash drive into the Intel and power it on. Repeatedly press F7 during startup. This will take you into a “BIOS Flash Update” screen. Select your flash drive and navigate to where you put the .BIO file. Select this file and confirm that you want to flash. After about 2 minutes the stick will finish updating the BIOS and restart.

Configure BIOS Settings

Boot the compute stick and repeatedly press F2 during startup until you enter the BIOS menu. Choose the “Configuration” tab at the top. Make sure that USB Boot is set to “Enabled” and power state is set to “Always On”. Make sure the peripherals are enabled such as USB and SD Card (if using).

If you have a Windows version of the compute stick you need to change the “Select Operating System” option from Windows to Ubuntu. Press F10 to save BIOS settings.

Install Operating System

Insert your USB flash drive with Ubuntu Server on it. Restart the stick and press F10 repeatedly until you get into the boot selection screen. Choose your flash drive and the Ubuntu installer will load.

Choose your language and and proceed to the Install Ubuntu screen. Make sure that the stick is getting an IP address through your USB ethernet adapter. Proceed with the defaults until you get to the Filesystem setup screen. Choose “Use an Entire Disk” and select either the internal storage (limited space, mine was ~8GB) or your SD card. Confirm settings and press done.

Enter your desired username/password in the profile setup screen. Configure snaps if you want any (or just configure the OS once it’s booted how you want it). The operating system will now install to your chosen drive.

First Boot

Initially you may be seeing some warnings. Ignore these for now as we will fix them after updating.

The first thing you want to do is update your Ubuntu. Type:

sudo apt-get update && sudo apt-get dist-upgrade -y

Reboot your system. This will put you on the latest kernel, linux-firmware, amd64-microcode and other important packages that will fix a bunch of issues right off the bat.

Fixing Warnings

If you installed to the internal storage you may be seeing warnings such as systemd-gpt-auto-generator : Failed to dissect: Input/output error. To fix this we will edit our kernel boot parameters. The details of why we get this warning have to do with the internal MMC storage and are extraordinarily dull. You can google it if you want more details but to just fix it type:

sudo nano /etc/default/grub

Scroll down to the line GRUB_CMDLINE_LINUX_DEFAULT=””. This is where we will add systemd.gpt_auto=0 in between the empty quotes to stop the warnings. The correct line after you change it will be:

GRUB_CMDLINE_LINUX_DEFAULT="systemd.gpt_auto=0"

Press Ctrl+X and then answer yes to save our changes. Then we need to tell grub to update the bootloader. We do this by typing:

sudo update-grub

Now reboot your system and the gross warnings will be gone!

Run Trim

Trim is a command that tells your storage to overwrite anything on the drive that is considered “free space”. This is essentially the same as “optimizing” your drives in Windows. We can run the trim command on all devices with:

sudu fstrim -av

This will give a number of bytes that were trimmed from the storage. You should notice an overall snappier device!

Final Steps

(Optional) – If you want to get more performance out of the Compute Stick we can change the power mode to “Performance” in the BIOS. You will get a warning that only a single USB device will work in this mode because more power is going to the CPU so we will need to unplug our USB hub. Since this is a headless server this should be fine. I use my Ethernet to USB adapter in my only USB port.

You can now switch to using SSH and unplug the device from your monitor/TV. Simply unplug it and point your favorite SSH client at the Compute’s IP.

The Compute Stick is now ready to configure for whatever purpose you have in mind!

Subscribe
Notify of
guest

8 Comments
Inline Feedbacks
View all comments
Michael Aschenborn
Michael Aschenborn
2 years ago

Booting any installer on STCK1A32WFC does not work for me: After selecting th usb-boot-device (or SD-Card) there’s only a black screen.
Tried it with 18.04 and 20.04 and 14.x
Do I have to select a special version?

Tidder
Tidder
5 years ago

I followed these instructions to install Ubuntu Server 19.04 on an Intel Compute Stick STCK1A32WFC (2GB RAM, 32GB MMC internal storage).
Thank you for the useful tips. I would add:
– You need the ALTERNATIVE install package, not the default LIVE package; the LIVE package hangs because it cannot detect the hardware environment.
– Ubuntu 19.04 apparently includes WiFi and Bluetooth support that was not available in 16.04; however I have not tested this

Laurent
Laurent
4 years ago
Reply to  Tidder

Hello any update on this ? Has anybody been able to confirm that wifi and bluetooth work out of the box after Ubuntu Server 19.04 install ? Thank you !

Rob
Rob
5 years ago

I had set up a number of these compute sticks with lubuntu 18.04 for family as a way to add smarts to non smart TVs. One thing you did not mention or encounter, which I did, was the CSTATE issues with this particular Intel CPU that caused repeated hangs and instability. It took a lot of searching to nail this down, so if it affects you this might help. More detail at https://bugzilla.kernel.org/show_bug.cgi?id=109051, but the TL;DR workaround is to add “intel_idle.max_cstate=1” to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub.conf and run update-grub again.

Tilden
Tilden
5 years ago

Has anyone confirmed if this c-state issue applies to the 18.04 server version James was giving instructions for, or is this specific to lubuntu?