I've tried both of (what seem to be) the common methods for loading OpenWRT with Windows on this device, and also with dnsmasq on OpenWRT. With any of Tftpd64, Tiny PXE Server, or dnsmasq on another OpenWRT device, I get the same results at the time when it should be requesting a DHCP allocation and booting from TFTP.
With each DHCP server, the Mikrotik device issues a DHCP Discover.
This request is answered with a DHCP Offer.
The Mikrotik device then immediately issues another DHCP Discover.
This request is also answered with a DHCP Offer.
[...]
This goes on forever until the Mikrotik device gets sick of its living conditions, times out, and boots RouterOS.
(And of course, once RouterOS is loaded it requests a DHCP allocation on its WAN port and is very happy with that -- it's just not running OpenWRT or the bootloader when this happens. )
I get this behavior whether I do the hold-button-down-for-about-15-seconds-until-the-light-turns-off technique, or the try-ethernet-once-then-nand technique.
Since the MikroTik device is never satisfied with this DHCP situation, it never makes it to the point where it finds DHCP fields 66 and 67, and thus never attempts to use TFTP.
Things tried:
Different computers, different cables, inserting a switch between Mikrotik device and computer, and using the OpenWRT install on my home router to populate fields 66 and 67. I've tried a variety of different subnets. I've tried holding my teeth differently.
Firmware is currently 6.48. Factory firmware version is 6.46.4.
Example output from system log while it is failing to get an address:
Thu Aug 12 02:48:27 2021 daemon.info dnsmasq-dhcp[29190]: DHCPDISCOVER(br-lan) 2c:c8:1b:08:88:a1
Thu Aug 12 02:48:27 2021 daemon.info dnsmasq-dhcp[29190]: DHCPOFFER(br-lan) 10.0.1.146 2c:c8:1b:08:88:a1
Thu Aug 12 02:48:27 2021 daemon.info dnsmasq-dhcp[29190]: DHCPDISCOVER(br-lan) 2c:c8:1b:08:88:a1
Thu Aug 12 02:48:27 2021 daemon.info dnsmasq-dhcp[29190]: DHCPOFFER(br-lan) 10.0.1.146 2c:c8:1b:08:88:a1
Thu Aug 12 02:48:28 2021 daemon.info dnsmasq-dhcp[29190]: DHCPDISCOVER(br-lan) 2c:c8:1b:08:88:a1
Thu Aug 12 02:48:28 2021 daemon.info dnsmasq-dhcp[29190]: DHCPOFFER(br-lan) 10.0.1.146 2c:c8:1b:08:88:a1
[...]
Example output of the same device succeeding to get a DHCP address a moment later in RouterOS instead of the bootloader (to show I'm not crazy):
Thu Aug 12 02:49:41 2021 daemon.info dnsmasq-dhcp[29190]: DHCPDISCOVER(br-lan) 2c:c8:1b:08:88:a1
Thu Aug 12 02:49:41 2021 daemon.info dnsmasq-dhcp[29190]: DHCPOFFER(br-lan) 10.0.1.146 2c:c8:1b:08:88:a1
Thu Aug 12 02:49:41 2021 daemon.info dnsmasq-dhcp[29190]: DHCPREQUEST(br-lan) 10.0.1.146 2c:c8:1b:08:88:a1
Thu Aug 12 02:49:41 2021 daemon.info dnsmasq-dhcp[29190]: DHCPACK(br-lan) 10.0.1.146 2c:c8:1b:08:88:a1 MikroTik
Any thoughts or suggestions?