1

Temat: Xiaomi R3G - kupiony używany, jak to posprzątać?

Cześć,

Od dawien dawna tu zaglądam, ale dopiero dziś mam okazję coś napisać.
Mam już trochę doświadczenia ze zmianą firmware w routerach - kilka instalacji OpenWRT za mną, jeden router znajomego ożywiony przez serial. Nie jestem całkowicie świeży smile

Ale ja nie o tym. Po przeprowadzce na nowe mam łącze po światłowodzie 300/60 Mbps więc postanowiłem kupić na szybko jakiś porządny router i nie za zylion. Znalazłem używkę Xiaomi R3G i bez większego wahania w dobrej cenie go łyknąłem (tak, jest to słynna wersja v1).

Niestety, ktoś już przy nim grzebał i router ma wgrany soft Padavan. Trochę o tym poczytałem i prawie natychmiast zapadła decyzja na zmianę na OpenWRT - raz, że nie wiadomo co i kto tam pomajstrował, a dwa - ten Padavan to wygląda jak jakieś druciarstwo. Już nie rozwijany, jakaś grupka ludzi siedzi na ruskim forum i coś tam sobie kleją - nie, to zdecydowanie nie dla mnie, wolę jakieś distro z 'głównego nurtu'.

I w tym miejscu trochę utknąłem.

1. Z oczywistych względów, nie mam kopii zapasowej oryginalnego softu z tego routera.

2. Uruchomiłem SSH, trochę w nim pobuszowałem - nie zgadza się rozkład partycji MTD porównując do tego co powinno być wg. wiki OpenWRT: https://openwrt.org/toh/xiaomi/mir3g#flash_layout

/home/root # cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00080000 00020000 "Bootloader"
mtd1: 00080000 00020000 "BootEnv"
mtd2: 00040000 00020000 "Factory"
mtd3: 00040000 00020000 "crash"
mtd4: 00040000 00020000 "crash_syslog"
mtd5: 00040000 00020000 "reserved0"
mtd6: 00400000 00020000 "kernel0"
mtd7: 00140000 00020000 "Kernel"
mtd8: 012c0000 00020000 "RootFS"
mtd9: 00100000 00020000 "Config"
mtd10: 00400000 00020000 "Storage"
mtd11: 06080000 00020000 "RWFS"
mtd12: 01400000 00020000 "Firmware_Stub"

Czyli rozumiem że zflashowanie OpenWRT przez `mtd write` nie zadziała?

3. Chciałem pobrać oryginalny firmware ze strony Xiaomi: https://bigota.miwifi.com/xiaoqiang/rom … 25.122.bin
Niestety, rzuca `AccessDenied` na każdy plik jaki uda mi się znaleźć url.

Trochę się pogubiłem i nie za bardzo wiem co teraz. Co powinienem zrobić aby to wszystko teraz wyprostować?
Celem jest wyczyszczenie wszystkiego i wgranie czystego OpenWRT jak bozia przykazała. Możliwie bez robienia po drodze soft-bricka i dolutowywania pinów do seriala smile

2 (edytowany przez palibrzuch 2020-06-04 11:26:18)

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Ostatnio robiłem to ze swoim mir3g.

Przez scrypt padavana wracasz do stocka. Później odblokowujesz dostęp na stocku ssh i dalej instalujesz openwrt.

Masz milion poradników krok po kroku na yt.

Najważniejsze to wrócić na stock. U mnie robiłem to na ubuntu i poszło bez problemu. Tu masz http://prometheus.freize.net/ i tym wrócisz do stocka.

Tu też opis jak sprawdzić czy jest breed https://eko.one.pl/forum/viewtopic.php?id=19754

3

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

O ile pamiętam to podczas kompilacji padavana była opcja przywrócenia oryginalnego softu - ktoś kto to ma musiał by cię tym poratować.

Najlepiej było by jednak przez serial - przywrócił byś bootloader jeżeli i breed i wgrał normalnie openwrt.

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

4

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Ten skrypt Prometheus to też jakaś masakra, zajrzałem do środka zanim to sobie odpaliłem u siebie - próbuje jakieś paczki instalować, zakłada że OS hosta to coś Debiano-podobnego... Nie ma gdzieś dokumentacji dostępnej co to robi pod spodem? Czy jednak muszę stawiać VMke specjalnie pod to? hmm

Zaraz sprawdzę czy jest ten "Breed" - rozumiem, że podłączyć zasilanie z resetem wciśniętym i jeśli odpali się inne UI niż Padavana, to jest zmieniony bootloader również?

