Dzisiaj jest 25 wrz 2022, 14:03

Strefa czasowa UTC+1godz. [letni]




Nowy temat Odpowiedz w temacie  [ Posty: 13 ] 
Autor Wiadomość
 Tytuł: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 19 gru 2021, 14:18 
Offline
Użytkownik

Rejestracja: 28 wrz 2010, 21:44
Posty: 55
Mercusys MR1800X i MR70X wgranie breed + OpenWrt

Witam
Oba modele mercusys to najtansze urzadzenia z wifi6 na ktore mozna wrzucic OpenWrt lub Padavan.
MT7621DA (zintegrowane 128MB DDR3)
3xLAN 1xWan , wszystko 1Gb
SPI 16MB (Winbond W25Q128)
MT7915 radio AX DBDC (rownolegla praca 2x2 2.4Ghz i 5ghz)
2 diody led
przycisk reset GPIO#8
dioda LED pomaranczowa GPIO#3
dioda LED zielona GPIO#4
diody sa polaczone tak ze nie mogą świecić jednoczesnie:
        _-|>|-_
       |       |
GPIO4--|_-|<|-_|-- GPIO3


konsola szeregowa pod J1 (115.2k)
1.TX
2.RX
3.GND
4. 3.3V

(nie)standardowa partycja flash oraz TPlink safe loader nie pozwala na instalacje Padavan firmware czy OpenWrt

dev:    size   erasesize  name offset
mtd0: 00040000 00010000 "uboot" 00000000
mtd1: 00400000 00010000 "uImage" 00040000
mtd2: 00bb0000 00010000 "rootfs" 00440000
mtd3: 00010000 00010000 "ART" 00ff0000


Praktycznie jest jeszcze jedna partycja ktora nie jest zdefiniowana a zawiera adres mac i ustawienia softu OEM
00fa0000-00ff0000 czyli końcówka "rootfs"

Pierwszym pomysłem jest oczywiście wykonanie kopii partycji i wysłanie ich w bezpieczne miejsce przez scp ktory jest dostepny pod konsola szeregową
szczególnie ważna jest partycja mtd3 ktora bedzie potrzebna pozniej

drugim krokiem jest wgranie breed .Co zmieni rozkład partycji SPI na klasyczny dla ralinka . Okazuje ze (prawie) pasuje breed-mt7621-xunlei-timeplug.bin z tym małym twistem ze reset jest dostępny po zwarciu 3.3V do lewej nogi diody LED DS1 co odpowiada GPIO#4


Po wgraniu breed
dd if=/tmp/breed-mt7621-xunlei-timeplug.bin of=/dev/mtd0 bs=512

mozemy wgrac factory fw który bedzie kopią partycji mtd3 oraz ustawienia adresów MAC w sekcji breed .Bo oczywiscie adresy nie były trzymane w mtd3 .
ustawiamy RF1 Wlan MAC (adres +2)
LAN MAC (adres z etykiety)
oraz WAN MAC (adres +1)

budowa Openwrt zaczyna sie od przygotowania dts
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

#include "mt7621.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

/ {
   compatible = "mercusys,mr1800x", "mediatek,mt7621-soc";
   model = "Mercusys MR1800X";

   aliases {
      led-boot = &led_sys_orange;
      led-failsafe = &led_sys_orange;
      led-running = &led_sys_green;
      led-upgrade = &led_sys_orange;
      label-mac-device = &gmac0;
   };

   chosen {
      stdout-path = "serial0:115200n8";
      bootargs = "console=ttyS0,115200n8";
   };

   leds {
      compatible = "gpio-leds";

      led_sys_orange: sys_orange {
         label = "orange:sys";
         gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
         default-state = "off";
      };

                led_sys_green: sys_green {
                        label = "green:sys";
                        gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };


   };

   keys {
      compatible = "gpio-keys";

      reset {
         label = "reset";
         gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
         debounce-interval = <60>;
         linux,code = <KEY_RESTART>;
      };
   };
};

&spi0 {
   status = "okay";

   flash@0 {
      compatible = "jedec,spi-nor";
      reg = <0>;
      spi-max-frequency = <50000000>;
      m25p,fast-read;

      partitions {
         compatible = "fixed-partitions";
         #address-cells = <1>;
         #size-cells = <1>;

         partition@0 {
            label = "u-boot";
            reg = <0x0 0x30000>;
            read-only;
         };

         partition@30000 {
            label = "u-boot-env";
            reg = <0x30000 0x10000>;
            read-only;
         };

         factory: partition@40000 {
            label = "factory";
            reg = <0x40000 0x10000>;
            read-only;
         };

         partition@50000 {
            compatible = "denx,uimage";
            label = "firmware";
            reg = <0x50000 0xfb0000>;
         };
      };
   };
};

&pcie {
   status = "okay";
};

&pcie1 {
   wifi@0,0 {
      compatible = "mediatek,mt76";
      reg = <0x0000 0 0 0 0>;
      mediatek,mtd-eeprom = <&factory 0x0000>;
     mediatek,disable-radar-background;
   };
};

&gmac0 {
   nvmem-cells = <&macaddr_factory_e000>;
   nvmem-cell-names = "mac-address";
};

&switch0 {
   ports {

      port@1 {
         status = "okay";
         label = "lan1";
      };

      port@2 {
         status = "okay";
         label = "lan2";
      };

      port@3 {
         status = "okay";
         label = "lan3";
      };
   };
};

&gmac1 {
       status = "okay";
       label = "wan";
       phy-handle = <&ethphy0>;
      
       nvmem-cells = <&macaddr_factory_e006>;
       nvmem-cell-names = "mac-address";
};

&mdio {
       ethphy0: ethernet-phy@0 {
               reg = <0>;
       };
};

&state_default {
   gpio {
      groups = "i2c", "wdt";
      function = "gpio";
   };
};

&factory {
   compatible = "nvmem-cells";
   #address-cells = <1>;
   #size-cells = <1>;

   macaddr_factory_e000: macaddr@e000 {
      reg = <0xe000 0x6>;
   };

   macaddr_factory_e006: macaddr@e006 {
      reg = <0xe006 0x6>;
   };
};



oraz dodatnie wpisu w image/mt7621.mk
define Device/mercusys_mr1800x
  $(Device/dsa-migration)
  IMAGE_SIZE := 16064k
  UIMAGE_NAME := MR1800X
  DEVICE_VENDOR := Mercusys
  DEVICE_MODEL := MR1800X
  DEVICE_PACKAGES := kmod-mt7915e
endef
TARGET_DEVICES += mercusys_mr1800x


Zbudowany obraz sysupgrade flashujemy z poziomu breed i cieszymy się jak dobre są sterowniki AX mt76 w porównaniu z MT7612 czy MT7603 :)
ps.
Oczywiscie mozna by zbudowac obraz kompatybilny z safeloaderem ale to zostawie dla innych
edit : dodanie info o partycji z ustawieniami OEM
edit2 : Zbudowałem i przetestowałem padavan (github.com/hanwckf/rt-n56u) .Ale ta opcja przyda się dla kogoś kto potrzebuje maksymalnej wydajnosci np z internetem 300Mbit i szybszym . W tym firmware jest wsparcie dla sprzętowego NAT i Wireless offload .
link do konfiguracji umożliwiającej zbudowanie padavan z pełną obsługą routera
https://drive.google.com/file/d/11VfK0J8jfyb_FkJC_xLGaGmODohGRdtU/view?usp=sharing
edit3: dodane "mux phy0/4 to gmac1" oraz "disable unsupported background radar detection"


Ostatnio zmieniony 14 wrz 2022, 12:58 przez nicefile, łącznie zmieniany 4 razy

Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 19 gru 2021, 15:30 
Offline
Administrator
Awatar użytkownika

Rejestracja: 10 kwie 2010, 00:28
Posty: 14083
Lokalizacja: Warszawa
Wrzuć to na gita openwrt. Przynajmiej zostanie dla potomnych.

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 19 gru 2021, 21:38 
Offline
Użytkownik

