Router einrichten D-LinkAquilaM60
D-Link AQUILA PRO AI M60 A1 auf Freifunk Dresden flashen
Ausgangsbasis:

Hardware: D-Link AQUILA PRO AI M60 (A1)
Original Firmware: 1.11.03 von 2022 (funktioniert)
Image-Basis: OpenWrt 25.12.0 / Freifunk Dresden v9.0.3
VORSICHT*!
!!! NEUERE FIRWARE wie 1.20.x von 2025 funktioniert aktuell im Recovery Modus nicht!!!
Dateien
freifunk-dresden-v9.0.3-25.12.0-mediatek-filogic-dlink_aquila-pro-ai-m60-a1-squashfs-recovery.bin → Erstinstallation freifunk-dresden-v9.0.3-25.12.0-mediatek-filogic-dlink_aquila-pro-ai-m60-a1-squashfs-sysupgrade.bin → finales Upgrade freifunk-dresden-v9.0.4-25.12.3-mediatek-filogic-dlink_aquila-pro-ai-m60-a1-squashfs-sysupgrade.bin (im Test)
downloaden
1. Recovery-Modus starten


1. Router ausschalten 2. Reset-Taste gedrückt halten 3. Router einschalten LED: rot -> dann hellrot blinkend 4. Reset-Taste loslassen
2. PC vorbereiten
Statische IP setzen:
IP: 192.168.200.10
Maske: 255.255.255.0
Gateway: 192.168.200.1
Recovery-Webinterface öffnen:
3. Recovery-Image flashen
Datei auswählen:
freifunk-dresden-...-squashfs-recovery.bin
Upload starten und warten:
LED blinkt danach dauerhaft rot anschließend weiß
Wichtig: Router nicht ausschalten (ca. 5–10 Minuten warten).
4. Erstes Boot

Danach erreichbar unter (in meiner selbst kompilierten Version, evtl. Später anders):
http://192.168.1.1 (KEIN DHCP)
5. Sysupgrade installieren
Über Webinterface
freifunk-dresden-...-squashfs-sysupgrade.bin
hochladen und Werkseinstellung ankreuzen
Nach dem Neustart:
LED wird blau Freifunk Dresden ist aktiv
Konfiguration über:

