:orphan: .. start_include_here Prepare Linux host ------------------ #. Install DHCP, TFTP servers. For example ``dnsmasq`` .. code-block:: console $ sudo apt-get install dnsmasq #. Configure DHCP server. Configuration for ``dnsmasq`` is below: .. code-block:: console # Only listen to this interface interface=eno2 dhcp-range=10.1.1.20,10.1.1.30,12h #. Configure TFTP server. .. code-block:: console # tftp enable-tftp tftp-root=/srv/tftp dhcp-boot=zephyr.efi ``zephyr.efi`` is a Zephyr EFI binary created above. #. Copy the Zephyr EFI image :file:`zephyr/zephyr.efi` to the :file:`/srv/tftp` folder. .. code-block:: console $ cp zephyr/zephyr.efi /srv/tftp #. TFTP root should be looking like: .. code-block:: console $ tree /srv/tftp /srv/tftp └── zephyr.efi #. Restart ``dnsmasq`` service: .. code-block:: console $ sudo systemctl restart dnsmasq.service Prepare the board for network boot ---------------------------------- #. Enable PXE network from BIOS settings. #. Make network boot as the first boot option. Booting the board ----------------- #. 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. .. note:: Use a baud rate of 115200. #. Power on the board. #. Verify that the board got an IP address. Run from the Linux host: .. code-block:: console $ journalctl -f -u dnsmasq dnsmasq-dhcp[5386]: DHCPDISCOVER(eno2) 00:07:32:52:25:88 dnsmasq-dhcp[5386]: DHCPOFFER(eno2) 10.1.1.28 00:07:32:52:25:88 dnsmasq-dhcp[5386]: DHCPREQUEST(eno2) 10.1.1.28 00:07:32:52:25:88 dnsmasq-dhcp[5386]: DHCPACK(eno2) 10.1.1.28 00:07:32:52:25:88 #. Verify that network booting is started: .. code-block:: console $ journalctl -f -u dnsmasq dnsmasq-tftp[5386]: sent /srv/tftp/zephyr.efi to 10.1.1.28 #. When the boot process completes, you have finished booting the Zephyr application image.