Rejestracja: 28 wrz 2010, 21:44
Posty: 55
taki mocny nie jestem by to obronić w repo . Szczegolnie jak safeloader jest wspierany w OpenWrt i jak pokazali rosjanie tutaj: https://4pda.to/forum/index.php?showtop ... =109276821 da się to zmontować wyciagajac dane ze zrodelek GPL dla MR1800x i MR70x


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 19 gru 2021, 21:47 
Offline
Administrator
Awatar użytkownika

Rejestracja: 10 kwie 2010, 00:28
Posty: 14083
Lokalizacja: Warszawa
On kosztuje 170zł. Tańszy niż totolink.

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 19 lut 2022, 13:07 
Offline
Użytkownik

Rejestracja: 28 wrz 2010, 21:44
Posty: 55
jeśli ktoś nie może czekać na własny obraz to po wgraniu breed i factory (z mac adresami) może wrzucić sysupgrade od dir-853-r1

Radio zadziała po zrzuceniu eepromu do pliku:
cat /dev/mtd2 > /lib/firmware/mediatek/mt7915_eeprom_dbdc.bin

i instalacji pakietu radia
opkg update; opkg install kmod-mt7915e

porty są numerowane inaczej i "lan4" robi za WAN
Działają również obie diody (oczywiscie nie jednoczesnie)
blue:wlan5g to dioda led zielona
blue:wlan2g to dioda led pomarańczowa
Przycisk reset dziala bo jest pod tym samym gpio co w dir-853-r1 wiec mamy failsafe :)

w sekcji
/etc/hotplug.d/ieee80211/10_fix_wifi_mac zamienić 0 na 1

        dlink,dir-853-r1)
                if [ "$PHYNBR" = "[b]1[/b]" ]; then


W ten sposób można używać oficjalnych stabilnych obrazów sysupgrade dir-853-r1 no i nie trzeba nic samodzielnie kompilować.
Jeśli ktoś bardzo chce zmontować swój zestaw oprogramowania to może użyć openwrt-imagebuilder gdzie budowa firmware trwa mniej niż 3 minuty :)


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 8 cze 2022, 23:03 
Offline
Użytkownik

Rejestracja: 8 cze 2022, 22:10
Posty: 4
Cześć, z racji tego, że chciałem wykorzystać potencjał łącza internetowego, postanowiłem skorzystać z możliwości wgrania Padavana do rutera. Niestety natrafiłem na problemy i chciałem prosić o wyjaśnienie pewnych zagadnień. Myślę, że mogą się one przydać też innym użytkownikom.

Na początku co udało się zrobić:
1. Skompilować Padavana, ważne aby zwrócić uwagę na wszystkie elementy (np. wersja systemu Ubuntu pod którą będziemy kompilować system).
2. Wlutowanie goldpinów i podłączenie do terminala routera.
3. Zrzucenie wszystkich partycji za pomocą dd i skopiowanie na inne urządzenie za pomocą scp.
4. Wgranie breed-mt7621-xunlei-timeplug.bin na mtd0.

Na tym kroku się zatrzymałem. Po reboocie na port szeregowy przestały przychodzić dane. Próbowałem resetować router poprzez: odłączenie zasilania, zwarcie 3,3V z jedną z nóg diody, włączenie zasilania. Nie wiem czy powinno zadziałać DHCP, ale ustawiłem adres: 192.168.1.11/24, ale nie było pinga do adresu 192.168.0.1. Próbowałem resetu przy użyciu drugiej nogi diody, ale bez efektu.
Co powinienem zrobić?


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 8 cze 2022, 23:09 
Offline
Administrator
Awatar użytkownika

Rejestracja: 10 kwie 2010, 00:28
Posty: 14083
Lokalizacja: Warszawa
Wylutować flash i na programatorze wgrać poprawny. Wgrywając breeda nadpisałeś bootloader, jeżeli już nic się nie odzywa na konsoli to znaczy tylko tyle że go ubiłeś programowo. I teraz żeby go ożywić potrzebujesz mieć we flash działający bootloader.

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 9 cze 2022, 20:40 
Offline
Użytkownik

Rejestracja: 8 cze 2022, 22:10
Posty: 4
obsy, dzięki za informacje. Zatem:

1. Czy ktoś dysponuje flashem i mógłby udostępnić? Ewentualnie, czy mając zrobione kopie partycji jestem w stanie odtworzyć firmware nadpisując ten zgrany? W nim pod adresem 0x00, mam wartość FF, potem same zera, aż do adresu 0x200, gdzie są wpisane 4 bajty: 1C 04 00 10, potem znowu zera. Więcej danych jest dopiero pod adresem 0x04E0. Nadpisać to danymi z backupu /dev/mtd0? MAC-a znalazłem pod adresem: 0x00FA0008.

2. Co zrobiłem nie tak, że po wgraniu breeda pod adres uBoot'a według instrukcji(?) ucegliłem router? I jak to powinienem zrobić prawidłowo?


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 9 cze 2022, 22:05 
Offline
Administrator
Awatar użytkownika

Rejestracja: 10 kwie 2010, 00:28
Posty: 14083
Lokalizacja: Warszawa
1. Tak, jeżeli zrobiłeś kopię partycji to masz kopię całej pamięci flash. Wgrywasz je pod określone adresy do pamięci.
2. Albo po prostu bootloader był nie ten, masz inną wersję routera. Trudno powiedzieć co się stało, ubiłeś to ubiłeś, jak chcesz się bawić w detektywa to możesz sprawdzać po kolei czy np. wgranie tego bootloader nie uwali innego egzemplarza tego modelu.

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 9 cze 2022, 22:49 
Offline
Użytkownik

Rejestracja: 8 cze 2022, 22:10
Posty: 4
Nadpisanie fragmentu uszkodzonego flasha backupem mtd0 przywróciło router do życia :) Tyle, że jestem w punkcie wyjścia.

Po skompilowaniu Padavana otrzymałem pliki: MR1800(...).trx, ramdisk i zImage. Czy jeżeli uda mi się wgrać odpowiedniego breeda (zakładam, że ten którego użyłem nie był dobry), to będę w stanie wgrać Padavana? Jak przepisać właściwy MAC adres? Chyba że w ogóle mogę wgrać programatorem odpowiednio przygotowany firmware?


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 10 cze 2022, 06:13 
Offline
Administrator
Awatar użytkownika

Rejestracja: 10 kwie 2010, 00:28
Posty: 14083
Lokalizacja: Warszawa
Mając programator możesz wgrać wszystko już na swoje miejsce. Jak tylko masz co wgrać i wiesz co i gdzie powinno być.

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 11 cze 2022, 19:15 
Offline
Użytkownik

Rejestracja: 28 wrz 2010, 21:44
Posty: 55
Nowalu pisze:
Nadpisanie fragmentu uszkodzonego flasha backupem mtd0 przywróciło router do życia :) Tyle, że jestem w punkcie wyjścia.

Po skompilowaniu Padavana otrzymałem pliki: MR1800(...).trx, ramdisk i zImage. Czy jeżeli uda mi się wgrać odpowiedniego breeda (zakładam, że ten którego użyłem nie był dobry), to będę w stanie wgrać Padavana? Jak przepisać właściwy MAC adres? Chyba że w ogóle mogę wgrać programatorem odpowiednio przygotowany firmware?

Patrze i wersja breed-mt7621-xunlei-timeplug.bin jest ostatnia z 2021-12-15 22:51 wiec mamy tą samą wersje . Instalacja z uzyciem 'dd' sprawia czasami problemy inną opcją jest uzycie komendy (nietestowane)
mtd -r write breed.bin uboot

Lub jesli juz masz to pod programatorem to normalnie wrzucasz breed.bin od początkowego adresu i wlutowujesz .


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Mercusys MR1800X i MR70X wgranie breed + OpenWrt/Padavan
Post: 14 cze 2022, 22:47 
Offline
Użytkownik

Rejestracja: 8 cze 2022, 22:10
Posty: 4
Dzięki nicefile, ta komenda zadziałała, breed ruszył i udało się wgrać Padavana :) Teraz pozostało testowanie. Póki co, jest jakiś problem z przekazywaniem zapytań dns, ale to jakoś ogarnę.


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 13 ] 

Strefa czasowa UTC+1godz. [letni]


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 39 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów

Szukaj:
Przejdź do:  
designed by digi-led.pl
...Copyright © 2010-2013, Ekipa openrouter.info