Your submission was sent successfully! Close

Thank you for contacting us. A member of our team will be in touch shortly. Close

You have successfully unsubscribed! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates about Ubuntu and upcoming events where you can meet our team.Close

Graphical environments in the world of IoT

Tags: developers , IoT , mir

This article was last updated 5 years ago.


The IoT promises to bring about a revolution in the way we interact with devices around us. While many IoT devices will be hidden away, from sensors that measure manufacturing tolerances in a factory to hubs that control lighting around the home, there are a class of devices that 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 plethora of display screens seen on everything from washing machines to smart thermostats. All of these examples need some way to output graphics to a screen display but in an embedded environment that is not always easy.

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. All of these options have their pros and cons and often it is a trade-off between custom software and off-the-shelf components to speed up development. Custom software takes time and requires developers to continue to maintain a code base for the lifetime of the device, while using a graphical toolkit such as QT requires less code but comes with commercial licencing. The open source X windowing server is a popular choice but, being over 30 years old, has some shortcomings. It has been well documented that the design of X windows, although revolutionary at the time, has some security risks especially around application isolation and privilege escalation which has led to efforts to replace it by redesigning the graphical server from the ground up. One such effort is Mir.

Mir is a system-level implementation of a graphical server that is fast, light, and secure. The Mir graphical stack works across different platforms and driver models and is easy to integrate into many IoT solutions. 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 like the Wayland protocol. As Mir is designed specifically with security in mind, the problems that X windows has are not applicable to Mir. Memory and disk space usage is much lower than other solutions making Mir an excellent choice for the IoT.

Often, today’s front-end environments use web technologies to provide a featureful interactive user interface. This means that supporting a browser environment is paramount for a display server. Fortunately, Mir handles this incredibly well. It has full support for the WebKit environment that is used by Apple’s Safari and many others and is capable of rendering pages just like modern browsers. Mir also supports Electron which is becoming increasingly popular for application developers and is used by projects such as Skype, Slack, and WhatsApp.

For a complete IoT environment you also need an OS and Ubuntu is one of the most popular choices today. Whether that is Ubuntu Core, classic or server, Mir is available to provide the graphical support needed. What we are seeing in the world of the IoT is an increasing use of Ubuntu Core and Mir especially in conjunction with mir-kiosk the easiest way to have a fully-featured web environment on Linux. A kiosk or smart display is a full-screen app running on a device, with the sole purpose of driving that display to provide specific information or a particular function. Mir-kiosk is one implementation of that functionality, running on top of the Mir display server.

When you have the power of web technologies and a solid, secure Ubuntu platform, many IoT use cases become as simple as installing Ubuntu and mir-kiosk. Full instructions on how to do that, including testing it out in a virtual environment first can be found here. One concrete example of what is possible when you combine these technologies is greenhouse crop monitoring. Using Ubuntu Core, Mir, a small LCD display, low-cost temperature sensors and a Raspberry Pi 3, it is possible to set up a high-tech 24/7 monitoring solution to help understand and control the environment in which crops are grown. In this example, a range of free and open source software is used to produce a graphical dashboard with Ubuntu and Mir at the core. More information on that example can be found here.

If you are looking for a modern, secure, and featureful solution for your graphical IoT needs then Mir provides one of the easiest ways to get there fast. For more information on Mir head on over to the project’s website.

smart start

IoT as a service

Bring an IoT device to market fast. Focus on your apps, we handle the rest. Canonical offers hardware bring up, app integration, knowledge transfer and engineering support to get your first device to market. App store and security updates guaranteed.

Get your IoT device to market fast ›

smart start logo

IoT app store

Build a platform ecosystem for connected devices to unlock new avenues for revenue generation. Get a secure, hosted and managed multi-tenant app store for your IoT devices.

Build your IoT app ecosystem ›

Newsletter signup

Get the latest Ubuntu news and updates in your inbox.

By submitting this form, I confirm that I have read and agree to Canonical's Privacy Policy.

Related posts

EdgeIQ and Ubuntu Core; bringing security and scalability to device management 

Today, EdgeIQ and Canonical announced the release of the EdgeIQ Coda snap and official support of Ubuntu Core on the EdgeIQ Symphony platform. EdgeIQ Symphony...

Canonical provides the ideal platform for Microsoft Azure IoT Operations

London, 19 November 2024. Canonical has collaborated with Microsoft as an early adopter partner and tested Microsoft Azure IoT Operations on Ubuntu Core and...

What is IoT device management?

IoT device management refers to processes or practices used to deploy, monitor and maintain IoT devices. As organizations scale up their IoT efforts, a solid...