D-Link DIR-2150 A1 support

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 :joy:

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 :slightly_smiling_face:

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).

How is the WiFi performance and stability on dir-2150 and dir-882 compared to stock?

It seems dlink has abandoned both devices.

I test compile of current snapshot with PR for 2150 & 3040
http://luckys.onmypc.net/openwrt/2024-02-13%20Test/

So some great good news and some bad ones.

So none of of the images worked in 'recovery boot' - although the -recovery suffixed got close to the DIR-2150A1_V106B01_unencrypted_with_header - as it confirmed all headers OK

to check image type

=================================================
Check image validation:
Image1 Header Magic Number --> OK
Image1 Header Checksum --> OK
Image1 Data Checksum --> OK

=================================================[check_img_return:0]
image is unencrypto kernel images
*********** len: 1355, s->dataSize: 1355

But at this point it stops - so still only 882 & 2660 firmware image files pass this test.

So then I've flashed this file via serial line over 'tftp' which now works - so I've restored to Dlink-2150 official firmware and it GUI.

Here comes the greatest news - the -factory.bin image file in your new test dir is now ACCEPTED by GUI firmware upgrade dialog - so the user can now flash 2150 router through the GUI without any need of recovery boot!

However now your recent snapshot build does suffer some WiFi problems on this device - I've tried to restore my relayd configuration - however the Wireless connection was always disconnected with some auth errors:

[  689.426790] phy1-sta0: authenticate with xx:xx:xx:xx:xx:xx
[  689.438166] phy1-sta0: send auth to xx:xx:xx:xx:xx:xx (try 1/3)
[  691.475999] phy1-sta0: send auth to xx:xx:xx:xx:xx:xx (try 2/3)
[  693.533145] phy1-sta0: send auth to xx:xx:xx:xx:xx:xx (try 3/3)
[  695.556010] phy1-sta0: authentication with xx:xx:xx:xx:xx:xx timed out

Later on reverting back to the previously working build 23.05.0-b76d880406e5 fully restored the functionality of wireless extender.

