D-Link DIR-2150 A1 support

OK, I checked with Australia country on this firmware now, and it's only 20dBm allowed. Changed to other countries, and it's only 20dBm only. Even on your channel (132) and Australia country, with saved options and applied, it shows max 20dBm 100mW. So, it's another bug?

Yes, sorry. I enabled it and it shows more. 26dBm 398mW on the same channel.

if you change region sometimes a reboot is need also

only thing I can see to change on github is the size on radio1's eeprom size
witch didn't exist last week
but as it's bigger then needed I'm not sure it will change anything
I'd only be making it smaller "0x4da8" to "0x400"

OK, tested your upload from the last file and it sees 2.4GHz and 5GHz radio:

md5sum: dcfa50dba4864e6cade117294a9d3a2c

1 Like

I've tested both radios, and they are working flawlessly.
Tested both AP and Wi-Fi used as a Client (connecting together two routers), and everything works perfectly. MAC address change also works for Wi-Fi 2.4 and 5GHz (for those who have Internet providers that block your new MAC).

Also, creation of a new virtual AP's works on both radios.
Took the router to a friend in highly ether polluted environment, transferred probably 500 gigs of data, without any issues on AC and N combined 2.4 N and mostly 5GHz AC.

If anyone wants me to test their stuff on this router, just ask.

This router will probably be good for 300 megabit VPN, because when switched on to Client mode, it can go as far as 300 megabit download speed (Wi-Fi Client 5GHz radio). It's a rough estimation of course, based on AES decryption from Wi-Fi that can handle, but probably no more. Installed htop and it shows 4 threads. With 150 megabits download the overall CPU goes to 50% on Wi-Fi Client mode, so it's probably capable of 300 megabits AES WPA2 decryption, so roughly (probably) will be able to decrypt VPN's packets with similar speeds from WAN cable directly.

Overall, a good cheap router with Installed OpenWrt with many possibilities. Many thanks to OpenWrt team, and to Lucky1, a hero, helping a noob like me, but now I could test it and can test it further to give back. Any requests are appreciated. Feel free to correct me if I'm doing something wrong. Thanks!

1 Like

I couldn't understand from last posts, is there any package that can be flashed from d-link recovery mode, for this device ?
I can flash the one that anita mentioned in the post above ?

And I want to thank you all for your effort regarding this thread

I don't know. I'm a noob. What I did with Lucky1's guidance was to, firstly, connected the router's motherboard with Serial to USB chip.


USB TTL CP2102 RS232

Then I ran the test with initramfs and confirmed that OpenWrt is booting. Then I downloaded Lucky1's compiled firmware and flashed it, spamming "2" on the router's boot via the console and running TFTP server. After that everything was running fine. You can scroll upwards to see the process.
For the record, I'm also curious if you can flash the firmware without serial. But for example with some recovery mode, which I didn't try.

this is still only limitedly tested and it's best to do as anita has done
and backup your flash 1st
but if you are willing to take the risk try these

I think they will work I have uploaded them into my DIR-1960 & they booted ok

Thank you ! Will try and get back with feedback


Ok, got here as well - it wasn't exactly easy to install OpenWrt on this DIR 2150 router - tried many curl/firefox versions - even on Windows 7 - but without any success (while it's been much easier with DIR 882 via telnet hole).

Anyway - now I've this image installed and running - seems OK - except for one detail - networking seems to be limited to 100mbps - while it's being connected to 1gbps network - I've checked cables - seems to be all working properly. Also the original dlink firmware had no problems with running over 600mbps. So any idea what could cause this ?

Also is there any hope there will be regular builds for 2150 ? (Although I do not expect massive amount of users dues to relatively complicated installation - which in my case required soldering serial line pins)

in an early versions I did have a switch "d-link 24 port " with some power saving green mode
that limited the port speed. so I turned that mode switch off and never gave it a 2nd look

there is a pull request atm so help comment and support it

it may make it into v24 or v23 if they pushed hard enough

Ok, I've added commentary review for the patchset (as I'm not involved (at least for now :)) into actually developement of openwrt). Not sure if I can do anything more than this - if so - how ?

As for the 'power saving 100mbps' - sounds like reasonable explanation - as in the Dir-882 log there was visible it always tried 3 times to establish 1Gbps connection beween Dir-882 lan port and Dir-2150 wan port - but ends with 100Mbps - when there is instead of 2150 replaced good old :wink: 1043NDv1 with same cables - there is 1Gbps connection easily.

So can I somehow - enable/disable something within that openwrt-23.05.0-b76d88.... build I'm currently on to restore 1Gbps functionality on WAN port ?

I've also checked WiFi performance on 2.4G and 5G networks on the router itself with iperf3 and they were both certainly much faster then 100Mbps.

