We’re pleased to announce the release of Mir 1.1.0. The main thing to note with this release is a new package mir-graphics-drivers-nvidia with support for Nvidia binary “eglstream” drivers.

There are also some bugfixes and some changes upstreamed by PostmarketOS developers building Mir on Musl and the UBports developers preparing to update the Mir version used by their Ubuntu Touch phones.

Nvidia support

Mir’s Nvidia support relies on fairly recent drivers (>= 396) and on ubuntu these are currently only available from the 19.04 archive, which has nvidia-driver-410 . (However, for the bold, ppa:graphics-drivers/ppa has assorted versions for assorted Ubuntu releases.)

Note also that we only build our Nvidia “platform” for the amd64 and i386 architectures.

Finally, we don’t install our “eglstream-kms” graphics platform as part of mir-graphics-drivers-desktop , instead it is installed by a new mir-graphics-drivers-nvidia package.

Mir “kiosk”

Mir is a set of libraries, not an end-user application. But we provide the mir-kiosk snap based on Mir. At the time of writing the Mir 1.1 build is on the candidate channel, and will move to stable once we’ve completed testing:

sudo snap install --beta mir-kiosk

(On classic Ubuntu you currently need to work-around a snapd bug by adding --devmode ).

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.

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

More here: How mir-kiosk enables a graphical IoT using Mir

Developing with Mir

If you are a developer interested in using Mir to develop your own shell then it is important to note that Mir provides you with both sensible default behaviour and a simple, yet powerful, API to customize that behaviour. There are example programs demonstrating how to customize the window management style for “kiosk”, “tiling” and the default “floating” windows.

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

sudo add-apt-repository -yu ppa:mir-team/release sudo apt install mir-graphics-drivers-desktop # Drivers for Mesa "open" drivers sudo apt install mir-graphics-drivers-nvidia # Drivers for Nvidia binary drivers sudo apt install mir-demos # Demo programs sudo apt install libmiral-dev # Development libraries & headers

Wayland extension protocols

There are many Wayland “extension protocols” to provide specialized support for specific needs. As anyone can define a bespoke extension protocol it would be impractical to support everything, but Mir will continue to implement those protocols that are important for the projects that it supports. With the Mir 1.1.0 release the list of supported extension protocols is:

protocol name=“wayland” protocol name=“xdg_shell_unstable_v6” protocol name=“xdg_shell”

These are sufficient for the vast majority of desktop and IoT applications.

egmde snap

While egmde works with Mir 1.1 it does not yet work with the “eglstream” support for Nvidia drivers, nor is the driver included in the egmde snap.

The reason egmde doesn’t work with these drivers is that Mir only supports Wayland clients on Nvidia (and not those using the legacy “mirclient” API). That means there is some code needs rewriting. (As egmde is my “hobby” project I expect to find time over the coming weeks to do this - and write about it.)

Changelog

Here’s the detailed changelog for the Mir 1.1.0 Release: