Prepare Linux host

  1. Install DHCP, TFTP servers. For example dnsmasq

    $ sudo apt-get install dnsmasq
  2. Configure DHCP server. Configuration for dnsmasq is below:

    # Only listen to this interface
  3. Configure TFTP server.

    # tftp

    zephyr.efi is a Zephyr EFI binary created above.

  4. Copy the Zephyr EFI image zephyr/zephyr.efi to the /srv/tftp folder.

    $ cp zephyr/zephyr.efi /srv/tftp
  5. TFTP root should be looking like:

    $ tree /srv/tftp
    └── zephyr.efi
  6. Restart dnsmasq service:

    $ sudo systemctl restart dnsmasq.service

Prepare the board for network boot

  1. Enable PXE network from BIOS settings.

  2. Make network boot as the first boot option.

Booting the board

  1. Connect the board to the host system using the serial cable and configure your host system to watch for serial data. See board’s website for more information.


    Use a baud rate of 115200.

  2. Power on the the board.

  3. Verify that the board got an IP address. Run from the Linux host:

    $ journalctl -f -u dnsmasq
    dnsmasq-dhcp[5386]: DHCPDISCOVER(eno2) 00:07:32:52:25:88
    dnsmasq-dhcp[5386]: DHCPOFFER(eno2) 00:07:32:52:25:88
    dnsmasq-dhcp[5386]: DHCPREQUEST(eno2) 00:07:32:52:25:88
    dnsmasq-dhcp[5386]: DHCPACK(eno2) 00:07:32:52:25:88
  4. Verify that network booting is started:

    $ journalctl -f -u dnsmasq
    dnsmasq-tftp[5386]: sent /srv/tftp/zephyr.efi to
  5. When the boot process completes, you have finished booting the Zephyr application image.