5

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Tak, jak odpali się to jest breed, fajny, chiński. Wyrzuć go.

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

6

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Odpalony z wciśniętym resetem - UI bez zmian, więc rozumiem że bootloader nie był ruszany.

Znalazłem taką instrukcję jak wgrać stock FW: https://www.youtube.com/watch?v=XP1CApz3FBc

Wygląda na to, że jeśli mamy oryginalny bootloader i dostęp po SSH, to wystarczy jedną flagę przestawić, FW na penie z FAT32 i zaciągnie.
Niestety, ale nie mogę nic pobrać ze strony producenta:

Burag napisał/a:

3. Chciałem pobrać oryginalny firmware ze strony Xiaomi: https://bigota.miwifi.com/xiaoqiang/rom … 25.122.bin
Niestety, rzuca `AccessDenied` na każdy plik jaki uda mi się znaleźć url.

Poratuje ktoś mirrorem?

7

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

https://drive.google.com/drive/folders/ … sp=sharing

Tu masz dwa softy ori i dev z ssh

https://www.youtube.com/watch?v=oCgxjrhczRM to przez scrypt

8 (edytowany przez Burag 2020-06-04 19:26:31)

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Dzięki!

Pen przygotowany i podłączony, ale niestety nie mogę wprowadzić routera w stan w którym by się nim zainteresował.

1. Podłączenie zasilania z wciśniętym resetem - brak reakcji.

2. Walka z flagami bootloadera - brak reakcji.

/home/root # nvram set flag_try_sys2_failed=1
/home/root # nvram commit
/home/root # reboot

Próbowałem też dla `sys1` oraz dla obu - brak reakcji.

Za każdym razem router startuje tak samo.
Najpierw lampka świeci się stale na pomarańczowo, a po tym przechodzi na stałą niebieską. Jeśli podłączony jest też WAN, to na biało. Jeśli podłączony jest USB, to na różowo. I to wszystko, żadnych trybów mrugania w jakimkolwiek kolorze - zawsze kolor ciągły.

BTW. Jak sprawdzić czy flagi ustawiane przez `nvram` się zapisały?
Znalazłem taki sposób z internetów i jeśli jest słuszny, to flagi się nie przestawiają (wykonane przed rebootem).

/home/root # strings /dev/mtd1 | grep -i _try_
flag_try_sys1_failed=0
flag_try_sys2_failed=0

9

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Możesz zgrać partycję, edytorem hex przestawić na 1 odpowiednie bajty, wgrać i zrestartować...

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

10

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

U mnie pamiętam bardzo długo musiałem trzymać wciśnięty reset aby łyknął z pena. Żaden kabel nie może być podłączony (chyba) tylko pen do usb. Za pierwszym razem zbyt wcześniej odpuściłem. Trzeba trzymać reset aż wejdzie w tryb. Tylko ja to robiłem po przywróceniu do stocka tym właśnie skryptem z linuxa (wgrywałem kilka lat temu w ten sam sposób tym samym skryptem) Wydaje mi się, że niepotrzebnie kombinujesz z tymi poleceniami. Przywróć go z linuxa tym do stocka http://prometheus.freize.net/ a później to już tylko odblokować ssh i openwrt wskoczy.

11

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Ten magiczny skrypt jest niczym innym jak ogromnym zbiorem magicznych komend (swoją drogą, niezbyt rozumiem ludzi piszących takie potwory w Bashu). Nie lubię odpalać obcych skryptów na moim systemie, dla zasady.
W najgorszej opcji odpalę sobie albo Dockera z Ubuntu albo VMkę przez KVM. Tak czy inaczej, wolałbym wiedzieć co się dzieje pod spodem...

12 (edytowany przez palibrzuch 2020-06-04 20:05:56)

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Ja zainstalowałem na jakimś terminalu ubuntu na chwilę i po akcji zrobiłem format dysku. Na laptopie mam minta i nie chciałem też tego instalować.

Niestety inaczej Ci już nie pomogę. U mnie zmiana softu trwała z 30min max ze wszystkim. Niestety zbierałem się do tego z 30 tygodni smile

Ten skrypt jest po angielsku, masz tam wybrać back to stock. Specjalnie jakieś trudne to nie jest.

Jak chcesz tak zrobisz smile

Pozdro

13

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Burag napisał/a:

Tak czy inaczej, wolałbym wiedzieć co się dzieje pod spodem...

Przecież to skrypt, otwórz w notatniku i czytaj co robi. smile

