banner apertis touchscreen display

Getting Started with Apertis on Raspberry Pi (Full Guide)

If you click our links and make a purchase, we may earn an affiliate commission. Learn more

The Raspberry Pi ecosystem is rich with operating systems for the desktop, media centers, and even pentesting. But what about for embedded applications, like an automotive dashboard, robot, or factory controller, where other people will be using your device? Today, I’ll go over how to install an OS for this purpose called Apertis.

Apertis is an operating system for embedded systems where stability, reliability, and consistency are of the highest importance. It can be installed on a Raspberry Pi through Raspberry Pi Imager and tailored for custom use cases.

Let’s start with a quick explanation of who might want Apertis. Then, I’ll give you a quick-start guide on how to install it on a Raspberry Pi and finish with a brief review of my initial impressions.

If you’re new to Raspberry Pi or Linux, I’ve got something that can help you right away!
Download my free Linux commands cheat sheet – it’s a quick reference guide with all the essential commands you’ll need to get things done on your Raspberry Pi. Click here to get it for free!

Overview of Apertis

In plain language, Apertis is an OS for custom applications where it’s important to have 24/7 stable uptime. You want your robot ready for mission-critical tasks, not have it malfunction because an auto-update borked the software!

Apertis is not a daily driver OS, like Raspberry Pi OS or Manjaro. Instead, it’s designed for building a Raspberry Pi device that will be used by others, so that they can’t accidentally break the system when you’re not around to fix things.

Use Cases for Apertis

Below are some examples of embedded systems that might use Apertis on Raspberry Pi.

Automotive Dashboard – If you still dream about making your own Knight Rider carputer, this is the type of application that Apertis was originally made for.

(credit: Yifu Wu)

IoT Devices – My favorite smart home devices are the ones that never go down and don’t need to ever be managed. Apertis fits well as an OS for IoT applications.

Kiosks – Imagine any situation where a user will tap on a screen to receive service. For instance, maybe you have a menu that customers can use to order sushi. Apertis is built for touchscreen kiosks.

Game Systems – One of the more well-known uses of Apertis in the wild is inside the Atari VCS game console.

(credit: Atari)

Industrial Controllers – In a factory setting or on a work site is where Apertis might shine most. For example, the Bosch D-Tect 200 scanner runs Apertis and detects water pipes and live wires behind floors and walls.

(credit: Bosch)

Hardware Requirements for Apertis

  • Raspberry Pi – Only the Raspberry Pi 4 or Pi 3 are explicitly supported at this time. The Raspberry Pi Compute Module equivalents (CM4 / CM3) are also supported.
  • Memory – Apertis will run on all supported models with as little as 1GB RAM. How much memory you will ultimately need will depend on what you want your device to accomplish.
  • Storage – a micro SD card with 16GB is enough for a barebones install. I recommend 32GB or more for some breathing room if you’re planning on installing lots of applications.

Apertis Images Explained

Apertis is based on the Debian Linux distribution. This means that Apertis v2025 gives you all the software versions supported by Debian Bookworm. With the recent release of Debian Trixie, Apertis plans to incorporate Trixie in a v2026 release planned for next year.

Apertis has four different images you can choose from.
You’ll have to make a decision about which image best fits your goal.

Here’s a quick summary of what each Apertis image does differently:

  • Headless Image – Use this image if you don’t need a graphical interface. It’s best for systems with the lowest resource usage, like a smart home IoT device.
  • OSTree Headless Image – This image has the same base as the previous one (no GUI), but the special thing is that it supports version management and rollback.
  • Graphical Image – Choose this image if you need users to be able to interact with your Raspberry Pi via a graphical interface, such as a touchscreen display.
  • OSTree Graphical Image – This image has the same base as the previous one (GUI), but it supports version management and rollback.

For this guide, we’ll be using the Graphical Image as an easy way to test Apertis and its touchscreen functionalities.

The OSTree images have unique features, but they’re more for enterprise, like if your company hosts a GitHub where you store a custom image and/or custom software. For example, maybe you need to manage hundreds of autonomous RC cars that need to be strictly version-managed so that they function identically.

