Convert to eLxr

This guide explains how to convert an existing SiMa.ai Yocto-based DevKit to the new eLxr runtime environment, and how to revert back to Yocto when needed.

Note

The eLxr platform is available starting from SDK 2.0.0 and later on the Modalix DevKit.

Converting to eLxr requires a tRoot update and eMMC reflash facilitated by Update with Net Boot.

Why Convert to eLxr?

The eLxr platform replaces the legacy Yocto environment as the new default runtime for SiMa.ai DevKits. It offers significant benefits for developers:

  • Simplified updates — unified root file system layout with larger root file system.

  • Standard package manager — Debian-based foundation with persistent package management.

To confirm your current environment before migrating, follow the quick check below.

To determine which firmware the DevKit is currently running, connect via serial or SSH and run:

cat /etc/buildinfo | grep DISTRO

You should see either:

DISTRO = poky

or

DISTRO = eLxr

If you see poky, follow the steps below to migrate.

Step 1. Physical Setup

Note

This procedure is supported on macOS and Ubuntu Linux platforms.

If you have not installed sima-cli on your host machine, follow the instructions here to install it.

../../_images/conversion-diagram.png

Connection Diagram

  1. Connect the DevKit’s Ethernet port directly to the host PC. Set the host’s network interface to static IP 192.168.1.10. On the Modalix Early Access board, make sure to use Ethernet port 0.

  2. Connect the UART port of the DevKit to the host for console access. Ensure your host has the latest sima-cli installed. Then run:

    sima-user@sima-user-machine:~$ sima-cli serial
    

    to open a serial terminal and connect to the DevKit.

  3. On the DevKit, configure the network interface to the default static IP address (192.168.1.20) by following the instructions here.

Step 2. Update to the Latest tRoot

Before proceeding with the eLxr conversion, update the DevKit to the latest tRoot image.

This update is required to ensure that the tRoot (trusted root) is compatible with eLxr.

First, verify whether the DevKit is already running the required tRoot version.

sima@modalix:~$ sudo troot_upgrade --version
Release Version: 3.1.0
Git Version: SiMaCLI-release-1.5.0-7-gbe3a5f
Buildinfo: 20251111-231808

If the reported version does not match the version shown above, or returns a command not found error, run the following command from the host machine to update tRoot:

sima-cli update --ip 192.168.1.20 2.0.0 --troot_only

After the update completes successfully, power cycle the DevKit to apply the changes.

Step 3. Prepare Netboot Environment

To boot the DevKit into eLxr and prepare for eMMC flashing, prepare a TFTP-based netboot environment.

On macOS:

sima-user@sima-user-machine:~$ sima-cli bootimg --boardtype modalix --fwtype elxr -v 2.0.0 --netboot

On Linux:

Warning

The TFTP server requires binding to port 69, which is a privileged port. Therefore, sudo is required:

sima-user@sima-user-machine:~$ sudo ~/.sima-cli/.venv/bin/sima-cli bootimg --boardtype modalix --fwtype elxr -v 2.0.0 --netboot

This command automatically:

  • Downloads the appropriate eLxr netboot image

  • Starts a temporary TFTP server

  • Prepares all files needed for eMMC flashing

Step 4. Configure DevKit for Netboot

From the DevKit serial console, interrupt the boot process to enter the u-boot shell. Then run the following commands:

setenv cpio_name simaai-image-palette-modalix.cpio.gz
setenv boot_targets net
saveenv
boot

This tells the DevKit to boot from the host’s TFTP server prepared in the previous step.

Step 5. Flash the eMMC

Wait for the DevKit to finish booting. This process may take several minutes.

Once the login prompt is shown on the serial console connecting to the DevKit, the board is ready.

Switch back to the host terminal and press Enter until you see the netboot> prompt, then type:

f

You should see logs similar to:

🔍 Checking SSH availability for 192.168.1.20...
✅ Board is online!
✅ SSH is available on 192.168.1.20
netboot> f
🔧 Initiating eMMC flash [...]

This is a 1.6GB image file, transferring to the board can take a few minutes.

Example progress:

↦ 520093696 bytes (520 MB, 496 MiB) copied, 1 s, 515 MB/s
↦ 5368709120 bytes (5.4 GB, 5.0 GiB) copied, 163.331 s, 32.9 MB/s

Once completed and power cycled, the DevKit is running eLxr natively from eMMC.

Step 6. Optional: Install 2.0 eLxr Out-of-the-box Demo

Your DevKit running version 1.7 may be preloaded with a 1.7-compatible OOB (out-of-the-box) demo. After converting the DevKit to version 2.0 with eLxr, you can upgrade the OOB demo by following the instructions below.

To proceed, connect your DevKit to the Internet and access it using either an SSH session or the serial console.

../../_images/conversion-devkit-standalone.png

Standalone DevKit

modalix:~$ cd /tmp && curl -O https://tools.modalix.info/setup-oob.sh && bash setup-oob.sh

During the setup process, you will be prompted to confirm whether you want to upgrade the OOB demo. Select Yes to continue.

Revert to Yocto (Optional)

To switch back to Yocto, the procedure is identical to converting to eLxr, just use fwtype=yocto instead.

On macOS:

sima-user@sima-user-machine:~$ sima-cli bootimg --boardtype modalix --fwtype yocto -v 2.0.0 --netboot

On Linux:

sima-user@sima-user-machine:~$ sudo ~/.sima-cli/.venv/bin/sima-cli bootimg --boardtype modalix --fwtype yocto -v 2.0.0 --netboot

Then, in the u-boot console:

setenv boot_targets net
saveenv
boot

Once the DevKit netboots, type:

f

to flash the Yocto root file system to eMMC.

Note

There is no minimum version requirement when converting back to Yocto.

Troubleshooting
  • If the DevKit fails to netboot, verify both host and device are on the same subnet (192.168.1.x).

  • On Modalix Early Access board, make sure to use ethernet port 0 port only.

  • On Linux, ensure your firewall allows UDP port 69 (TFTP).

  • You can verify connectivity from the DevKit by running:

    ping 192.168.1.10
    
  • If f fails to find the image, rerun the netboot setup command to refresh paths:

    sima-user@sima-user-machine:~$ sima-cli bootimg --boardtype modalix --fwtype elxr -v 2.0.0 --netboot
    

Summary

  1. Update to the latest tRoot image (≥ 2.0.0).

  2. Prepare the eLxr netboot image using sima-cli.

  3. Set u-boot to netboot from the host.

  4. Boot the device and type f to flash eMMC.