I really hate dnsmasq. every once in a while I have a problem and some Linux guy tells me "just use PXE bro" and then I spend a hour configuring PXE that doesn't fucking work without displaying a single debug print and all of this is a complete waste of time.

the UI of dnsmasq is atrocious; if I wanted to be able to tweak every DHCP option I would use my TCP/IP stack to answer DHCP queries. just give me something that can boot a machine without four hours of twiddling with options that are required for correct operation yet nobody bothers to give them names better than "66"

I don't think there's been a single time in my life when I successfully PXE-booted something outside of a perfectly-controlled, utility-free environment with a crossover Ethernet cable

this time I can't even get it to boot in a completely artificial environment. the PXE boot ROM doesn't log anything to the display and when it errors out it shows the error for like 100 milliseconds before switching to the next boot option

fucking useless technology

anyway if you ever recommend anybody use PXE for anything who isn't being paid a salary or a consulting rate for setting this up: don't.
@whitequark as someone who's paid a salary to do this: it's just as awful. It really is this buggy and you constantly fight against insane software/firmware bugs...
@manawyrm but at least you're being paid for it!

@whitequark but if you are required to get it to work and giving up is not an option and you'll then have to tell ASRock, ASUS, Dell, etc.
"Hey, trashing the stack when returning from a function call really isn't cool and a bug, pls fix" and they look at you like???
you really are in a bad situtation and well, it's frustrating :P

If you ever do want to try again:
tftpd-hpa and iPXE as a second stage loader work well. OpenWRT as a configurable DHCP server also works well.

@manawyrm @whitequark it works as long as the vendor doesn’t fuck up the MSI-X / IRQ interrupts or uses an ancient EDK2 base
@wyldtom @whitequark … or the customers want legacy boot or you need IPv6 or or or or or….