Skip to main content

Asuswrt-Merlin

This will enable legacy BIOS, and UEFI devices to PXE boot into the netboot.xyz menu on Asuswrt-Merlin devices.

Assume your AsusWRT-Merlin router is 192.168.1.1; Login to GUI

  1. LAN -> DHCP Server -> Basic Config: Set "Enable the DHCP Server" to Yes; IP Pool Starting Address: 192.168.1.2; IP Pool Ending Address: 192.168.1.254
  2. Administration -> System -> Service: Set "Enable SSH" to LAN Only
  3. Administration -> System -> Persistent JFFS2 partition: Set "Enable JFFS custom scripts and configs" to Yes

JFFS is a writeable section of the flash memory (the size will vary between router models, with the newer models having a bit over 60 MB of space available), which will allow you to store small files (such as scripts) inside the router without needing to have a USB disk plugged in. This space will survive reboot (but it might NOT survive firmware flashing, so back it up first before flashing!).

  1. Reboot the router from the GUI and wait until you can ping 192.168.1.1
  2. ssh username@192.168.1.1
  3. mkdir /jffs/tftproot
  4. curl -o /jffs/tftproot/netboot.xyz.kpxe https://boot.netboot.xyz/ipxe/netboot.xyz.kpxe
  5. curl -o /jffs/tftproot/netboot.xyz.efi https://boot.netboot.xyz/ipxe/netboot.xyz.efi
  6. touch /jffs/configs/dnsmasq.conf.add
  7. nano /jffs/configs/dnsmasq.conf.add and add the following:

enable-tftp
tftp-root=/jffs/tftproot
dhcp-match=set:bios,60,PXEClient:Arch:00000
dhcp-boot=tag:bios,netboot.xyz.kpxe,,192.168.1.1
dhcp-match=set:efi32,60,PXEClient:Arch:00002
dhcp-boot=tag:efi32,netboot.xyz.efi,,192.168.1.1
dhcp-match=set:efi32-1,60,PXEClient:Arch:00006
dhcp-boot=tag:efi32-1,netboot.xyz.efi,,192.168.1.1
dhcp-match=set:efi64,60,PXEClient:Arch:00007
dhcp-boot=tag:efi64,netboot.xyz.efi,,192.168.1.1
dhcp-match=set:efi64-1,60,PXEClient:Arch:00008
dhcp-boot=tag:efi64-1,netboot.xyz.efi,,192.168.1.1
dhcp-match=set:efi64-2,60,PXEClient:Arch:00009
dhcp-boot=tag:efi64-2,netboot.xyz.efi,,192.168.1.1

  1. reboot and wait until you can ping 192.168.1.1
  2. from another device confirm that TFTP is working on the router

tftp 192.168.1.1
tftp> get netboot.xyz.kpxe
Received 368475 bytes in 0.5 seconds

  1. Test with an UEFI device and with a legacy BIOS device that PXE booting is working (you might have enable PXE booting in the BIOS and/or in UEFI. For UEFI you usually have to enable UEFI Networking stack).

References: