Running GNOME Desktop on the ODROID-N2

This article is about how the GNOME Desktop can run on an ODROID-N2 with an upstream Linux kernel v5.4. Fortunately, the upstream kernel has many patches that make the ODROID-N2 run smoothly and I appreciate Neil Armstrong who contributes a lot of patches for Amlogic ARM SoC (Not to mention that walking on the Moon thing. Ed.) and also ODROID user @memeka who actually made GNOME work on the ODROID-XU4 and ODROID-N2, earlier. The core code changes were made by them, I put together the scattered pieces into my personal package repository.

I’ve managed the custom Debian/Ubuntu Netboot Installer with my package repository, and, recently, spent a lot of time installing the GNOME Desktop to my ODROID-N2 using a custom Ubuntu 19.04 Netboot Installer that can be downloaded from Please visit my other article about my custom Netboot Installer and how you can use it.

Installing Ubuntu 19.04 to ODROID-N2

The Ubuntu 19.04 Netboot Installer can be downloaded from and the image can be flashed to MicroSD card using Etcher or the Linux command line tool ‘dd’. If you use Petitboot, the image can be flashed to a USB stick as well. The advantage of installing with Netboot Installer is that the OS can be installed directly to USB storage and you can customize the partition table during installation, if you know how the partition can be managed.

After flashing the Netboot Installer image, the contents look like this. You are not required to touch any of them except ‘preseed.ini’ if you want to install with predefined settings.

Figure 1 - Installer Content

By default, the Netboot Installer is configured to install Ubuntu GNOME Desktop. If you are familiar with the Ubuntu installation steps, you can manually install the OS by changing the key ‘di_auto’ to ‘false’.

Figure 2 - preseed.ini

You can change the predefined values as you see fit, for example, account or the default password. The setting values can be changed later after installation; except for the target disk device, where you install Ubuntu Disco, since the installer will format and overwrite the disk device with the new OS.

Installation takes long

Now you are ready to launch the Netboot installer. It can boot from the MicroSD card slot, eMMC or, even, by Petitboot. The Ubuntu 19.04 Netboot Installer installs the packages through the network, therefore, the installation time could vary depending on the bandwidth of your network or Ubuntu repository server, but eventually, it will install.

Once everything is installed without failure, ODROID-N2 will reboot and GNOME Desktop will start. But you may feel that it runs a bit slower than you expected since the current installer cannot use the Mali Bifrost driver while installing which I’ve tried to fix before publishing the installer image.

Figure 3 - Gnome Desktop up and running

This can be easily solved with an instruction to install the driver by yourself and have it take effect after rebooting:

$ sudo apt install mali-bifrost-wayland-driver
$ sudo reboot
On the next boot, you must check if “Ubuntu on Wayland” is selected on the login screen to make sure Mali Bifrost Wayland driver is running.

Figure 4 - Selection Option for ‘Ubuntu on Wayland’

Testing Mali Bifrost Wayland Driver

The simplest example to perform is with glmark-es2–wayland, which can be done with the following command:

$ sudo apt install glmark2-es2-wayland
Figure 5 - GLMARK2 Demo

I also have built Qt5 (5.12.2+dfsg-4ubuntu1.1), as well, to run on GNOME Desktop with Wayland. Therefore, QtWayland5 has to be installed. I’ve observed that many Qt5 examples are not working properly with the build, but it’s still good to test.

$ sudo apt install qt5-default qtwayland5
Figure 6 - QT5 Wayland test

Known Issues

Gnome-terminal cannot be launched if installed with a predefined profile. This is an issue I couldn’t solve and happens only if you installed the OS with the predefined profile ‘ubuntu-gnome-desktop’. The workaround for this issue is to run the two instructions on the shell command line after connect to your ODROID-N2 or opening a console screen and this takes effect after rebooting.

$ sudo locale-gen — purge en_US.UTF-8
$ echo -e ‘LANG=”en_US.UTF-8"\nLANGUAGE=”en_US:en”\n’ | sudo tee /etc/default/locale
$ sudo reboot
Missing features compared to the stock kernel v4.9 for the ODROID-N2:

The upstream kernel is being updated by many developers, especially thanks to Neil Armstrong who contributes a lot of patches to upstream kernel for Amlogic SoC and @memeka who actually made GNOME work with the Mali Bifrost blobs. The kernel will keep updating often and will be uploaded without notice, but Ubuntu will let you know whenever an update happens.

For more information, please see the original article post at

Be the first to comment

Leave a Reply