Also is there anyone here capable to 'capture' the network trafic when the 'rescue' firmware actually works ? - what combination of Windows & WWW browser is supposedly working for 100% (as certainly soldering pins is a non-trivial way how to make this router openwrt friendly) - it shouldn't be 'that hard' to actually make this usable on linux - but all my experiments failed so far... Otherwise price/performance with these routers would be perfect - as particulary this router can be bought very cheap <$20

Next question is - if there seems to be whole 'family' of almost same routers - do they all need 'extra' firmware build - couldn't there be 1 shared universal image with multiple supported wifi cards - I guess with current flash sizes of this DLink routers - no one cares about even +1MiB in image size if there would be one image covering generically DLink line of routers - looking at the patch - changes seem to be very very minimalistic... assuming there could be just some directory with memory layout mapping which could be detected runtime - or do I miss some serious issue here ?

the 100Mhz speed thing is different to mine
the switch is labelled EEE+ on my dlink switch
it maybe solved now it was years ago but I don't
need my switch ports to try & sleep so it's still off now

I have noted a few times my "Belkin F9J1108 v2" and my "Linksys EA4500" AP's
have both dropped there connections to 100Mhz I think since V23
I have fogged this off as brownouts etc after a switch reset & renegotiate it all back to normal
but maybe something else has changed but it's only once a month or so & not at the same time

I will test a cable between my 1960 & 878 tho soon tho with current v23.05.2

  • update I tested 878 lan to 1960 wan & also 1960 lan to 878 wan
    they keeps showing 1Ghz connection

I always use firefox sometime I have to go incognito mode to stop caching
but it's on windows 10 2021 LTSC and always works in incognito
that's the recovery interface on my DIR-878-A1 & DIR-1960-A1
it's only on my DIR-825-B1 I have to drop back to Netscape Navigator but it's better then installing XP

lot's of the routers are the same but they all have differing Head ID's required to flash
some are just form differing markets with differing software loaded but need differing ID's
or like the 2150 needs a 2nd wifi driver or MAC address layout and LED colour or output pins changed

Bascally this is how WAN port repors connection between a laptop:

kern.info kernel: mtk_soc_eth 1e100000.ethernet wan: Link is Up - 100Mbps/Full - flow control rx/tx

And this is when I take this cable out of WAN port and place it into LAN port:

kern.info kernel: mt7530-mdio mdio-bus:1f lan1: Link is Up - 1Gbps/Full - flow control rx/tx

Are the drivers for WAN port properly used?

From the kernel boot startup I can see this:

mtk_soc_eth 1e100000.ethernet: generated random MAC address xx:xx
mt7530-mdio mdio-bus:1f: MT7530 adapts as multi-chip module
mtk_soc_eth 1e100000.ethernet eth0: mediatek frame engine at 0xbe
100000, irq 21
mtk_soc_eth 1e100000.ethernet wan: mediatek frame engine at 0xbe1
00000, irq 21

a bit later on:

mtk_soc_eth 1e100000.ethernet eth0: configuring for fixed/rgmii link mode
mtk_soc_eth 1e100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
mtk_soc_eth 1e100000.ethernet eth0: Link is Down
mtk_soc_eth 1e100000.ethernet eth0: configuring for fixed/rgmii link mode
mtk_soc_eth 1e100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
mtk_soc_eth 1e100000.ethernet wan: PHY [mdio-bus:04] driver [MediaTek MT7530 PHY] (irq=POLL)
mtk_soc_eth 1e100000.ethernet wan: configuring for phy/rgmii link mode

I only looked at the status page not the logs

there maybe a wiring difference between the 1960 & 2150
can anyone else confirm the same problem ?
is it only that device or all Ethernet devices limited ?

in the back of my mine this patch only works if some of the IO is not used for other things

All LAN (1,2,3,4) ports runs at full 1Gbps - so only the WAN seems to be affected. I'm checking various openwrt 'threads' about such issue - but all seems to be suggesting that 5.15 kernels should be mostly fixing those - so not really sure how that relates :frowning:

I can most likely enforce 1Gbps with ethtool by disable autoneg off - but cannot currently check whether such connection is actually functional physically.

Side note - which should be probably patched/corrected for 2150 build -

root@Dir-2150:/var/sysinfo# cat board_name 
root@Dir-2150:/var/sysinfo# cat model 
D-Link DIR-1960 A1

I'll reword the question
I was asking if you connect the wan port to device other then dir-882 is it still limited ?

the above patch is depended on some of the GPIO line on the PCB
as you are using the DIR-1960 as a base the software is patched
but the PCB is different as the radio is different
is the needed GPIO line shred with t he radio0 LED maybe ?

if the WAN part was reattached to the switch with the lan ports would it work at 1G maybe

WAN connected either to Dir-882 or my laptops - always drops to 100Mbps line connection.
LAN is 1Gbps - same cables.

1 Like

