> For the complete documentation index, see [llms.txt](https://dev.solid-run.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dev.solid-run.com/nxp/lx2160a/sbc-platform/lx2160a-software/ubuntu-on-lx2160a.md).

# Ubuntu on LX2160A

The official [Ubuntu Distribution](https://ubuntu.com/) was tested functional on several SolidRun LX2160A based systems.

Previously this was made possible by using a real EDK-2 based UEFI Firmware and ACPI Tables, which was eventually discontinued due to friction in the ACPI standardization process.

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 LX2160A Clearfog-CX and similar boards.

## Install UEFI capable Bootloader

Download an SPI Flash bootloader binary from [images.solid-run.com](https://images.solid-run.com/LX2k/lx2160a_build) suitable to your board and sdram speed. Use "ls-6.6.52-2.2.0" branch and a build dated "2026-07-02" or later.

E.g. on Clearfog-CX with DDR4-2600 get `ls-6.6.52-2.2.0/2026-07-02-c90bec0/lx2160a_rev2_cex7_clearfog-cx_multi_2000_700_2600_8_5_2-c90bec0.img.xz`.

Some configurations are not available in `*_multi_*` variant. In that case download separate `*_sd_*` and `*_xspi_` images.

Program the SD-bootable image (after decompression) to a microSD, configure boot-switches for SD-Boot (usually OFF-ON-ON-ON-OFF), and boot to the U-Boot CLI:

```
Hit any key to stop autoboot:  0 
=> 
```

If using separate `*_sd_*` and `*_xspi_*` images, swap media now to insert fat- or ext4-formatted drive containing the SPI Flash binary renamed to `xspi.img`.

Now write the SPI Flash:

```
=> ls mmc 0:1 /
<DIR>       4096 .
<DIR>       4096 ..
<DIR>      16384 lost+found
        67108864 xspi.img
       748683264 emmc.img

=> load mmc 0:1 $kernel_addr_r xspi.img
67108864 bytes read in 2800 ms (22.9 MiB/s)

=> sf probe
SF: Detected mt35xu512aba with page size 256 Bytes, erase size 128 KiB, total 64 MiB

=> sf update $kernel_addr_r 0 0x4000000
device 0 whole chip
30146560 bytes written, 36962304 bytes skipped in 81.584s, speed 849479 B/s
```

Finally return boot-switches to SPI (usually OFF-OFF-OFF-OFF-OFF) and remove microSD.

## Prepare Installation Media

Download [Ubuntu Server for ARM](https://ubuntu.com/download/server/arm) iso, e.g. "ubuntu-26.04-live-server-arm64.iso".

Write the iso to a USB Flash-Drive or microSD using [dd](https://man7.org/linux/man-pages/man1/dd.1.html), [win32diskimager](https://win32diskimager.org/) or [etcher.io](https://etcher.balena.io/).

## Boot Installer

Connect installation media, then power-on the device.

Default boot-order is USB, microSD, eMMC, NVMe, SATA, PXE. If no other OS is detected first, the Installer should boot automatically showing the GRUB Menu:

![Ubuntu Installer GRUB Menu](/files/34OsZGbuHwNpoYROMoS4)

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 "iommu.passthrough=1":

![Ubuntu Installer GRUB Menu, Edit Entry](/files/DgXrZK9JKhJmUuwn0yhl)

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](/files/nd1CeSTAmwZqvVQYH0j3)

## Install

Follow the Installation Screens.

## Disclaimer

SolidRun LX2160A based platforms are supported in [Ubuntu](https://ubuntu.com/) as a community effort without formal aggreements or guarantees. Vendor-specific features such as DPDK or 25/40/100Gbps networking might not work well.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://dev.solid-run.com/nxp/lx2160a/sbc-platform/lx2160a-software/ubuntu-on-lx2160a.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