http://192.168.222.1 (KEIN DHCP) Login
Flash-Reihenfolge:
Original D-Link → recovery.bin → sysupgrade.bin → Freifunk Dresden
Problem mit der Flash-Reihenfolge:
GUT:
So sieht ein gelungener vollständiger Flashvorgang von Original Firmware: 1.11.03 von 2022 aus
Firmware version: 9.0.3
D-Link AQUILA PRO AI M60 A1 @ 51004:~# cat /proc/cmdline
console=ttyS0,115200n1 loglevel=8 isolcpus=1 earlycon=uart8250,mmio32,0x11002000 bootpart=ubi0
D-Link AQUILA PRO AI M60 A1 @ 51004:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00020000 "BL2"
mtd1: 00080000 00020000 "u-boot-env"
mtd2: 00200000 00020000 "Factory"
mtd3: 00200000 00020000 "FIP"
mtd4: 03200000 00020000 "ubi"
mtd5: 03200000 00020000 "ubi1"
mtd6: 00040000 00020000 "Odm"
mtd7: 00080000 00020000 "Config1"
mtd8: 00080000 00020000 "Config2"
mtd9: 00a00000 00020000 "Storage"
D-Link AQUILA PRO AI M60 A1 @ 51004:~# fw_printenv
baudrate=115200
boot_by_part=if itest.s ${mupgrade_en} == 1; then aup;fi;if itest.s ${bootpart} == 0; then run set_act1; run ub0; else run set_act2; run ub1; fi
boot_by_tryactive=if itest.s ${sw_tryactive} == 0; then setenv sw_tryactive 2; setenv sw_active 1; saveenv; run ub0; else setenv sw_tryactive 2; setenv sw_active 2; saveenv; run ub1; fi
boot_rd_auto_sw_img=if itest.s ${sw_tryactive} == 2; then run boot_by_part; else run boot_by_tryactive; fi
bootargs=console=ttyS0,115200n1 loglevel=8 isolcpus=1 earlycon=uart8250,mmio32,0x11002000 bootpart=ubi0
bootdelay=2
bootmenu_0=Startup system (Default)=run boot_rd_auto_sw_img
bootmenu_1=Upgrade firmware=mtkupgrade fw
bootmenu_2=Upgrade ATF BL2=mtkupgrade bl2
bootmenu_3=Upgrade ATF FIP=mtkupgrade fip
bootmenu_4=Http Upgrade=uip main; reset
bootmenu_5=Upgrade single image=mtkupgrade simg
bootmenu_6=Load image=mtkload
bootpart=0
con=0
en_wdt=wdt on 30
ethact=ethernet@15100000
fdtcontroladdr=5ff3a000
fw_ver_a=V1.11B03
i=7
ipaddr=192.168.200.1
loadaddr=0x46000000
mtdids=nmbm0=nmbm0
mtdparts=nmbm0:1024k(bl2),512k(u-boot-env),2048k(factory),2048k(fip),51200k(ubi),51200k(ubi1),256k(Odm),512k(Config1),512k(Config2),5120k(Storage)
mupgrade_en=1
netmask=255.255.255.0
power_on_rst_recov=setexpr i 8;setexpr con 1;while itest ${con} -gt 0; do if gpio input 10; then gpio toggle 44; else setexpr con 0; fi; sleep 1; if itest ${i} -eq 0; then setexpr con 0; else setexpr i ${i} - 1; fi;done;if itest ${i} -gt 0; then if itest ${i} -lt 4; then setenv FW_RESET_FLAG 1; saveenv; echo set FW_RESET_FLAG to 1; gpio toggle 44;sleep 0.2; gpio toggle 44;sleep 0.2; gpio toggle 44;sleep 0.2; gpio toggle 44;sleep 0.2; gpio toggle 44;sleep 0.2; gpio toggle 44; fi;else uip main;fi
serverip=192.168.200.2
set_act1=if itest.s ${sw_active} != 1; then setenv sw_active 1; saveenv; fi
set_act2=if itest.s ${sw_active} != 2; then setenv sw_active 2; saveenv; fi
stderr=serial@11002000
stdin=serial@11002000
stdout=serial@11002000
sw_active=1
sw_tryactive=2
ub0=setenv bootpart 0; mtkboardboot; run ub0to1; uip main; reset
ub0to1=setenv bootpart 1; mtkboardboot
ub1=setenv bootpart 1; mtkboardboot; run ub1to0; uip main; reset
ub1to0=setenv bootpart 0; mtkboardboot
D-Link AQUILA PRO AI M60 A1 @ 51004:~#
Wengier Gut Router landet nach dem zweiten Flashvorgang aus dem Freifunk Recovery Image, immer wieder im Recovery Image
So sieht ein gelungener vollständiger Flashvorgang von Original Firmware: 1.11.03 von 2022 aus
D-Link AQUILA PRO AI M60 A1 @ OpenWrt:~# cat /proc/cmdline
console=ttyS0,115200n1 loglevel=8 isolcpus=1
D-Link AQUILA PRO AI M60 A1 @ OpenWrt:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00020000 "BL2"
mtd1: 00080000 00020000 "u-boot-env"
mtd2: 00200000 00020000 "Factory"
mtd3: 00200000 00020000 "FIP"
mtd4: 03200000 00020000 "ubi"
mtd5: 03200000 00020000 "ubi1"
mtd6: 00040000 00020000 "Odm"
mtd7: 00080000 00020000 "Config1"
mtd8: 00080000 00020000 "Config2"
mtd9: 00a00000 00020000 "Storage"
D-Link AQUILA PRO AI M60 A1 @ OpenWrt:~# fw_printenv
baudrate=115200
boot_by_part=if itest.s ${mupgrade_en} == 1; then aup;fi;if itest.s
${bootpart} == 0; then run set_act1; run ub0; else run set_act2; run ub1; fi
boot_by_tryactive=if itest.s ${sw_tryactive} == 0; then setenv
sw_tryactive 2; setenv sw_active 1; saveenv; run ub0; else setenv
sw_tryactive 2; setenv sw_active 2; saveenv; run ub1; fi
boot_rd_auto_sw_img=if itest.s ${sw_tryactive} == 2; then run
boot_by_part; else run boot_by_tryactive; fi
bootargs=console=ttyS0,115200n1 loglevel=8 isolcpus=1
earlycon=uart8250,mmio32,0x11002000 bootpart=ubi0
bootdelay=2
bootmenu_0=Startup system (Default)=run boot_rd_auto_sw_img
bootmenu_1=Upgrade firmware=mtkupgrade fw
bootmenu_2=Upgrade ATF BL2=mtkupgrade bl2
bootmenu_3=Upgrade ATF FIP=mtkupgrade fip
bootmenu_4=Http Upgrade=uip main; reset
bootmenu_5=Upgrade single image=mtkupgrade simg
bootmenu_6=Load image=mtkload
bootpart=1
con=0
en_wdt=wdt on 30
ethact=ethernet@15100000
fdtcontroladdr=5ff3a000
fw_ver_a=V1.11B03
fw_ver_b=V1.20B02
i=7
ipaddr=192.168.200.1
loadaddr=0x46000000
mtdids=nmbm0=nmbm0
mtdparts=nmbm0:1024k(bl2),512k(u-boot-env),2048k(factory),2048k(fip),51200k(ubi),51200k(ubi1),256k(Odm),512k(Config1),512k(Config2),5120k(Storage)
mupgrade_en=1
netmask=255.255.255.0
power_on_rst_recov=setexpr i 8;setexpr con 1;while itest ${con} -gt 0;
do if gpio input 10; then gpio toggle 44; else setexpr con 0; fi;
sleep 1; if itest ${i} -eq 0; then setexpr con 0; else setexpr i ${i}
- 1; fi;done;if itest ${i} -gt 0; then if itest ${i} -lt 4; then
setenv FW_RESET_FLAG 1; saveenv; echo set FW_RESET_FLAG to 1; gpio
toggle 44;sleep 0.2; gpio toggle 44;sleep 0.2; gpio toggle 44;sleep
0.2; gpio toggle 44;sleep 0.2; gpio toggle 44;sleep 0.2; gpio toggle
44; fi;else uip main;fi
serverip=192.168.200.2
set_act1=if itest.s ${sw_active} != 1; then setenv sw_active 1; saveenv; fi
set_act2=if itest.s ${sw_active} != 2; then setenv sw_active 2; saveenv; fi
stderr=serial@11002000
stdin=serial@11002000
stdout=serial@11002000
sw_active=2
sw_tryactive=2
ub0=setenv bootpart 0; mtkboardboot; run ub0to1; uip main; reset
ub0to1=setenv bootpart 1; mtkboardboot
ub1=setenv bootpart 1; mtkboardboot; run ub1to0; uip main; reset
ub1to0=setenv bootpart 0; mtkboardboot
Der Grund ist, dass hier schon zwei Firmware Versionen drauf waren:
neben fw_ver_a=V1.11B03 die aktuelle fw_ver_b=V1.20B02
Außerdem geht der Router immer wieder auf das zweite Image...
sw_active=2 sw_tryactive=2
Lösung:
fw_printenv | grep -E "bootpart|sw_active" fw_setenv bootpart 0 fw_setenv sw_active 1 fw_printenv | grep -E "bootpart|sw_active" reboot
Links
https://support.dlink.com/productinfo.aspx?m=M60 VORSICHT