Flashing Your Device

Note

The initial FoundriesFactory® set up and build can take more than 30 minutes to complete. How to keep track of the current build status can be found at the Watching Your Build page. While you wait, please take this time to follow this introductory tutorial.

Prerequisites and Pre-Work

  • A supported board which is either:

    • Capable of booting from eMMC (supported by default if available)
    • Or capable of booting from a suitable microSD Card
  • Wired or WiFi network with internet access.

    • Ethernet cable (if choosing Wired)
    • Console access to your hardware via UART serial (if choosing WiFi)

Downloading the LmP System Image

After a successful build, FoundriesFactory produces build artifacts which can be downloaded from the Targets tab of your Factory.

  1. Navigate to the Targets section of your Factory.

  2. Click the latest Target with the platform-devel Trigger.

    ../../_images/devel.png
  3. In the Runs section, expand the run which corresponds with the name of the board. This shows all published artifacts for this run. Download the Factory image for your machine:

    E.g: lmp-factory-image-<machine_name>.wic.gz
    ../../_images/artifacts.png

Note

Most platforms require more than the lmp-factory-image-<machine_name>.wic.gz artifact for flashing. The required artifacts are board specific and listed in respective pages under Supported Boards. Targets publish all needed files for each platform under Runs.

Flashing the Image

The flashing procedure is board specific and we cover separate steps in Supported Boards. Please refer to this section for specifics on flashing your system image using the vendor provided tools.

Note

LmP enforces eMMC boot whenever possible as this is the path to enable all security features it provides. So for platforms with available eMMC, such as the NXP® i.MX EVKs, booting from eMMC rather than SD is highly recommended and enabled by default.

Booting and Connecting to the Network

After flashing and booting the board with the respective steps for your hardware, follow these steps to connect to the network.

Note

By default, the username and password to log in your device after boot are fio/fio. We recommend changing them once you are in development.

Ethernet (Recommended)

Ethernet works out of the box if a DHCP server is available on the local network.

Connect an Ethernet cable to the board. Your board will connect to the network via Ethernet soon after booting.

WiFi

LmP uses nmcli and NetworkManager to manage network connectivity.

If you are starting without any network connectivity that would give you shell access to your device (like SSH), you will need to connect via UART serial before setting up a WiFi connection. You may need to refer to your hardware vendor’s documentation on UART serial access. We cover the steps to access UART serial for some platforms in Supported Boards.

Once you have gained shell access to the device, log in with fio/fio username and password. After logged, you can add a new WiFi SSID by using nmcli:

sudo nmcli device wifi connect NETWORK_SSID password NETWORK_PASSWORD

Logging in via SSH

To login via SSH, run:

ssh fio@<machine-name>.local

Where fio is the username and <machine-name> is the hostname of your device. The default password is fio.

By default, your device hostname is set to a unique string that specify the platform chosen during Factory creation (machine). Check Supported Machines for a list of supported platform and their machine values.

Tip

Here are some examples of default hostnames:

raspberrypi4-64.local
intel-corei7-64.local
imx8mm-lpddr4-evk.local

Note

For this to work, your PC needs to support zeroconf. The hostname must be unclaimed.

If this does not work, see Troubleshooting below for advice.

Troubleshooting

If the above methods to SSH into your board do not work, there are additional things to try.

  1. Get the IP address of your device:
  • Temporarily enable and connect to the UART serial (detailed steps for some platforms can be found in Supported Boards) and determine available IP addresses with:

    • Ethernet:

      ip addr show eth0 scope global
      
    • WiFi:

      ip addr show wlan0 scope global
      
  • Or list the connected devices and their local IP addresses on your network router’s administrative interface.

  1. Connect to the device by IP address:
ssh fio@<ip-address>