14

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Poddałem się, jest strasznie namotane w tym skrypcie. Zamiast go analizować, jednak go użyłem big_smile

Za to udało mi się go postawić w łatwy, czysty i przyjemny sposób - załączam Dockerfile, może się komuś przyda:

FROM ubuntu:16.04

ARG USER=padavan
ARG HOME=/home/${USER}

RUN set -eu; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        netcat \
        wget \
        tree \
        sudo \
        less \
        vim; \
    useradd -m -G sudo ${USER}; \
    echo '%sudo ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers

USER ${USER}
WORKDIR ${HOME}

RUN set -eu; \
    wget -O start.sh http://prometheus.freize.net/script/start-100.sh; \
    chmod +x start.sh; \
    echo -e '2\n2\n7\nQ\n' | ./start.sh

CMD ["./start.sh"]

Przy jego pomocy udało się cofnąć firmware do tego:

Dioda mrugała na czerwono, po podłączeniu pena i wciśnięciu resetu załapało i mogłem podziwiać chińskie krzaczki na http://192.168.31.1

Mając już ten tool uruchomiony, postanowiłem też przetestować opcję odgadywania hasła SSH bez tej całej parady z aplikacjami i kontami Xiaomi - po omacku po krzakach ustawiłem hasło na 1234567890 - i ku mojemu zdziwieniu, to również zadziałało smile

Tak wygląda tablica partycji na tym sofcie:

root@XiaoQiang:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 07f80000 00020000 "ALL"
mtd1: 00080000 00020000 "Bootloader"
mtd2: 00040000 00020000 "Config"
mtd3: 00040000 00020000 "Bdata"
mtd4: 00040000 00020000 "Factory"
mtd5: 00040000 00020000 "crash"
mtd6: 00040000 00020000 "crash_syslog"
mtd7: 00040000 00020000 "reserved0"
mtd8: 00400000 00020000 "kernel0"
mtd9: 00400000 00020000 "kernel1"
mtd10: 02000000 00020000 "rootfs0"
mtd11: 02000000 00020000 "rootfs1"
mtd12: 03580000 00020000 "overlay"
mtd13: 012a6000 0001f000 "ubi_rootfs"
mtd14: 030ec000 0001f000 "data"

Postanowiłem ją "uwiecznić" na wypadek gdyby coś poszło nie tak dziś lub w przyszłości:

for i in $(seq 0 14); do cat /dev/mtdblock$i > /extdisks/sda1/backup/mtdblock$i.bin; done

Zassałem `kernel1` i `rootfs0` od Cezarego: https://dl.eko.one.pl/openwrt-19.07/tar … ps/mt7621/ i dalej tak jak na wiki OpenWRT: https://openwrt.org/toh/xiaomi/mir3g#in … sh_for_r3g (dla bezpieczeństwa skopiowałem biny do `/tmp` aby nie flashować z pena).

root@XiaoQiang:~# mtd write /tmp/kernel1.bin kernel1
Unlocking kernel1 ...

Writing from /tmp/kernel1.bin to kernel1 ...     
root@XiaoQiang:~# mtd write /tmp/rootfs0.bin rootfs0
Unlocking rootfs0 ...

Writing from /tmp/rootfs0.bin to rootfs0 ...     
root@XiaoQiang:~# nvram set flag_try_sys1_failed=1
root@XiaoQiang:~# nvram commit
root@XiaoQiang:~# reboot

No i stała się światłość:

BusyBox v1.30.1 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------------------------------
 |                                                                           |
 | OpenWrt 19.07-SNAPSHOT, r11081-6a89098935                                 |
 |                                                                           |
 | Build time: 2020-05-23 13:42 CEST                                         |
 | Cezary Jackiewicz (obsy), http://eko.one.pl                               |
 |                                                                           |
 -----------------------------------------------------------------------------
 | Machine: Xiaomi Mi Router 3G                                              |
 | Uptime: 0d, 00:03:12                                                      |
 | Load: 0.14 0.15 0.07                                                      |
 | Flash: total: 98.0MB, free: 93.2MB, used: 0%                              |
 | Memory: total: 247.8MB, free: 220.5MB, used: 11%                          |
 | Leases: 1                                                                 |
 | lan: static, 192.168.1.1                                                  |
 | wan: dhcp, ?                                                              |
 | wan6: dhcpv6, ?                                                           |
 -----------------------------------------------------------------------------