So I wanted to investigate - whether the 'original' firmware is able to run full speed - but it turned out to be a major problem to get back to original DLink firmware.
I've tried even possibly some 'stupid' moves 'aka 'mtd write dir.bin kernel' - which was likely the only variant somehow switching to the original firmware - however producing gazzialion of 'jffs' errors - as likely same partition was badly formated/had errors/(posssibly rootfs).

So I'd likely need here some help.

I was able to get back to OpenWrt which works normally (expept for 100Mbps WAN port :frowning: )

Dir-2150 recovery boot simply always fails for me - the closest thread is this one
https://forum.openwrt.org/t/dir-2660-failing-to-flash/77917 - basically same problem.

From the serial line log - the closest among all attempts was this curl:

curl -v -s -F 'file=@DIR-2150A1_V106B01_unencrypted.bin'

give this:

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

image is unencrypto kernel images
*********** len: 1355, s->dataSize: 1355

But here it simply start to blink endlessly without any progress.

In fackt on Windows I was not even able to get this nice 'result' - although I've tried even Netscape browser, here is the typical result:

Check image validation:
Image1 Header Magic Number --> Failed


Check image validation:
Image1 Header Magic Number --> Failed

uboot magic err 0

*********** len: 940, s->dataSize: 940
*********** len: 1156, s->dataSize: 1156

So now - is there some practical way how to get back to original DLink firmware via openwrt cmdline ?

This is likely my 'best' revert attemp - booted DLink firmware - but non-functional rootfs.

[    3.533372] mt7530-mdio mdio-bus:1f: MT7530 adapts as multi-chip module
[    3.565766] mt7530-mdio mdio-bus:1f: configuring for fixed/rgmii link mode
[    3.580363] mt7530-mdio mdio-bus:1f: Link is Up - 1Gbps/Full - flow control rx/tx
[    3.584322] mt7530-mdio mdio-bus:1f lan4 (uninitialized): PHY [mt7530-0:00] driver [MediaTek MT7530 PHY] (irq=23)
[    3.618554] mt7530-mdio mdio-bus:1f lan3 (uninitialized): PHY [mt7530-0:01] driver [MediaTek MT7530 PHY] (irq=24)
[    3.641493] mt7530-mdio mdio-bus:1f lan2 (uninitialized): PHY [mt7530-0:02] driver [MediaTek MT7530 PHY] (irq=25)
[    3.664585] mt7530-mdio mdio-bus:1f lan1 (uninitialized): PHY [mt7530-0:03] driver [MediaTek MT7530 PHY] (irq=26)
[    3.687326] DSA: tree 0 setup
[    3.695689] UBI: auto-attach mtd6
[    3.702315] ubi0: attaching mtd6
[    4.108210] ubi0: scanning is finished
[    4.129720] ubi0 error: 0x804796b0: too large reserved_pebs 229, good PEBs 211
[    4.144124] ubi0 error: 0x804795bc: volume table check failed: record 1, error 9
[    4.158859] Volume table record 1 dump:
[    4.166505]  reserved_pebs   229
[    4.172914]  alignment       1
[    4.178991]  data_pad        0
[    4.185074]  vol_type        1
[    4.191137]  upd_marker      0
[    4.197230]  name_len        11
[    4.203470]  name            rootfs_data
[    4.211291]  crc             0x56635c83
[    4.219152] ubi0 error: 0x8047e524: failed to attach mtd6, error -22
[    4.231886] UBI error: cannot attach mtd6
[    4.241367] /dev/root: Can't open blockdev
[    4.249598] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    4.264505] Please append a correct "root=" boot option; here are the available partitions:
[    4.281147] 1f00             512 mtdblock0 
[    4.281161]  (driver?)
[    4.294203] 1f01             512 mtdblock1 
[    4.294214]  (driver?)
[    4.307220] 1f02             256 mtdblock2 
[    4.307231]  (driver?)
[    4.320239] 1f03             256 mtdblock3 
[    4.320250]  (driver?)
[    4.333256] 1f04           40960 mtdblock4 
[    4.333268]  (driver?)
[    4.346304] 1f05           13952 mtdblock5 
[    4.346316]  (driver?)
[    4.359323] 1f06           27008 mtdblock6 
[    4.359334]  (driver?)
[    4.372345] 1f07           32768 mtdblock7 
[    4.372357]  (driver?)
[    4.385387] 1f08           40960 mtdblock8 
[    4.385398]  (driver?)
[    4.398407] 1f09            6144 mtdblock9 
[    4.398418]  (driver?)
[    4.411431] 1f0a            8704 mtdblock10 
[    4.411442]  (driver?)
[    4.424644] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    4.441095] Rebooting in 1 seconds..

Also I've checked 'ethtool -s wan speed 1000 autoneg off' and this made WAN port unusable - switching it back to 100 restored functionality.