D-Link DIR-2660 A2 - Factory install


I am new to this forum and also to OpenWRT and also with a new router D-Link DIR-2660. I found out it is a A2 version. I reseached this forum a lot in order to install OpenWRT on the router. Thank you very much for all the posts and inputs. Maybe my findings can also help somebody in future - I wrote it from a beginners point of view, like I am, thanks for understanding. I added the references I used at the bottom.

Thank you very much

My steps done:

  1. Connect PC to D-Link DIR-2660 A2 (LAN Port) with a LAN Cable
  2. GoTo Recovery GUI of D-Link DIR-2660 A2 by pressing (Keeping Pressed) the Reset-Button on the backside of the Router and Turning the Router On. Reset-Button stays pressed until the Power Lamp Blinks.
    IP Address needs to be set for the connection to e.g.: and subnet mask is set to Details here: https://openwrt.org/docs/guide-user/installation/installation_methods/d-link_recovery_gui
  3. Afterwards go to best via Windows and Firefox (Linux could have troubles I have read)
  4. Select and Upload the Factory image provided by Lucky1 (Thanks a lot for your help) here:
    DIR-2660 failing to flash - #27 by s_2
  5. If needed: I had my computer connected to LAN2 while flashing and I needed to switch to LAN1 in order to continue
  6. In Console/Terminal/CMD: Ping the Router to see if its reachable by "ping"
  7. In Console/Terminal/Putty: Login to Router with "ssh root@ On Fingerprint-Info type "yes"
  8. If needed: In Console/Terminal/Putty: Change Password with "passwd"

Surprisingly, but luckily Luci was already installed, so I planned the following steps, but I did not execute them:

  1. In Console/Terminal/Putty: Update with "opkg update"
  2. In Console/Terminal/Putty: Install luci with "opkg install luci"
  3. In Console/Terminal/Putty: Set default autostart of luci with: "/etc/init.d/uhttpd enable" and then "/etc/init.d/uhttpd start"
  4. Open luci in Browser with adress ""

Thank you all for the efforts, posts, uploads, changes, discussions, etc. etc. I would have never been able to set a single step.

My used references:


Hi Peer, and welcome to the community!

Great it worked for you, these devices are indeed a little cumbersome at the moment.
As far as I recall, we don't have the RSA keys to allow flashing via OEM webinterface for this device, but the latest official OpenWrt snapshots (not v21 though) already have the headers fixed, so that the factory image will at least work for the Recovery. However, official snapshots don't come with LuCI (unlike some custom-built images provides by users).

In any case, I would still recommend you to sysupgrade to the latest official 21.02.01 release, this also allows to install packages via opkg later.

@Lucky1 could you confirm that the change in headers only applies to the factory image? So the sysupgrade to v21 (with missing headers) would be safe, or could there still be issues after reboot?

I don't know the answer to this
I do know the firmware header is checked on uploaded onto the device via the recovery interface
but I don't know if it's rechecked with the CRC on each reboot

When you say OpenWrt snapshots (not v21 though).....which snapshot are you referring to please? When I go to the firmware selector to download it just shows 1 snapshot available (ce2b8e6de5897a260a7ebb77e968953ba2890849bb5924b169e07b4e17e9acec)?

Can I sysupgrade from the snapshot factory image to the latest official 21.02.01 release (subject to the headers being ok) ?


Lucky.....none of your download links seem to work for me, is the site still up?


Yes, that one (hash changing every day though) can be installed via the recovery. But it does not come with LuCI, so you have to install it later as described by @Peer in the first post (just connect the WAN port to your local network to allow opkg to download the packages).

As it just turned out, none of us actually seemed to have tested this exact situation (i.e. whether it would still reboot correctly after flashing, without the headers fixed), but it should most probably work.
Besides, nothing can go wrong, since you can at any time repeat the factory flashing via the recovery and be back to a working system. We'd actually be curious for someone to verify that reboot works with v21, since the patch fixing the headers will only be included with the v22 release.

It's a dynamic DNS hostname, probably his machine isn't running at the moment or has no connectivity.


I've bought one of these so it should be arriving in a few days. I don't want to stay on snapshots so will no doubt be giving this a try.

I guess the other option would be to take Lucky's build with amended headers then flash the latest official 21.02.01 release

for me they are working but do have to override the fact that it's not https


the master snapshots have the new header but the 21.02's snapshots won't
I have a feeling if you sysupgrade to a version without the correct header header info it won't boot
but I'm not 100% someone will have to test and report back
I'm sure you will be able to recover back to a factory or oem image

someone could try to open a pull request to update 2102 but as it tool 6 months V22 will be branched by then

1 Like

Thanks Lucky

Still not working......I'll keep trying

try another browser they are getting strict on security & it's really only a http server
https has only got a self singed certificate & well seem not good enough for some these days

in case it a dyn DNS thing where you are

No that doesn't work either, tried 3 browsers all the same, time out. I'm in the UK

i just testing it from canada & it's not working I'll look into it

1 Like

ok a full reset of everything modems / routers servers & isp setting seems to have fixed it
witch it was who knows

Thanks.....download ok :+1:

1 Like

@Lucky1 Can I just confirm exactly what those 3 files are please?

DIR2660A1_FW104B03.bin = Is this a copy of the original oem firmware that has been decrypted with the dlink-decrypt utility and no other changes made?

The other 2 OpenWrt firmware files are snapshots of different version and both have been manually edited to include details of the device in the headers?

Is that right? Thx

you are correct
tho they are releases not snapshots
if you do a hex compare
you will see only the header & CRC changes

Quick update.....

I flashed the DIR-2660 successfully. Label on rear of router says hardware version A2 although D-Link software says it's A1.

Seems like there are a couple of options (at least) to get the device flashed and I did consider flashing with current factory snapshot and then doing a sysupgrade using the official release; it seems like the headers in those files would support flashing to the DIR-2660 (I did check them) and I assume upgrading from snapshot to official sysupgrade would work (given headers are correct).

However, in the end I decided to go with path of least resistance and I flashed with the file Lucky provided (21.02.1) and it worked perfectly. I did use safe browsing in Firefox, not sure if that was required or not but it worked.

Thanks for your help and to @Peer for the initial write up :+1:

I just want to inform that I tried exact same procedure like in the initial-post on a D-Link DIR-2660 A1 and it works as well. :ok_hand:


I recently bought the D-Link DIR-2660 A2, I was able to install the Lucky firmware version openwrt-21.02.2 without any problem, my question is:

Can I install OpenWrt 21.02.3, OpenWrt 22.03.0-rc1 or snapshots from my router or could I get locked out due to missing headers?

V22 & master has the updated header
but if you update to V21.02.3 & you model needs the updated header
then it just wont boot that image
but you should be able to get back to the recover console
and flash one with the header
it may even place you into the recover console

1 Like