(And yeah - it's kind of ugly to restore luci-proto-relay when it's missing in the official builds - I'd vote to include those relay packages as default....)

So I may just assume something is currently broken with the wireless authentication in the recent snapshot build - not sure what - and unclear how can I diagnose what it could be,

However your -recovery build now allows users to go to the OpenWrt directly from GUI which is superb result - although then user may currently need to 'sysupgrade -F' back to your working release 23.05 for stable Wireless usage (-F is needed for this message:

upgrade: Device dlink,dir-2150-a1 not supported by this image Tue Feb 13 09:28:12 UTC 2024 upgrade: Supported devices: dlink,dir-1960-a1 Image check failed.

as likely your current snapshot identifies now itself correctly as 2150 - while the old build is using incorrect signature of 1960.

How is the WiFi performance and stability on dir-2150 and dir-882 compared to stock?
It seems dlink has abandoned both devices.

Speed is on pair at least to my measureable hw performance :wink:

The main important part is however the openwrt is actually way more stable on 5G part compared with stock on 882 dlink firmware. With Dlinks firmware it had always had some wierd issues on 5G - while with OpenWrt it's performance works well over many many speedtest runs :wink:

1 Like

something I think is buried way back in this thread
that you don't know that build really is just a DIR-1960-A1 public build
just to configure the radio's then sysupdate to the normal DIR-1960-A1 firmware
add the missing wireless driver and other software they want
this was just to allow people to use a current pubic version with out having to locally compile everything
it was a stop gap to test until he PR passed and it has it's own version

I'm not sure why but but the link to factory calibration
looks broken for these devices
I maybe wrong maybe some where in the back ground is was set
i just can't see where atm

target/linux/ramips/dts/mt7621_dlink_dir-xx60-a1.dtsi

Updated * wan led not auto assigned
http://luckys.onmypc.net/openwrt/2024-02-14%20Test/

I'm not sure why but but the link to factory calibration

So is it worth to retest updated snapshots for WiFi usage on 2150 ?
Was the 1960 also affected and now works ?

I'm running some couple weeks old snapshot on 882 and there the WiFi seems to be fine - but your referred patch looks like it's not affecting 882.

Also is there anything more I could test/check comment? (before I'll let go 2150 to its final destination, where any retesting would be much much more difficult....)

myself I would just be using the DIR-1960-A1 firmware and add the extra wifi driver
just so I can use the current public compiled software library
until the PR passes & it has it's own maybe V24

and it was only the NAND flash devices affected that use a common file

HI @frkca
how are you going with this PR ?

Hello, first of all thank you for all the work you have done to get the firmware working for this device, it is especially valuable since the stock firmware leaves a lot to be desired.

Second, please forgive my ignorance, but I've spent some time reading this thread, and digging on the internet, trying to make sense of it, but I just can't figure out how to install your firmware with luci

I am quite unexperienced in regards to coding and configuring routers via terminal, and overall new to openwrt.

Do you happen to have a working build with luci for the average joe to flash via the recovery interface or some instructions on how to create a working build with GUI? I would be happy to share my findings in regards to speed, stability and overall usability

I bought the DIR-2150 A1 second hand to use as 'repeater' or wireless AP same as anita, but I lack the technical knowledge how to get it working :confused:

Anyone interested in helping me with adding USB to this router?
Does anybody know where to solder first USB 2.0 and maybe if successful USB 3.0?
This router is a spare, so I can tinker with it, but it would be nice to have another with USB.
I plan to solder it after adding a better PSU for it, but need advice if the main board can handle the load and if it's worth it. Then if successful, I will post if Lucky1's firmware is working with modem plugged to USB, and first with USB flash drive.

From my understanding, the minus would be soldered to the screw holes or minus from the PSU, and I will try to find if it has +5V somewhere. If they removed the +5V for USB, first I will just make my own external +5V with minus connected together with the original PSU, and then try to solder the data lines and creating temporary USB 2.0 and see if it works in this setup. So if somebody can point me in the right direction, it would be helpful, where the data lines are for USB 2.0.
I've heard that there are similar boards and this is just a cut down version without USB.

here is the Schematics for the DIR-3060-A1
my DIR-878-A1 has the same PCB as My DIR-1960-A1
but there is a lot of components not loaded
as you pointed out no +5V regulator loaded etc "labelled remove for ac1900"
don't forget to upgrade you plug pack as it will need more power more like 2.5A not just 1.5A

https://fccid.io/KA2IR3060A1/Schematics/Schematics-4241783.pdf

1 Like

Yes, of course, at least 2.5A. That's why I even wanted to put external another PSU. I was asking if the board can handle the load of USB power, and if the 2.5A PSU would be OK, because the power rail could be different in this router and if the manufacturer didn't put smaller mosfets for this router, so I wanted to know if it's worth to do it through main PSU that is 2.5A.

So, thank you for the schematics, but it's too complicated for me, because I don't see the pinouts number coming to USB, or maybe I cannot read it. I don't see on the schematics the exact chip for USB and pinout for it. Is there any chance of somebody pointing out the pins of the USB TX and RX, so I can just solder a USB plug and test it? I can even provide the high resolution pictures of the board.

basically the USB foot prints should already be on the PCB
but it's more complicated then just adding connectors
there is a bunch of 0201 surface mount Links,Resisters & Capacitors to add
and then the hole +5V rail
lots of part if you want to do it the same as OEM
I put it down to all to hard to many tiny bits
I'm to old now to solder these easily

That's what I suspected, that there should be some resistors with capacitors to protect the USB than to just go straight to the chip. OK, thank you for clarifying, it's beyond my skills, and now I know.

2 Likes

I don't know if it was solved, but mine shows always 1Gbit.:

[    5.225233] mt7530-mdio mdio-bus:1f: Link is Up - 1Gbps/Full - flow control rx/tx
[   11.895021] mtk_soc_eth 1e100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   26.785208] mtk_soc_eth 1e100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   30.392840] mt7530-mdio mdio-bus:1f lan4: Link is Up - 1Gbps/Full - flow control rx/tx
[ 9317.339044] mtk_soc_eth 1e100000.ethernet wan: Link is Up - 1Gbps/Full - flow control rx/tx
[ 9373.498423] mtk_soc_eth 1e100000.ethernet wan: Link is Up - 1Gbps/Full - flow control rx/tx
[ 9873.732951] mtk_soc_eth 1e100000.ethernet wan: Link is Up - 100Mbps/Full - flow control off
[ 9989.171748] mtk_soc_eth 1e100000.ethernet wan: Link is Up - 1Gbps/Full - flow control rx/tx
[10473.806815] mtk_soc_eth 1e100000.ethernet wan: Link is Up - 1Gbps/Full - flow control rx/tx
[10477.905647] mt7530-mdio mdio-bus:1f lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[10489.406661] mtk_soc_eth 1e100000.ethernet wan: Link is Up - 1Gbps/Full - flow control rx/tx

And I've tested on multiple machines connected to the WAN port. Also, tried to connect to 100Mbs from the other router to see if the reverse is true, and as you can see it always negotiate 1Mbs, except one router with 100Mbs switch.

Furthermore, the Linux PC, always shows 1Gbs connection when I connect it directly to the WAN port of the router.

The firmware I use is the newest Lucky1's, downloaded directly from him:

md5sum:


4ee77372bdb73bdea1336e55831f68d3  openwrt-ramips-mt7621-dlink_dir-2150-a1-squashfs-sysupgrade.bin

sha256sum

57c8c49eb8894af524d5ed16dc2451b008e064b0596eaef81ebcacdc87a6d861  openwrt-ramips-mt7621-dlink_dir-2150-a1-squashfs-sysupgrade.bin
1 Like

Thank you everyone particular for Lucky1 for make this router run with openwrt.
It makes extremely easy to flash the openwrt now.
I just went to Lucky1's website download firmwares. http://luckys.onmypc.net/openwrt/DIR-2150-A1/
Then I open d-link router web interface select management, update firmware, select factory.bin file. It took 3 minutes and reboot to openwrt.
Then I flashed the sysupgrade.bin. I don't know if that is necessary. But anyway, it is a very easy process. Now I get it fully working. Many thank!!!

One question, I notice it is running a snapshot version of openwrt. Can we upgrade to a stable version?

Hi Kevin_l
support has been added so current official snapshots will work
but for a real release you will have to wait for V24 to be made

you can force flash the DIR-1960-A1 firmware with the added kmod-mt7603 driver
last time I had to use the firmware selector to make an image with this into
to correctly initialise the 2.4G wifi

I think that's what these images where from http://luckys.onmypc.net/openwrt/DIR-2150/
if the wifi is initialise you can update to the current DIR-1960-A1 and add the mt7603 driver

1 Like

I've made sysupgrade to the newest snapshot, after upgrade, the power LED was blinking and the router is bricked, so I put it to the recovery mode, and upload the last *recovery.bin, next I flashed sysupgrade file, and the router after reboot is up, but without luci, so I was traying to install luci manual, but I get:

root@OpenWrt:~# opkg install luci
Installing luci (23.051.66410~a505bb1) to root...
Downloading https://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci_23.051.66410~a505bb1_all.ipk
Collected errors:
 * pkg_hash_check_unresolved: cannot find dependency rpcd for rpcd-mod-luci
 * pkg_hash_fetch_best_installation_candidate: Packages for rpcd-mod-luci found, but incompatible with the architectures configured
 * pkg_hash_check_unresolved: cannot find dependency rpcd for luci-base
 * pkg_hash_check_unresolved: cannot find dependency rpcd-mod-file for luci-base
 * pkg_hash_check_unresolved: cannot find dependency rpcd-mod-ucode for luci-base
 * pkg_hash_check_unresolved: cannot find dependency cgi-io for luci-base
 * pkg_hash_check_unresolved: cannot find dependency ucode-mod-math for luci-base
 * pkg_hash_fetch_best_installation_candidate: Packages for luci-base found, but incompatible with the architectures configured
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.45~0208f4d0d60db479c0b6ad38a00e7e10-r1) for kmod-nf-reject
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.45~0208f4d0d60db479c0b6ad38a00e7e10-r1) for kmod-nf-reject6
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.45~0208f4d0d60db479c0b6ad38a00e7e10-r1) for kmod-nf-log
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.45~0208f4d0d60db479c0b6ad38a00e7e10-r1) for kmod-nf-log6
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.45~0208f4d0d60db479c0b6ad38a00e7e10-r1) for kmod-crypto-crc32c
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.45~0208f4d0d60db479c0b6ad38a00e7e10-r1) for kmod-nft-core
 * pkg_hash_check_unresolved: cannot find dependency rpcd-mod-iwinfo for luci-mod-status
 * pkg_hash_fetch_best_installation_candidate: Packages for luci-mod-status found, but incompatible with the architectures configured
 * pkg_hash_check_unresolved: cannot find dependency rpcd-mod-iwinfo for luci-mod-network
 * pkg_hash_fetch_best_installation_candidate: Packages for luci-mod-network found, but incompatible with the architectures configured
 * pkg_hash_check_unresolved: cannot find dependency rpcd for rpcd-mod-rrdns
 * pkg_hash_fetch_best_installation_candidate: Packages for rpcd-mod-rrdns found, but incompatible with the architectures configured
 * pkg_hash_check_unresolved: cannot find dependency uhttpd for luci-light
 * pkg_hash_check_unresolved: cannot find dependency uhttpd-mod-ubus for luci-light
 * pkg_hash_fetch_best_installation_candidate: Packages for luci-light found, but incompatible with the architectures configured
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for luci:
 *      rpcd
 *      rpcd-mod-file
 *      rpcd
 *      rpcd-mod-ucode
 *      cgi-io
 *      ucode-mod-math
 *      rpcd-mod-iwinfo
 *      rpcd
 *      uhttpd
 *      uhttpd-mod-ubus
 * opkg_install_cmd: Cannot install package luci.
root@OpenWrt:~#

The last factory file from openwrt selector is not working after upload to the recovery mode I get Upgrade Failed.