Lost in the terminal? Grab My Pi Cheat-Sheet!
Download the free PDF, keep it open, and stop wasting time on Google.
Download now

How to Install and Configure Apertis

If you want to take Apertis for a test drive, let me give you a quick-start guide on how to install it on your Raspberry Pi. In this section, we’ll cover how to:

  • Flash Apertis onto an SD card.
  • Configure the system.
  • Install applications via Flatpak.

Flashing the Apertis Installation Image

Installing Apertis onto a Raspberry Pi is the same as how you’d do it with other operating systems. You flash the image onto an SD card and then boot your Pi with it.

Here are the steps in detail:

  • Insert an SD card into your PC or Raspberry Pi using a USB SD card reader.
    If you don’t have a reader, you can use network boot installation instead.
  • Launch Raspberry Pi Imager.
    If you don’t have Imager yet, download it here.
  • Click Choose OS.
    Navigate to Other general-purpose OS > Apertis, and select the stable image.
  • Select your preferred image type.
    To follow this guide, choose Apertis v2025 Graphical Image.
  • Click Choose Storage, and select your SD card.
  • Hit Next to start the writing process.
    When the pop-up asks about OS customization, choose No.
    Apertis doesn’t support these settings.

Imager will begin writing Apertis to your SD card.
Once it’s done, remove the SD card, pop it into your Raspberry Pi, and power it on.

Configuring First Boot

Now that you’ve installed Apertis, I’ll show some basic ways you can configure your system.

When Apertis boots, it logs you in automatically and takes you straight to the GUI. As you can see, it’s quite bare, without even a network or system settings in the main menu.

That’s because you’re meant to customize Apertis to your use case. More on that later.

If you have a touchscreen display that connects via HDMI or USB (like the SunFounder TS-10 or RasPad 3), it will probably work out of the box. Touchscreens that connect via GPIO or I2C are also supposedly supported with a little extra work.

Take note of the default login credentials:
username = user
password = user

At first glance, Apertis appears to function identically to Debian.
For instance, update commands work the same:
sudo apt update
sudo apt upgrade

Updates pull from custom Apertis repositories

If your Raspberry Pi is already connected via Ethernet, you’ll find that an SSH server is already up and running. So you can connect from another PC if you’d like to follow the next steps.

Other common system setup tasks—like setting the machine’s hostname, changing your user password, or managing system services—all work the same as on other Debian-like distros.

But aside from those standard tasks, Apertis has modified the base system to work quite differently from the way you might expect. We’ll cover these situations next.

Optional: Connecting to Wi-Fi

The first difference is how internet connections, especially Wi-Fi, are managed in Apertis. The default daemon is ConnMan instead of NetworkManager.

Note: I recommend configuring Apertis with Ethernet, if possible. Wi-Fi worked, but had issues along the way.

Wi-Fi doesn’t work out of the box. It turns out, Apertis blacklists the Raspberry Pi’s Wi-Fi interface by default. I’m not sure why—perhaps for security—but I couldn’t find it anywhere in the documentation, so it took me a bit to figure it out.

Lost in the terminal? Grab My Pi Cheat-Sheet!
Download the free PDF, keep it open, and stop wasting time on Google.
Download now

First, we have to allow the Wi-Fi adapter to work with ConnMan:

  • Open the ConnMan configuration file:
    sudo vi /etc/connman/main.conf
    The nano text editor is not available in the default repo, so get comfortable with using vi/vim.
  • Find the line that starts with NetworkInterfaceBlacklist:
  • Comment this line out by adding a hashtag in front of it:
    # NetworkInterfaceBlacklist = ...
    (or simply delete “wlan” from the list).
  • Save and quit (ESC, :wq).
  • Restart the ConnMan service to load your new configuration:
    sudo systemctl restart connman

Now that the wireless interface is enabled, we’re ready to use ConnMan to connect to Wi-Fi:

  • Enter interactive mode:
    connmanctl
  • Scan for wifi networks and list the ones found:
    scan wifi
    services
  • Copy/paste the label assigned to your network.
    It’s something long like wifi_xxxxxxx_psk.
  • Connect to the desired Wi-Fi network (replace wifi_xxxxx_psk below with yours):
    agent on
    connect wifi_xxxxxxxx_psk
  • When prompted, enter the Wi-Fi passphrase.
    You should be connected now. Type the ‘services’ command again, and you’ll see an asterisk(*) next to your network name.
  • Optional: turn on auto-connect:
    config wifi_xxxxx_psk --autoconnect yes
  • When you’re all done, quit:
    exit

