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

Fedora on LX2160A

The official Fedora Distribution Server Edition 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 Fedora Server 44 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 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

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

Due to a bug in uefi smmu tables configuration, one of the two built-in crypto accelerators must be disabled.

Enable power and break again at the u-boot prompt, then use edit command to add fdt fixup:

Finally power-off device.

Prepare Installation Media

Download Fedora Server for ARM aarch64 systems netinstall or dvd iso, e.g. "Fedora-Server-netinst-aarch64-44-1.7.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.

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.

Fedora Installer GRUB Menu

Press enter key to start the highlighted "Test this media & install Fedora 44" option.

Wait for the installer to boot fully, eventually it will show a welcome screen. For graphical install press "1) Use graphical mode via Remote Desktop Protocol", follow the menu and it will print IP address for connecting.

Fedora Installer Welcome with RDP Option

Connect to the graphical installation menu e.g. using freerdp:

Fedora Installer Welcome with RDP Option

Install

Follow the Installation Screens.

At completion the installer will show an error dialog because it failed to set next boot target in uefi runtime services:

Variable storage is not supported, and this error is expected. The installation has completed and the installed system can be booted:

Fedora Installer Error

Select "Quit", RDP session will end and initiate system reboot. When the u-boot prompt appears again, unplug installation media (usb drive).

Then depending on boot-order fedora should boot automatically as long as installation drive was listed first, i.e.:

mmc0 is microSD, mmc1 is eMMC, nvme is any nvme drive, default boot-order: usb0 mmc0 mmc1 nvme0 scsi0 scsi1 scsi2 scsi3 pxe dhcp

This can be changed on u-boot cli with edit command:

First Boot Login Workaround

Because the installer aborted earlier, it failed to actually create user-accounts, set passwords and label selinux contexts.

As a work-around for first boot, stop on the grub menu. Press E key (no shift) to edit the highlighted "Fedora Linux ... (Server Edition)" option. Navigate to the line starting with "linux", append "enforcing=0 init=/bin/bash":

Fedora System GRUB Menu
Fedora System GRUB Menu, Edit Entry

Press CTRL + X (or F10) to boot Fedora.

Once bash shell (bash-5.3# ) appears, mount rootfs rw, set initial root user password, and reboot:

On next boot stop in grub menu again, but only append enforcing=0. Fedora will boot to login-prompt, and the root password should work.

Now perform selinux relabeling, and reboot again:

Finally on next boot login will work by default without error:

Future Work

There is a path to implementing UEFI Variable Storage by combining optee-os and an eeprom on a dedicated i2c bus on LX2160A CEX-7 module. Given sufficient interest it can be implemented.

Disclaimer

SolidRun LX2160A based platforms are supported in Fedora as a community effort without formal agreements or guarantees. Vendor-specific features such as DPDK or 25/40/100Gbps networking might not work well.

Last updated