For the complete documentation index, see llms.txt. This page is also available as Markdown.

Ubuntu on i.MX8MP

The official Ubuntu Distribution was tested functional on several SolidRun i.MX8M Plus based systems.

Previously this required distro maintainers support with custom boot-scripts and workarounds. Modern U-Boot ships the required facilities for booting a generic Linux distro designed for UEFI (with Device-Tree).

The instructions below show how Ubuntu Server 26.04 can be installed on SolidRun i.MX8MP Hummingboard Pro and similar boards.

Install UEFI capable Bootloader

A special build of u-boot bundling upstream compatible device-tree is required, and should be installed to eMMC boot0 partition.

Download the a special u-boot microsd image here, and write it to microSD using dd, win32diskimager or etcher.io. (It was generated from a development version of SolidRun BSP based on LF-6.6.62-2.0.0 U-Boot and Device-Tree from Linux v7.2-rc6: imx8mp_build@979d8e2, sha1sum c0875f4959671be48b7f180ef8322ce7ed29a6c0)

Configure boot-select switches for microSD (S3: ON-ON-X-X-X-X: from left to right switches numbered 1-6, X= don't care).

Power-on the device with serial console connected, and interrupt u-boot at the timeout:

...
Hit any key to stop autoboot:  3

Then issue below commands for enabling and programming the eMMC boot0 partition:

load mmc 1:1 $kernel_addr_r u-boot-mmc-boot0-979d8e2.bin
mmc dev 2 1
mmc write $kernel_addr_r 0 0x2000
mmc partconf 2 0 1 1

Change boot-select switches for eMMC (S3: ON-OFF-X-X-X-X: from left to right switches numbered 1-6, X= don't care).

Remove microSD and press reset button, confirm that the serial console shows similar messages as before and u-boot cli can be reached.

U-Boot is now installed to eMMC boot0 partition.

Prepare Installation Media

Download Ubuntu Server for ARM iso, e.g. "ubuntu-26.04-live-server-arm64.iso".

Write the iso to a USB Flash-Drive or microSD using dd, win32diskimager or etcher.io.

Boot Installer

Connect installation media, then power-on the device. Monitor the serial console and interrupt the u-boot timeout:

Press any key, then disable video console output (it corrupts the serial console grub ui):

Default boot-order is USB, microSD, eMMC. If no other OS is detected first, the Installer should boot automatically showing the GRUB Menu. However if a previous installation set some UEFI variables to impact boot order, run eficonfig u-boot command to fix it by selecting "Change Boot Order" and unchecking the default built-in disks:

Ubuntu Installer GRUB Menu

Save and Quit, Reset and Ubuntu GRUB Menu should show automatically:

Ubuntu Installer GRUB Menu

Press E key (no shift) to edit the highlighted "Try or Install Ubuntu Server" option. Navigate to the line starting with "linux", delete the existing "console=tty0" option and append "module.sig_enforce=0 initcall_blacklist=simpledrm_platform_driver_init":

Ubuntu Installer GRUB Menu, Edit Entry

Press CTRL + X (or F10) to boot the installer.

Wait for the installer to boot fully, eventually it will show a welcome screen. In case network was connected there will be a "View SSH instructions" button at the bottom:

Ubuntu Installer Welcome with SSH Instructions

Install

Follow the Installation Screens.

Graphical Desktop

Ubuntu Desktop can be installed after the fact and is functional:

Ensure there is enough space, 8GB eMMC is not enough.

Disclaimer

SolidRun i.MX8M Plus based platforms are supported in Ubuntu as a community effort without formal aggreements or guarantees.

Last updated