BTW. Jeszcze zostawię informację dla tych, którzy jednak są za Padavanem - analizując ten skrypt trafiłem na adres repo i okazuje się, że jednak ktoś to utrzymuje: https://gitlab.com/dm38/padavan-ng/-/commits/master
Ostatni commit z dzisiaj - więc rozważam jednak drugą szansę dla niego, skoro mam już całe środowisko postawione do obracania firmware w tym routerze.
Podobno ten Padavan ma być bardziej wydajny i stabilny z powodu zastosowania zamkniętych sterowników - ten stan jest utrzymany na rok 2020? A może polecicie jakiś zestaw narzędzi aby to samemu zweryfikować i przetestować? iperf3?

15

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Kiedyś mocno śledziłem ten wątek http://4pda.ru/forum/index.php?showtopic=837667

Niby jest rozwijany ale już to robi ktoś inny.

Ja miałem padavan lat kilka i nigdy nie wrócę bo działał niestabilnie.

16

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Wiele zalezy od wersji softu i wspieranego modelu. Tak jest w Openwrt, DD-WRT, Tomato / FreshTomato czy Padavanie-NG.


Na Asusie RT-N12+b1 mam Padavana (od asusa RT-N11). Org soft czasem zawodzil, a ten jak skała.

17

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Dokładnie tak smile Jednym dobrze działa, innym nie smile

Trzeba testować i wyciągać wnioski.

18

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Pytanie jak testować. Bo takie testowanie "o, nie działa mi internet, pewnie router się przekręcił" to mnie nie interesuje.
Jeśli to ma mieć realne wyniki, to trzeba by to oskryptować i stworzyć powtarzalne testy z których wyniki można porównać.

19

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Jeszcze zostawię informację dla tych, którzy jednak są za Padavanem - analizując ten skrypt trafiłem na adres repo i okazuje się, że jednak ktoś to utrzymuje: https://gitlab.com/dm38/padavan-ng/-/commits/master
Ostatni commit z dzisiaj - więc rozważam jednak drugą szansę dla niego, skoro mam już całe środowisko postawione do obracania firmware w tym routerze.

Jest aktualizowany na bieżąco, to już drugie czy trzecie ręce ale cały czas przy nim grzebią. Ostatnio wireguarda nawet udało się wmontować.

Podobno ten Padavan ma być bardziej wydajny i stabilny z powodu zastosowania zamkniętych sterowników - ten stan jest utrzymany na rok 2020?

Ostatnio wychodzą równocześnie dwa firmware, jeden zwykły z "nowymi" sterownikami i MOD ze starymi. Samemu kompiluje domyślnie z nowymi i nie widzę żadnej różnicy. Ludzie narzekali na problematyczne radio, a u mnie nie było z tym nigdy problemu, i nadal odpukać nie ma.

20

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Panowie, potrzebuje pomocy. Zakupiłem router jak w temacie na pokładzie breed i padavan. Jakie kroki poczynić aby wrzucić na niego OpenWRT?

Gdzieś na forum widziałem obraz gargulca pod breed ale już jest nie dostępny.

GL.iNet GL-MT6000 + 2x AP_Xiaomi AX3000T

21

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

breed był dziwny bo trzeba było robić jakiś specjalnie obraz żeby chciał startować Jeżeli chcesz zostać przy tym bootloaderze to poszukaj tu na forum, kilka lat temu jak ten model był popularny to ktoś rozpisał jak taki obraz zrobić.

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

22 (edytowany przez artur_n 2022-10-31 15:40:48)

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Nie chcę zostawać przy breed, dodatkowo mam zerowe pojęcie o robieniu obrazów.
Jak wrzucę coś takiego:
https://github.com/roschacker/openwrt-mir3g-breed

GL.iNet GL-MT6000 + 2x AP_Xiaomi AX3000T

23

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

Poszukam, może gdzieś mam u siebie skrypt. Jak znajdę to przygotuję obraz do wgrania.

Używasz moich pakietów/obrazów z github?
Chcesz abym dalej je rozwijał i tworzył nowe?
Postaw kawę

24

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

IceG napisał/a:

Poszukam, może gdzieś mam u siebie skrypt. Jak znajdę to przygotuję obraz do wgrania.

Był bym bardzo wdzięczny

GL.iNet GL-MT6000 + 2x AP_Xiaomi AX3000T

25

Odp: Xiaomi R3G - kupiony używany, jak to posprzątać?

To jest właśnie wgranie breeda. Jak go nie chcesz to sobie załatw oryginalny bootloader (niech ci ktoś zgra z działającej maszynki i po prostu nadpisz nim partycję bootloadera.

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