I'm trying to flash OpenWRT on a D-Link DAP-1620 B1.
I enter recovery mode, upload the factory
image and I get a Upgrade successfully!
message, but the device doesn't reboot, and if I switch it off and on again the stock firmware is still installed.
I tried the procedure with original firmware v2.10 and then flashed v2.01, they both fail.
(v2.01 is the earliest I could find, but there was v2.00 before that, I don't know if it makes a difference).
I tried 23.05.4, 23.05.5 and snapshot, none works.
I tried 3 different browsers, none works.
I tried reconnecting to the device without setting a static IP, in case I could enter some form of OpenWRT interface, but it fails to get an IP address, I can only use a static IP, meaning the recovery is still loaded.
I trried reloading the page or opening it in another browser, and if I do that the flashing process restarts from 0% directly (I think it's a bug because in the other browser no file was selected).
I tried opening the recovery web interface in the browser and then opening a terminal and running
curl -v -i -F "firmware=@openwrt-ramips-mt7621-dlink_dap-1620-b1-squashfs-factory.bin" 192.168.0.50
as per instructions but I get this error message
$ curl -v -i -F "firmware=@openwrt-ramips-mt7621-dlink_dap-1620-b1-squashfs-factory.bin" 192.168.0.50
* Trying 192.168.0.50:80...
* Connected to 192.168.0.50 (192.168.0.50) port 80 (#0)
> POST / HTTP/1.1
> Host: 192.168.0.50
> User-Agent: curl/7.81.0
> Accept: */*
> Content-Length: 7602432
> Content-Type: multipart/form-data; boundary=------------------------90e6b057559c6a03
> Expect: 100-continue
>
* Mark bundle as not supporting multiuse
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
HTTP/1.0 200 OK
< Server: uIP/0.9 (http://dunkels.com/adam/uip/)
Server: uIP/0.9 (http://dunkels.com/adam/uip/)
< Content-type: text/html
Content-type: text/html
<
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
var which_id;
var total_second = 120;
var which_second = 0;
function show_success_msg(){
document.getElementById("upgrade_msg").style.display = "none";
document.getElementById("upgrade_warning").style.display = "none";
document.getElementById("success_msg").style.display = "";
document.getElementById("success_warning").style.display = "";
}
function change_time(){
var precent = Math.round((++which_second / total_second) * 100);
if (precent > 100){
precent = 100;
}
document.getElementById("show_second").innerHTML = precent;
if (precent == 100){
clearInterval(which_id);
setTimeout("show_success_msg()", 2000);
}
}
function start_counting(){
document.getElementById("upgrade_msg").style.display = "";
document.getElementById("upgrade_warning").style.display = "";
document.getElementById("success_msg").style.display = "none";
document.getElementById("success_warning").style.display = "none";
which_id = setInterval('change_time()', 1000);
}
</script>
</head>
<body onLoad="start_counting()">
<form action="/cgi/index" enctype="multipart/form-data" method=post>
<center>
<font color=blue face=verdana size=5><b>D-Link Access Point Recovery Mode</b></font>
<br><br><br><br>
<div id="upgrade_msg"><font size="3" face="Verdana, Arial, Helvetica, sans-serif">Device is upgrading the firmware .... <span id="show_second">0</span>%</font></div>
<div id="success_msg" style="display:none"><font face="Verdana, Arial, Helvetica, sans-serif" color="red" size="5">Upgrade successfully!</font></div>
</center>
</form>
<hr>
<br>
<center>
<font face=Verdana color=red size=4><b>WARNING!!</b></font>
</center>
<br>
<font face=Verdana size=2>
<div id="upgrade_warning">
<li>Do not interrupt the update process, as it may damage the device.</li>
</div>
<div id="success_warning" style="display:none">
<li>If a wrong firmware image is upgraded, the device may not work properly or even could not boot-up again.</li>
</div>
</font>
<hr>
</body>
* Closing connection 0
</html>
I don't know what else to do. Can someone help?