Check if your wireless interface received an IP address:
ip a

Optional: Expanding the Home Partition

The default install makes a separate user partition (mmcblk0p4, on an SD card), but if you have a bigger SD card, it doesn’t use up all of the free space.

Only 8GB is used for /home when 45GB is still available.

The first thing I tried to do was expand the user partition (mmcblk0p4). However, I ran into a roadblock here as all of the common partitioning utilities—like fdisk or parted—could not be installed.

The commands resizepart and resize2fs are included by default and do work, but they’re much too inelegant a way to do things. Perhaps I missed something, but I found no guidance in the Apertis documentation as of this writing.

The easier way to save time? I recommend mounting your SD card on another Linux system and using fdisk or gparted from the GUI to expand the user partition (mmcblk0p4).

Installing Applications

Now that you’ve finally got your Apertis system up and running, it’s time to install some software.

But another aspect of Apertis you might not expect is how user applications should be installed.
Open a terminal, and use this command to poke around:
df -h

Partition #3 is the root partition, but if you notice, it doesn’t have much free space.

The root partition (mmcblk0p3) is already 93% full.

The root partition should only be used to install basic system utilities, using APT:
sudo apt install curl

So, where do we install user applications which require more space?

On Apertis, key user applications should be installed on partition #4 (e.g., mmcblk0p4), which hosts the /home partition. In addition, the system is designed to use Flatpak to manage software.

Apertis is intended for embedded systems that need to work 24/7. To achieve this goal, it uses Flatpak, an open-source software management tool, to install desktop applications.

Flatpak installs apps without admin privileges and also sandboxes them. Besides the security benefits, Flatpak also prevents dependency conflicts. In other words, updating one app won’t suddenly break another.

Lost in the terminal? Grab My Pi Cheat-Sheet!
Download the free PDF, keep it open, and stop wasting time on Google.
Download now

To see what apps you can install with Flatpak, check out the Flathub repository.

Flathub, the (free) app store for Linux

Let’s say I’m creating a touchscreen navigation device for bicyclists to use. I’ve decided that I want to put Organic Maps on my device. I’ll be installing it via Flatpak.

On Apertis, install apps to the home partition by adding the –user flag when issuing Flatpak commands.

Here’s how to add Flathub so you can have more software options:

  • Add Flathub as a Flatpak repo:
    flatpak --user remote-add flathub https://dl.flathub.org/repo/flathub.flatpakrepo

After adding the repo, you can now install apps from Flathub like so:

  • Visit the Flathub page for the app you want to install. For instance, Organic Maps.
  • Click the dropdown next to the “Install” button, and copy the installation command:
  • Paste the command in your terminal, but modify it by adding the –user flag:
    flatpak --user install flathub app.organicmaps.desktop

The new apps I installed showed up under the Apertis menu after a reboot:

On the rare occasions you decide an update is necessary for an embedded system, you should prefix the update command too:
flatpak --user update

What if you need an app that’s not on Flathub, or what if your company writes custom software? In that case, you’re supposed to repackage the app as a Flatpak and deploy it that way. There’s a learning curve here, with the reward being no software interdependency.

Customizing the GUI

The interface for Apertis starts minimalist, but it can be modified in every way according to the official documentation. The UI can be completely something of your own, with the end user having no idea that it’s Apertis under the hood.

But this is another aspect where Apertis deviates from most Linux distros. In Apertis, drawing the desktop is handled by Weston, a Wayland compositor. Therefore, to modify the graphical interface, you must modify the Weston configuration.

Unfortunately, it’s not easy to figure this out, and Apertis doesn’t provide any examples as of this writing.

For starters, the shortcuts in the main menu for my programs have .desktop entries stored in: /home/user/.local/share/flatpak/exports/share/applications/

To add shortcuts to the panel (AKA, taskbar), you can create .desktop entries in: /usr/share/applications/

