TLDR; buying a "dumb" media converter and an SFP-to-RJ45 module, and making a down-up-dhclient script for the interface that runs on boot makes things at least work.
So - after what seems like an age I've got a mostly acceptable workaround.
Step 1 was to order the previously mentioned FS SFP module. It kind of worked, except that it absolutely didn't. `ifconfig` reported the link as "active", but the ISP saw nothing on their end. So instead I went to step 2 and bought an media converter (Omada) and a SFP-to-RJ45 module (Ubiquiti). At first this didn't want to play ball either. The media converter worked nicely. No problems. But the SFP-to-RJ45 was behaving - strangely. Similar to how the ISP supplied SFP module; switching around the speed and duplex modes sometimes would make it work. In the end I, through what seemed like infinite keyboard bashing and countless power cycles, figured out that leaving the "speed and duplex" as default and pulling the interface down, putting it back up, and then running `dhclient ax0` would consistently just - work. So wanging tiny a script in `/usr/local/etc/rc.syshook.d/start/` to down-up-dhclient ax0, and now we're finally and consistently getting a DHCP assignment at boot 🥳
...now I just have to configure the thing so everything actually works. But that shouldn't be that hard, right? 😉
So - after what seems like an age I've got a mostly acceptable workaround.
Step 1 was to order the previously mentioned FS SFP module. It kind of worked, except that it absolutely didn't. `ifconfig` reported the link as "active", but the ISP saw nothing on their end. So instead I went to step 2 and bought an media converter (Omada) and a SFP-to-RJ45 module (Ubiquiti). At first this didn't want to play ball either. The media converter worked nicely. No problems. But the SFP-to-RJ45 was behaving - strangely. Similar to how the ISP supplied SFP module; switching around the speed and duplex modes sometimes would make it work. In the end I, through what seemed like infinite keyboard bashing and countless power cycles, figured out that leaving the "speed and duplex" as default and pulling the interface down, putting it back up, and then running `dhclient ax0` would consistently just - work. So wanging tiny a script in `/usr/local/etc/rc.syshook.d/start/` to down-up-dhclient ax0, and now we're finally and consistently getting a DHCP assignment at boot 🥳
...now I just have to configure the thing so everything actually works. But that shouldn't be that hard, right? 😉
"