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: 3Then 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 1Change 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:

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

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":

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:

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