Daniel Wikar Personal blog about Analytics, Big Data, Microsoft and IT

OpenWRT + netboot.xyz

There are numerous ways to get netboot.xyz running as a PXE server together with OpenWRT but this is the simplest (and only) way I got it to work 😊

Inspired by this forum post but I couldn’t get it to boot straight from http so instead I did the following.

1. Created a tfpt-directory in the root of OpenWRT

mkdir tftp

2. Downloaded netboot.xyz.kpxe and netboot.xyz.efi locally

cd /tftp
curl http://boot.netboot.xyz/ipxe/netboot.xyz.kpxe -o netboot.xyz.kpxe
curl http://boot.netboot.xyz/ipxe/netboot.xyz.efi -o netboot.xyz.efi

3. Modified /etc/dnsmasq.conf to act as TFTP server

nano /etc/dnsmasq.conf

Add this block to the end of the file.

####################################
# TFTP Server custom configuration #
####################################
enable-tftp
tftp-root=/tftp
dhcp-boot=netboot.xyz.efi
/etc/init.d/dnsmasq restart

(Couldn’t get the BIOS/EFI identification to work so I manually switched between netboot.xyz.kpxe and netboot.xyz.efi)

4. Finally a crucial but hard to find configuration change for OpenWRT

Disable the LAN interface to announce itself as a Local IPv6 DNS server which in turn somehow conflicted with the iPXE DNS lookup (even though booted in IPv4 mode).

Available through the OpenWRT interface. Network -> Interfaces, LAN -> Edit, DHCP Server -> IPv6 Settings. Untick this box if ticked.

local-ipv6-dns-server

Identified through this thread.

Done

Good luck!

comments powered by Disqus