1 (edytowany przez kszaq 2025-05-15 20:46:22)

Temat: D-Link M30/CP (IDU dla Plusa)

Kupiłem w niezłej cenie (jeszcze kilka sztuk zostało) router D-Link M30 w wersji dla Plusa - ma logo na obudowie i nazwę modelu M30CP. Oczywiście pierwszym krokiem było wgranie OpenWRT, ale... nie poszło. Okazuje się, że router ma specjalną wersję firmware z dodaną obsługą ODU, w związku z tym nie łyka softu dla modelu standardowego, a tym samym nie łyka obrazu recovery z OpenWRT.

Pobranie firmware ze strony producenta, szybka analiza i wygląda na to, że jedyną różnicą jest jedna cyfra w numerze modelu w nagłówku: zamiast DLK6E6110001 mamy DLK6E6110004. Reszta się pokrywa.

Można zmienić numer w skrypcie do kompilacji i zbudować obraz od zera albo po prostu podmienić nagłówek w obrazie i przeliczyć jego sumę kontrolną (na podstawie https://github.com/openwrt/openwrt/blob … ommands.mk). Przy założeniu, że pobrany obraz ma nazwę recovery.bin:

# Zmiana LOCALE, by uniknąć problemów z printf
LANG=C
# Podmiana naglowka
printf 4 | dd of=recovery.bin bs=1 seek=11 conv=notrunc
# Obliczenie sumy kontrolnej
dd if=recovery.bin bs=78 count=1 | od -v -w2 -tu2 -An --endian little | awk '{s+=65535-$1;}END{s%=65535;printf "%c%c",s%256,s/256;}' | dd of=recovery.bin bs=1 seek=78 conv=notrunc

W Wiki OpenWRT jest mowa o tym, że aby przywrócić firmware fabryczny, należy mieć obraz działający przed wgraniem OWRT, dlatego zanim uwolnimy sprzęt, warto na wszelki wypadek wgrać 2x firmware, który potem gdzieś się zachomikuje.

Przydatne linki:

Zalety: w wersji CP niedrogi, może się podobać, 512 MB RAM, 4xLAN.
Wady: ze względu na układ partycji niewiele miejsca na pakiety, z obrazem z linku powyżej mamy 30.8 MB wolnego na czystym systemie.

Edit 11.05.2025:
Wersja CP przechowuje adres MAC z innym offsetem niż standardowa. Aby poprawić MAC dla WiFi, należy edytować plik /etc/hotplug.d/ieee80211/11_fix_wifi_mac i w odpowiednim miejscu wpisać:

dlink,aquila-pro-ai-m30-a1)
        addr=$(mtd_get_mac_binary "Odm" 0x87)
        [ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress
        [ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress
        ;;

Jeśli chcemy mieć poprawny adres MAC również dla Ethernetu, należy zmodyfikować DTB, ustalając wartość

/soc/spi@1100a000/spi_nand@0/partitions/partition@6980000/nvmem-layout/macaddr@81 reg

na

87 6

Można zrobić to na gotowym obrazie: pobieramy sysupgrade (koniecznie dla tej samej wersji, którą już mamy na routerze) i wykonujemy następujące polecenia (na komputerze):

tar xvf luci-24.10-snapshot-r28627-0b392b925f-mediatek-filogic-dlink_aquila-pro-ai-m30-a1-squashfs-sysupgrade.bin

perl -pi -e 's/mac-base\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x3D\x00\x00\x00\x81/mac-base\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x
3D\x00\x00\x00\x87/' sysupgrade-dlink_aquila-pro-ai-m30-a1/kernel

mkimage -F sysupgrade-dlink_aquila-pro-ai-m30-a1/kernel

Następnie, plik sysupgrade-dlink_aquila-pro-ai-m30-a1/kernel transferujemy przez SCP do /tmp routera i wykonujemy polecenie:

ubiupdatevol /dev/ubi0_0 /tmp/kernel

Po restarcie routera powinniśmy mieć prawidłowy MAC dla interfejsów WAN (internet) i LAN (eth0).

2

Odp: D-Link M30/CP (IDU dla Plusa)

Niezle,a nie mozna ubootmoda wgrac i zrobic nowy uklad partycji jak w xiaomi ax3000t?

Dom : router https://i.imgur.com/IuB6Zwy.png | TP-LINK T1700G-28TQ |Zyxel XGS-1210-12 | 6x Ruckus r310 unleashed  + Ruckus icx7150-c12p | Truenas scale 124TB 25Gb| Xpenology 12TB | apc smart ups 750 lcd smile 100Mb/s - 25Gb/s
Podróżne : GL.Inet MT3000  +1TB hdd
Działka : rb260gs 1j wdm 1Gb+ ruckus r310 + nb m5 + kilka kamer ip  + panel 285Wp + lifepo4 12v 60Ah .

3

Odp: D-Link M30/CP (IDU dla Plusa)

"Niech ktoś..." big_smile Pewnie się da, ale nie mam wystarczającej wiedzy w tym temacie.

Zmieniłem pierwszy post, wystarczą 2 polecenia do podmiany headera w obrazie OpenWRT. smile

4

Odp: D-Link M30/CP (IDU dla Plusa)

Na pewno będzie potrzebna konsola szeregowa ...
Sprawdziłbym najpierw , czy da się uruchomić uboot przez serial ( co będzie potrzebne jak się cały flash popsuje).
Do tego trzeba zbackupować wszystkie aktualne partycje ( co by mieć co przywracać)...

5

Odp: D-Link M30/CP (IDU dla Plusa)

Ehh przy piątku mącicie w głowach ludziom... Wziąłem se sztukę, fajny design, normalny zasilator,  jak się sprawdzi to kszajomkę zastąpi.

Dom : router https://i.imgur.com/IuB6Zwy.png | TP-LINK T1700G-28TQ |Zyxel XGS-1210-12 | 6x Ruckus r310 unleashed  + Ruckus icx7150-c12p | Truenas scale 124TB 25Gb| Xpenology 12TB | apc smart ups 750 lcd smile 100Mb/s - 25Gb/s
Podróżne : GL.Inet MT3000  +1TB hdd
Działka : rb260gs 1j wdm 1Gb+ ruckus r310 + nb m5 + kilka kamer ip  + panel 285Wp + lifepo4 12v 60Ah .

6 (edytowany przez ambrozy5 2025-05-09 14:18:21)

Odp: D-Link M30/CP (IDU dla Plusa)

https://www.mediaexpert.pl/komputery-i- … mesh-2-szt a w media 2szt za 249... Nowe z gwarancją...

A za 329zł mają jedną sztukę, dziwne...

Dom : router https://i.imgur.com/IuB6Zwy.png | TP-LINK T1700G-28TQ |Zyxel XGS-1210-12 | 6x Ruckus r310 unleashed  + Ruckus icx7150-c12p | Truenas scale 124TB 25Gb| Xpenology 12TB | apc smart ups 750 lcd smile 100Mb/s - 25Gb/s
Podróżne : GL.Inet MT3000  +1TB hdd
Działka : rb260gs 1j wdm 1Gb+ ruckus r310 + nb m5 + kilka kamer ip  + panel 285Wp + lifepo4 12v 60Ah .

7

Odp: D-Link M30/CP (IDU dla Plusa)

Szkoda, że nie potrzebuję dwóch, bo 125 zł za sztukę to mega przystępna cena. smile

8

Odp: D-Link M30/CP (IDU dla Plusa)

kszaq napisał/a:

Szkoda, że nie potrzebuję dwóch, bo 125 zł za sztukę to mega przystępna cena. smile

I mnie to samo.

Dom : router https://i.imgur.com/IuB6Zwy.png | TP-LINK T1700G-28TQ |Zyxel XGS-1210-12 | 6x Ruckus r310 unleashed  + Ruckus icx7150-c12p | Truenas scale 124TB 25Gb| Xpenology 12TB | apc smart ups 750 lcd smile 100Mb/s - 25Gb/s
Podróżne : GL.Inet MT3000  +1TB hdd
Działka : rb260gs 1j wdm 1Gb+ ruckus r310 + nb m5 + kilka kamer ip  + panel 285Wp + lifepo4 12v 60Ah .

9

Odp: D-Link M30/CP (IDU dla Plusa)

Kupcie dwa, ktoś pewnie odkupi sztukę.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

10 (edytowany przez kszaq 2025-05-10 11:18:50)

Odp: D-Link M30/CP (IDU dla Plusa)

Jeśli ktoś z Was nabędzie "standardową" wersję, proszę o sprawdzenie pod jakim offsetem macie zapisany adres MAC na /dev/mtd6 - u mnie jest on pod 0x87, a nie 0x81, jak czyta OpenWRT. Jestem ciekaw, czy jest to kwestia wersji CP, czy "standardowe" egzemplarze też tak mają.

11

Odp: D-Link M30/CP (IDU dla Plusa)

Mam pytanie, ponieważ nie potrafię znaleźć jednoznacznej informacji - czy w obrazie kernela (FIT, ITB) można w prosty sposób podmienić DTB? Mogę go wyłuskać przy pomocy dumpimage, zmienić wartość, która mnie interesuje przy pomocy fdtput, ale jak go z powrotem wsadzić w obraz? Prosta podmiana wartości w hxd nie wystarczy, bo mamy sumy kontrolne.

12

Odp: D-Link M30/CP (IDU dla Plusa)

No właśnie musisz to odpowiednio złożyć.

Nie możesz używać imagebuildera? Rozkompiluj na dts'a, zmień, skompiluj, włóż w odpowiedni katalog i zrób obraz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: D-Link M30/CP (IDU dla Plusa)

Ale tyle ściągać, tyle czekać... A podmienić chcę tylko 1 bajt.

Będę próbować tak: podmieniam bajt w HxD i przeliczam sumy komendą

mkimage -F

. Zobaczymy, czy wstanie.

Do pierwszego posta dodałem informację na temat "poprawienia" MAC dla WiFi w wersji CP.

14

Odp: D-Link M30/CP (IDU dla Plusa)

Ile ściągać? Tylko imagebuildera.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: D-Link M30/CP (IDU dla Plusa)

Mając gotowy obraz (od Ciebie Cezary) nie chce mi się bawić w budowanie, jeśli to tylko jeden bajt do podmiany. big_smile

Dodałem w pierwszym poście informację jak można to wyedytować w skompilowanym obrazie. Wszystko oczywiście tyczy się wersji CP z logo Plusa, na "normalnym" nie trzeba się w takie cuda bawić.

16

Odp: D-Link M30/CP (IDU dla Plusa)

Teoretycznie mógłbym zrobić obrazy dla niego, ale musiał by być to nowy identyfikator urządzenia bo po czymś trzeba rozróżnić że ma brać adres mac a takiego a nie innego miejsca.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17

Odp: D-Link M30/CP (IDU dla Plusa)

A czy nie lepiej przerobić cp na zwykły? Cczym się różni ? U-bootem i zmiennymi w nim? Wg mnie szkoda sensu rozdrabniać, do tego nie ma u-bootmoda pod styl partycji openwrt.

Dom : router https://i.imgur.com/IuB6Zwy.png | TP-LINK T1700G-28TQ |Zyxel XGS-1210-12 | 6x Ruckus r310 unleashed  + Ruckus icx7150-c12p | Truenas scale 124TB 25Gb| Xpenology 12TB | apc smart ups 750 lcd smile 100Mb/s - 25Gb/s
Podróżne : GL.Inet MT3000  +1TB hdd
Działka : rb260gs 1j wdm 1Gb+ ruckus r310 + nb m5 + kilka kamer ip  + panel 285Wp + lifepo4 12v 60Ah .

18

Odp: D-Link M30/CP (IDU dla Plusa)

Ale jeżeli adres mac jest pod innym adresem to też z nim coś należało by zrobić

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19

Odp: D-Link M30/CP (IDU dla Plusa)

Cezary napisał/a:

Teoretycznie mógłbym zrobić obrazy dla niego, ale musiał by być to nowy identyfikator urządzenia bo po czymś trzeba rozróżnić że ma brać adres mac a takiego a nie innego miejsca.

Identyfikator może zostać taki sam. Wersja CP potrzebuje innego nagłówka w recovery https://github.com/RolandoMagico/openwr … ic.mk#L505 :

IMAGE/recovery-cp.bin := sysupgrade-tar | pad-to $$(IMAGE_SIZE) | dlink-ai-recovery-header DLK6E6110004 \x6A\x28\xEE\x0B \x00\x00\x2C\x00 \x00\x00\x20\x03 \x61\x6E

A w kwestii odczytywania MAC z innego adresu, można sprawdzać w preinit czy na partycji Odm mamy DLK6E6110004 i jeśli tak, podmieniać odpowiednio MAC, to samo dla WiFi. Postaram się sprawdzić to podejście na dniach.

20

Odp: D-Link M30/CP (IDU dla Plusa)

No nie może zostać ten sam. Muszą działać także obrazy dla normalnego routera, nie mogę zmienić nagłówka dla tego i zignorować oryginał.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

21

Odp: D-Link M30/CP (IDU dla Plusa)

Jeśli dodać tę linię, to powinien zbudować się dodatkowo obraz z sufiksem -cp, obok normalnego. Sysupgrade zostaje ten sam, bo OpenWRT nie będą obchodzić nagłówki producenta. smile

22

Odp: D-Link M30/CP (IDU dla Plusa)

A, czyli chcesz po prostu dodatkowy recovery

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

23

Odp: D-Link M30/CP (IDU dla Plusa)

Tak. Które przyda się wyłącznie, jeśli ktoś będzie chciał na tej wersji zainstalować (ja już mam) i nie ogarnie tych kilku komend z pierwszego posta.

24

Odp: D-Link M30/CP (IDU dla Plusa)

Dodałem, będzie wraz następnym builder. Tą sprawę z adresem mac opanuj.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

25

Odp: D-Link M30/CP (IDU dla Plusa)

Coś takiego: https://github.com/kszaq/openwrt/commit … 6992.patch

Tylko nie jestem pewien, czy ustawienie MAC dla eth0 na etapie preinit spowoduje ustawienie tego dla wszystkich portów? W ip link widocznie są jako lan1@eth0, lan2@eth0 itd.