Flashing several D-Link devices indeed got more complicated with newer browser and or Linux kernels. It's true that maybe OEM firmware works better, but I have definitely also seen a degrade of success probability with the exact same file, after upgrading Linux.
We have factory encryption support ready (c.f. pull request), but still there needs to be a way of unbricking (or reverting to OEM) of course.
The last time it worked for me on Linux was using Wine Internet Explorer, Opening the recovery web interface, selecting the upload file, then rebooting the device to recovery mode again and only then clicking upload (without re-loading the recovery web interface, so the first HTTP request the recovery would see is the POST, not the weird stuff modern browsers send to servers in addition to the main url these days).
This had a chance of about 40% of working with devices like COVR-C1200... Later, it did not work for me at all in Linux, but on Windows using IE10 in quirks mode
Luckily, someone wrote a script in the meantime, that unfortunately was not accepted to be included in the official OpenWrt scripts/flashing
folder, but it's on the wiki for COVR-P2500:
https://openwrt.org/inbox/toh/d-link/covr-p2500_a1#dlink_recovery_uploadpy
Users reported it also works great for the DIR-2600/1960/.. devices, so it should also for DIR-2150
Regarding your issues with Ethernet and/or wifi, could this be due to an accidentally overwritten mtk-eeprom
partition? that would indeed be an issue (you might try a dump from a different DIR-2150, though the calibration would be off, degrading wifi).
I had also seen incomplete uploads via the recovery at some points, so that the firmware was only partially working and behaving strangely. Do you see any I/O errors etc. in dmesg?
Feel free to try reverting to OEM using the script mentioned above, and then flashing latest master (encrypted factory image from @Lucky1 from the post above, flashed the normal way via D-Link Web UI).