IoT Graphics: Mir Release 1.0

by Alan Griffiths on 21 September 2018

The Mir team is pleased to announce the milestone release of Mir 1.0.0. This is the first major release targeted at IoT device makers and enthusiasts looking to build the next-generation of graphical solutions.

Mir is a display server and is used by other projects to draw graphics on the screen. The Mir team have created mir-kiosk, a fully functional kiosk implementation that satisfies many IoT-related use cases: Running a kiosk on Ubuntu Core showcases a set of Qt applications as examples apps you could run on a kiosk.

The fast, open and secure display server

Whether for building a device or for writing a shell for the desktop, Mir can give you a graphics stack that is fast, light, and secure. The Mir graphical stack works across different graphics platforms and driver models and is easy to integrate into your kiosk, digital signage, or purpose built graphical solution. It was first conceived over 6 years ago as part of an initiative by Canonical to unify the graphical environment across all devices, including desktop, TV, and mobile devices and continues to be developed with new features and modern standards.

Applying Mir to the Internet of Things

Many types of device need to provide some sort of graphical output or display to the user. Some examples include digital signage, interactive kiosks, automotive in-car entertainment gateways, smart meters, and the screens seen on everything from washing machines to smart thermostats. All of these need to output graphics to a display but that it is not always easy in an embedded environment.

Linux is one of the most popular OS choices for manufacturers and solution providers to use in IoT devices and with it there are a few options available for graphical environments. From custom software to drive the display, through direct frame buffer access with toolkits such as Qt, to a full X windowing server.

Mir allows device makers to use a well-defined, efficient, flexible, and secure platform for their graphical environment.

Why Wayland?

Wayland is intended as a simpler replacement for X, easier to develop and maintain…
…Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol.

Historically, graphical user interfaces on the Linux platform have been powered by the X windowing system. X has a long and successful history and it has served the purposes of both system level and application level UI well for more than three decades. However, users nowadays expect a more consistent, integrated and secure user experience than is possible to offer on top of the X windowing system.

The X11 protocol (used by X) was not designed with security in mind and a malicious application can obtain information from other running X11 applications. For instance X11 servers do not protect sensitive information like keystrokes between applications using them.

Mir has been designed from the ground-up with security in mind. To meet the needs of today’s users, Mir avoids the X11 protocol and uses Wayland. Each application talks exclusively to the Mir server through its own connection that is both secure and robust against attack. Wayland is the de facto successor to X11 and is designed to address the problems that have proved intractable with the X windowing system.

Applications that can use Wayland directly and will work with Mir include those built with GTK3/4, Qt5 and SDL2.

Using Mir

For more about developing graphical snaps for IoT applications, including tutorials for creating your own snaps, see: mir-kiosk: a project that uses Mir

Developers using Mir will find it packaged and available on Ubuntu, Fedora, Arch and (soon) Debian. The latest Mir release is available for all supported Ubuntu series from the Mir team’s “release PPA”:

sudo apt-add-repository --update ppa:mir-team/release

Mir’s website is:

Newsletter Signup

Related posts

How to ensure your snap uses the correct theme

An app is an app is an app. But in the world of Linux, things are a little more nuanced. Take VLC as an example. The software may be packaged ever so slightly differently in various Linux distribution archives, even different releases of the same distribution – the av01 codec is an interesting use case […]

Top 10 apps for a fresh Linux install in 2021

Are you struggling with too much lag? Is it time for a spring clean and a fresh Linux install? Ready to upgrade to Focal Fossa (LTS) or Hirsute Hippo? Whatever situation you are in, get started quickly with some of the most popular apps you need for a fresh Linux install. Here are all the […]

A technical introduction to the Snap Store Proxy

In the world of IoT, it is crucial to be fully in control of your devices. Over-the-air (OTA) updates are essential for a distributed set of devices. This must be carefully managed to ensure that an update is not pushed at a time where the device is active and operation should not be interrupted. To […]