Customizing the main desktop area is much more of a challenge. It seemed like I would need to define a custom shell, change the background wallpaper to a fixed layout, and then define what happens when a user taps specific coordinates on the screen.

I didn’t have much success in this area. Either way, I found this process quite opaque and not well-documented at this time.

Lost in the terminal? Grab My Pi Cheat-Sheet!
Download the free PDF, keep it open, and stop wasting time on Google.
Download now

Here are some resources that may be helpful if you want to tackle UI customization:


🛠 This tutorial doesn't work anymore? Report the issue here, so that I can update it!

If you prefer watching videos instead of reading tutorials, you’ll love the RaspberryTips Community. I post a new lesson every month (only for members), and you can unlock them all with a 7-day trial for $1.

My Initial Impressions of Apertis

Now that I’ve had a little more time to play around with Apertis, below are my final thoughts on running this operating system on a Raspberry Pi.

Stability

Having installed and played with many Linux distros over the years, I would say Apertis is not meant to be beginner-friendly like Ubuntu or even digital display systems like Anthias.

Instead, Apertis is more of a bare-bones, security-focused system that you’ll need some technical savvy to optimize for your specific use case.

In return, Apertis will give you a rock-solid system that operates exactly as you’ve planned it to run, every single boot. And one that’s locked down to prevent users from tampering with or accidentally breaking things.

Speed

Apertis performs perfectly fine on a Raspberry Pi 4, neither slower than Raspberry Pi OS nor faster in any noticeable way, whether that’s rebooting or launching applications.

The installation is minimal, with the graphical image taking up less than 6GB of storage and installing fewer than 500 packages, as compared to other Linux systems, which install thousands of packages. In addition, it uses the lightweight versions of libraries and packages.

Apertis is shipped with a slim LTS kernel that’s less than 50MB.

At idle, the desktop version of Apertis uses less than 0.4GB of RAM and runs fine on just 1GB of RAM, when many Linux systems with graphical environments require 2GB or 4GB to function well.

All of these decisions are important for reducing latency, especially if you’re going to be using a touchscreen. I think the strength of Apertis lies not in pure speed but rather that it runs well even on resource-constrained systems like a Raspberry Pi 3.

Software Support

One final advantage I would say of Apertis is its support for modern software. Many operating systems made for embedded devices achieve stability by relying on ancient packages, but Apertis supports recent Debian versions.

For example, the GUI backend is on Wayland, which is more energy efficient for touchscreen displays and supports gestures like pinch-to-zoom. For audio management, Apertis supports the newer PipeWire, which means lower audio latency than PulseAudio (and fewer configuration headaches).

Since user applications are installed via Flatpak, they’re all managed separately. This reduces single points of failure, which should be a top priority for an embedded system.

Flatpak, however, is far from perfect in my opinion. The main repo was often maddeningly inconsistent, and there are few alternatives. There’s quite a barrier to entry when you can’t get an app you want, and the only solution is to repackage it as a Flatpak yourself.

Apertis has a special OSTree image that offers a lot of unique features, like atomic updates and version rollback, which is what would really make using Apertis worth it for enterprise customers with dedicated technical resources.

If I were a company building a vending machine, a controller for 3D printers, or some touchscreen device that I plan to sell on the market, I would definitely consider Apertis.

If you’re a hobbyist looking for an operating system that’s easier to manage for embedded systems on Raspberry Pi, I would consider these alternatives instead:

Whenever you’re ready, here are other ways I can help you:

Test Your Raspberry Pi Level (Free): Not sure why everything takes so long on your Raspberry Pi? Take this free 3-minute assessment and see what’s causing the problems.

The RaspberryTips Community: Need help or want to discuss your Raspberry Pi projects with others who actually get it? Join the RaspberryTips Community and get access to private forums, exclusive lessons, and direct help (try it for just $1).

Master your Raspberry Pi in 30 days: If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiple projects with step-by-step guides.

Master Python on Raspberry Pi: Create, understand, and improve any Python script for your Raspberry Pi. Learn the essentials step-by-step without losing time understanding useless concepts.

You can also find all my recommendations for tools and hardware on this page.

Similar Posts