1 (edytowany przez Cezary 2023-05-24 11:08:08)

Temat: ZTE MF286D - Openwrt

Od tego wszystko się zaczęło:
https://eko.one.pl/forum/viewtopic.php?id=19085

Czas na rozdzielenie wątków per konkretny model
-----------------------------------------------------------------------
Przydatne linki:
https://dl.eko.one.pl/firmware/
https://dl.eko.one.pl/orig/zte_mf286d/
https://openwrt.org/toh/zte/mf286d

https://github.com/4IceG/luci-app-3ginfo-lite/releases
https://github.com/4IceG/luci-app-modemband/releases
https://github.com/4IceG/luci-app-sms-tool/releases
https://dl.eko.one.pl/openwrt-21.02/pac … fpv4/base/

https://downloads.openwrt.org/releases/ … eon-vfpv4/
https://downloads.openwrt.org/releases/ … cjapakietu


Instalacja:

Proszę używac adaptera USB/uart typu CP2102 lub PL2303
CH340 generuje "krzaki" podczas startu uboota

- podłączyć router po kablu LAN
- uruchomić router na fabrycznym sofcie
- włożyć pendrive w systemie fat do routera
- w oprogramowaniu wspierającym SMB sharing jak Telia Nordic na gui właczyć wsparcie SMB
    Bez tego pendrive nie zamontuje się.

   Lub zamiast klikania SMB z GUI to zrobić z shella po włożeniu pendrive:
   mkdir /tmp/usb_disk
   mount /dev/sda1 /tmp/usb_disk
   i podmienić "var" na "tmp" w komendach poniżej
    
- wykonać backup partycji przez konsole UART w shellu przez:
    for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21; do cat /dev/mtd$i > /var/usb_disk/mtd$i; done
    sync
    umount /var/usb_disk
    
- wyjąć pendrive z routera
- ustawić IP interfejsu serwera tftp na 192.168.1.3 255.255.255.0
- wystawic obraz openwrt typu initramfs na tftp jak np. openwrt_initramfs_image.itb
- reboot routera
- zatrzymać uboot po UART
- w uboocie wykonać:
    setenv serverip 192.168.1.3
    setenv ipaddr 192.168.1.72
    set fdt_high 0x85000000
    tftp mifi-21.02-snapshot-r16475-6d266ef158-zte_mf286d-initramfs-fit-zImage.itb
    nand erase 0x1800000 0x1d00000 (opcjonalnie ekwiwalent później wykonywych akcji ubiattach i ubirmvol)
    bootm $loadaddr
    
- router uruchomi się z obrazu "life"
- przestawić interfejsc na DHCP bo openwrt ma inna podsieć
- połaczyć sie po ssh z 192.168.1.1, login domyślny root / bez hasła
- skopiować po scp (używając np. MobaXterm) obraz openwrt typu sysupgrade
- wykonać po uarcie lub ssh:
    ubiattach -m 9
    ubirmvol /dev/ubi0 -N ubi_rootfs
    ubirmvol /dev/ubi0 -N ubi_rootfs_data

    może zwrócić błedy ubifs w tym miejscu  lecz nie są one groźne 
    
- wykonać przez konsolę UART lub ssh:
    sysupgrade -n /tmp/openwrt_sysupgrade_image.bin

Recovery fabrycznego softu:

- podłączyć router po kablu LAN
- ustawić IP interfejsu serwera tftp na 192.168.1.3 255.255.255.0 
- wystawić mtd9 z backupu po tftp
- zatrzymać uboot po UART
- ustawić IP w uboocie przez:
    setenv serverip 192.168.1.3
    setenv ipaddr 192.168.1.72
- załadować mtd9 do ram po tftp przez:
    tftp mtd9.bin
    
- wykasować mtd9 przez:
    nand erase 0x1800000 0x1d00000
    
- zapisać ram do mtd9 przez:    
    nand write 0x84000000 0x1800000 0x1d00000
    
- reboot routera przez:
restart

Ściągawka z AT commands:

Ustawienie APN:
AT+CGDCONT=1,"IP","internet","",0,0
AT+CGACT=1,1

Informacja o APN:
AT+CGDCONT?

Informacja o zalokowanych pci/earfcn
AT+ZCAINFO?

Informacja o primary cell:
AT+ZCELLINFO?

Lokowanie pci/earfcn:
AT+ZLOCKCELL=?
AT+ZLOCKCELL:earfcn_tag,pci_tag
AT+ZLOCKCELL? zwraca obecne lokowanie lub error gdy nie ma lokowania
AT+ZLOCKCELL=6350,307 ustawia podstawowe pasmo B20 i pci 307
a potem restart AT+CFUN=1,1

Zdjęcie lokowania pci/earfcn:
AT+ZLOCKCELL=0
a potem restart AT+CFUN=1,1

Informacja o zalokowanych bandach:
AT+ZNLOCKBAND?
+ZNLOCKBAND: 80005,2000000680380

Agregacja uplinku:
AT+ZULCA?    stan
AT+ZULCA=1
AT+ZULCA=0

Lokowanie bandów:
AT+ZNLOCKBAND=1,0,1,0 - Band 1
AT+ZNLOCKBAND=1,0,4,0 - Band 3
AT+ZNLOCKBAND=1,0,40,0 - Band 7
AT+ZNLOCKBAND=1,0,80000,0 - Band 20
AT+ZNLOCKBAND=1,0,41,0 - Band B1 +B7
AT+ZNLOCKBAND=1,0,45,0 - Band B1 + B3 + B7
AT+ZNLOCKBAND=1,0,80040,0 Band 7 + 20
AT+ZNLOCKBAND=1,0,80005,0 Band 20 + 1 +3
AT+ZNLOCKBAND=1,0,2,0 - Band 2
AT+ZNLOCKBAND=1,0,10,0 - Band 5
AT+ZNLOCKBAND=1,0,80000000,0 - Band 32
AT+ZNLOCKBAND=1,0,20080800C5,0 - All
AT+ZNLOCKBAND=1,0,20880800D7,0 - All including b2,b3,b32

Restart modemu i przywrócenie pełnej funkcjonalności:
AT+CFUN=1,1

Stan modemu:
AT+CFUN?

Ściągawka jak uzdatnić modem na obrazie generic openwrt z wbudowanym luci

Dodać interfejs WAN_QMI w network/interfaces. Ustawić go na QMI cellular, modem device na /dev/cdc-wdm0, APN, protokół na IPv4, firewall do strefy WAN
QMI nie ustawia prawidłowo APN i dlatego trzeba ustawić z shella APN również w modemie:
echo -e -n 'AT+CGDCONT=1,"IP","internet","",0,0\r' > /dev/ttyUSB1
echo -e -n 'AT+CGACT=1,1\r' > /dev/ttyUSB1

Wymagany reboot routera.
Powinien powstać wirtualny interfejs WAN_QMI_4 gdy jest połączenie z siecią

Doinstalowac brakujące paczki z shella z repo openwrt:
opkg update && opkg install luci-proto-qmi qmi-utils uqmi comgt luci-compat mailsend

Doinstalować ręcznie pakiety od niezależnych deweloperów:
sms-tool, 3ginfo lite, modemband, internet-detector
W gui sms-tools ustawić pamięć SMS jako modem memory 

W /etc/config/atcmds.user
wstawić:
Select AT command  ;
APN info  >  AT+CGDCONT?;AT+CGDCONT?
APN setup  > AT+CGDCONT=1,"IP","internet","",0,0;AT+CGDCONT=1,"IP","internet","",0,0
APN apply  > AT+CGACT=1,1;AT+CGACT=1,1
Cell lock info  >  AT+ZLOCKCELL?;AT+ZLOCKCELL?
Cell lock disabled  >  AT+ZLOCKCELL=0;AT+ZLOCKCELL=0
Cell lock 159  >  AT+ZLOCKCELL=earfcn_tag,pci_tag;AT+ZLOCKCELL=6350,159
Cell lock 279  >  AT+ZLOCKCELL=earfcn_tag,pci_tag;AT+ZLOCKCELL=6350,279
Cell lock 307  >  AT+ZLOCKCELL=earfcn_tag,pci_tag;AT+ZLOCKCELL=6350,307
DL CA info  >  AT+ZCAINFO?;AT+ZCAINFO?
UL CA info >  AT+ZULCA?;AT+ZULCA?
UL CA disabled  >  AT+ZULCA=0;AT+ZULCA=0
UL CA enabled  >  AT+ZULCA=1;AT+ZULCA=1
Locked band info  >  AT+ZNLOCKBAND?;AT+ZNLOCKBAND?
Modem reboot  >  AT+CFUN=1,1;AT+CFUN=1,1

Framework do wgrania OpenWrt przy pomocy aplikacji dla Windows: https://eko.one.pl/forum/viewtopic.php? … 87#p271987 oraz https://mega.nz/folder/NmdGzCSL#SidoZEe7xKBn96pGOMqx5Q

2

Odp: ZTE MF286D - Openwrt

Temat ogólny został zamknięty, więc teraz niespecjalnie mam gdzie napisać, ale poczyniłem pewne odkrycie.
Ponieważ modem pamięta wewnątrz ostatni użyty APN i typ połączenia, wystarczy w /etc/config/network wpisać dosłownie tyle:

config interface 'wan'
        option proto 'qmi'
        option device '/dev/cdc-wdm0'

Działa to od MF283+ do MF286D.
by modem podłączył się do zapamiętanych ustawień z fabrycznego firmware'u. Oczywiście przy założeniu, że operator nie wymaga uwierzytelnienia i SIM nie wymaga pinu (patrzę tu z pogardą na firme Orżnąć).
Wyszło mi z analizy, że na masterze powinno dać się to osiągnąć z poziomu /etc/board.d/02_network dorzucając taką komendę:

ucidef_set_interface_wan "/dev/cdc-wdm0" "qmi"

Zamierzam przetestować to dokładniej i być może zupstreamować w urządzeniach z wbudowanymi modemami - to byłoby spore usprawnienie. Na 21.02 też chyba jest szansa, że to zadziała, albowiem wtedy zostały zunifikowany atrybuty "ifname" i "device" interfejsów.

3

Odp: ZTE MF286D - Openwrt

Tak, na większość modemów możesz uzyskać w ten sposób coś co inni nazywają "autoapn" - po prostu używasz apnu który już jest w modemie i nie podaje się go jawnie w konfigu.

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

4

Odp: ZTE MF286D - Openwrt

auto apn kozysta z listy wczesniej zdefiniowanych apn. widac to nawet na partycjach zte

5

Odp: ZTE MF286D - Openwrt

Takie coś też robiłem - wykrywanie plmn i ustawienie apn.

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

6 (edytowany przez pawol 2022-02-10 23:10:30)

Odp: ZTE MF286D - Openwrt

W oryginalnych obrazach MF286D jest to w mtd8\web\auto_apn\auto_apn.db
i w srodku mamy wprost wpisy operatorów.
Np. karty  Aero2 nie kmini z automatu w MF286A a za to kmini automatycznie w MF286D. Kwestia róznic w bazie.

mtd8 da sie rozpakowac po zmianie rozrzerzenia na .zip
Moze wykozystać ową bazę?

7

Odp: ZTE MF286D - Openwrt

Podobną bazę (ale jako csv) wykorzystuje gargoyle. Jak pisałem - to po prostu dane do połączeń i na podstawie operatora możesz sobie to ustawić:

sqlite> select * from apn_list where ccmnc like '260%';
26002|T-Mobile PL|||*99#|0|internet|1|||1||IP|PAP|0|0|
26002|Era|erainternet|erainternet|*99#|0|erainternet|1|||1||IP|none|0|0|
26003|Orange Internet|internet|internet|*99#|0|internet|1|||1||IP|PAP|0|0|
26001|Plus|||*99#|0|internet|1|||1||IP|none|0|0|
26006|Mobilny Internet|||*99#|0|internet|1|||1||IP|PAP|0|0|
26012|Cyfrowy Polsat|||*99#|0|internet.cp|1|||1||IP|none|0|0|
sqlite> 
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: ZTE MF286D - Openwrt

Czy modem z tego routera będzie działał na platformie routerboard?

9

Odp: ZTE MF286D - Openwrt

Działa w zwykłych przejściówkach na usb, więc powinien.

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

10

Odp: ZTE MF286D - Openwrt

Czy jest różnica w procedurze flaszowania openwrt i przywracania fabrycznego na softu wzgledem wersji "A"? Chce tym razem zabrac sie za "D".

11

Odp: ZTE MF286D - Openwrt

Jak Ci się uda napisz po swojemu bo ja nie czaje, chociaż ja czekam jak będzie garogyle o ile będzie dla mnie operWRT ma za dużo opcji i jest zagmatwane jakoś nie mogłem się odnaleźć jak instalowałem na router 1043ND

12

Odp: ZTE MF286D - Openwrt

Ideologia flashowania jest taka sama (przez initramfs), z tym że trzeba kasować partycje jeżeli będzie potrzeba. To jest w opisie.

Przywracać jeszcze nie próbowałem. Nie miałem potrzeby.

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

13 (edytowany przez pawol 2022-02-12 11:31:18)

Odp: ZTE MF286D - Openwrt

szkoda ze tyle niewiadomych. bez procedury recovery raczej nie podejme sie flaszowania

14 (edytowany przez pawol 2022-02-12 13:10:58)

Odp: ZTE MF286D - Openwrt

@cezary
pomysl prosze o recovery. za duze ryzyko dla mnie i pewnie wielu innych.

15

Odp: ZTE MF286D - Openwrt

Najpierw Ci pisałem instrukcje jak przywracać , później jeszcze raz się o to pytałeś i znowu dałem Ci linka , a teraz znowu piszesz , że nie ma nigdzie napisane jak....
Czytałeś to ogóle ? Co tam jest nie jasne ? Trzeba przywrócić tylko mtd9 z kopii zapasowej : https://eko.one.pl/forum/viewtopic.php? … 42#p260342

16 (edytowany przez pawol 2022-02-12 21:22:57)

Odp: ZTE MF286D - Openwrt

Znam go. Tyle ze to opis naprawy partycji fabrycznego oryginalu z epoki frameworka (grubo przed openwrt). Z doswiadczenia z wersja routera "A"  juz wiem, ze uklad partycji może sie zmienic na openwrt i to bardzo.
Stad moje obawy o jego wlasciwosc.
Nie zdecydowalem sie puki co na zabawe z wersja "D" i nie wiem jak bardzo partycje się zmieniaja i czy w ogole sie zmieniaja.

Zatem zapytam wprost - czy ktos to przywracał z openwrt ta metoda?

Jak nie to kolego Mig25 moje pytanie jest jak najbardziej zasadne i to chyba ty nie czytasz dokladnie.

17

Odp: ZTE MF286D - Openwrt

Czego nie przeczytałem dokładnie ? Powtarzam trzeci i ostatni raz , żeby powrócić do oryginału trzeba przywrócić tylko partycję mtd9 ,bo (na razie) tylko ona jest modyfikowana. Przywracałem i wiem. Jak Ci to nie wystarcza to ok , ale nie wracaj już więcej do tego.

18 (edytowany przez pawol 2022-02-12 21:46:50)

Odp: ZTE MF286D - Openwrt

i wystarczylo odpowiedziec a nie sie uzewnetrzniac. Akurat o takie cos nikt nie pytał wczesniej.
Jak mam to testowac to musze miec pewnosc. Chyba ze mi ktos zasponsoruje modem.
Dzieki za info. Tyle mi wystarczy.

19 (edytowany przez MiG25 2022-02-12 22:25:44)

Odp: ZTE MF286D - Openwrt

Próbowałem uruchomić najnowszy initramfs z mifi ,i z niego zrobić sysupgrade , ale mam coś takiego:

root@MiFi:/# sysupgrade -n /tmp/mifi-21.02.bin
[  163.865767] ubi0: attaching mtd9
[  164.256914] ubi0: scanning is finished
[  164.280478] ubi0: attached mtd9 (name "rootfs", size 29 MiB)
[  164.280560] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[  164.285251] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[  164.292110] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[  164.298794] ubi0: good PEBs: 232, bad PEBs: 0, corrupted PEBs: 0
[  164.305637] ubi0: user volume: 2, internal volumes: 1, max. volumes count: 128
[  164.311886] ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 860464587
[  164.319037] ubi0: available PEBs: 50, total reserved PEBs: 182, PEBs reserved for bad PEB handling: 20
[  164.327990] ubi0: background thread "ubi_bgt0d" started, PID 4214
UBI device number 0, total 232 LEBs (29458432 bytes, 28.0 MiB), available 50 LEBs (6348800 bytes, 6.0 MiB), LEB size 126976 bytes (124.0 KiB)
ubi_rootfs partition is still present.

You need to delete the stock partition first:
# ubirmvol /dev/ubi0 -N ubi_rootfs
Please also delete ubi_rootfs_data, if exist:
# ubirmvol /dev/ubi0 -N ubi_rootfs_data

Once this is done. Retry.
Image check failed.
root@MiFi:/# ubirmvol /dev/ubi0 -N ubi_rootfs
root@MiFi:/# ubirmvol /dev/ubi0 -N ubi_rootfs_data
ubirmvol: error!: cannot find UBI volume "ubi_rootfs_data"
          error 2 (No such file or directory)
root@MiFi:/# sysupgrade -n /tmp/mifi-21.02.bin
[  276.244227] ubi: mtd9 is already attached to ubi0
ubiattach: error!: cannot attach mtd9
           error 17 (File exists)
Sun Jan 23 11:34:57 CET 2022 upgrade: Commencing upgrade. Closing all shell sessions.
[  276.752037] ubi: mtd9 is already attached to ubi0
Watchdog handover: fd=3
- watchdog -
killall: telnetd: no process killed
Sun Jan 23 11:34:58 CET 2022 upgrade: Sending TERM to remaining processes ... logd rpcd hostapd wpa_supplicant netifd sh crond uhttpd ntpd ubusd urngd sh udhcpc
[  277.189585] device wlan0 left promiscuous mode
[  277.189753] br-lan: port 2(wlan0) entered disabled state
[  277.266049] ath10k_ahb a000000.wifi: mac flush null vif, drop 0 queues 0xffff
[  277.279910] ath10k_ahb a000000.wifi: peer-unmap-event: unknown peer id 0
[  277.280210] ath10k_ahb a000000.wifi: peer-unmap-event: unknown peer id 0
[  277.361117] device wlan1 left promiscuous mode
[  277.362257] br-lan: port 3(wlan1) entered disabled state
[  277.405928] ath10k_ahb a800000.wifi: mac flush null vif, drop 0 queues 0xffff
[  277.416547] ath10k_ahb a800000.wifi: peer-unmap-event: unknown peer id 0
[  277.417146] ath10k_ahb a800000.wifi: peer-unmap-event: unknown peer id 0
Sun Jan 23 11:35:01 CET 2022 upgrade: Sending KILL to remaining processes ...
[  281.335187] sh (4587): drop_caches: 3
Sun Jan 23 11:35:02 CET 2022 upgrade: Switching to ramdisk...
Sun Jan 23 10:35:05 UTC 2022 upgrade: Performing system upgrade...
Volume ID 0, size 21 LEBs (2666496 bytes, 2.5 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "kernel", alignment 1
Volume ID 1, size 30 LEBs (3809280 bytes, 3.6 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "rootfs", alignment 1
Set volume size to 19935232
Volume ID 2, size 157 LEBs (19935232 bytes, 19.0 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "rootfs_data", alignment 1
sysupgrade successful
umount: can't unmount /dev: Resource busy
umount: can't unmount /tmp: Resource busy
[  288.039574] reboot: Restarting system

EDIT: najnowszy z testów openwrt też nie robi tego...

20 (edytowany przez pawol 2022-02-12 22:49:46)

Odp: ZTE MF286D - Openwrt

No co ty Mig25 smile Nie czytasz?
Stoi jak byk na poczatku watku wyciag z instrukcji z PR.

6. Login via ssh or serial and remove stock partitions:
    ubiattach -m 9
    ubirmvol /dev/ubi0 -N ubi_rootfs
    ubirmvol /dev/ubi0 -N ubi_rootfs_data
7. Install image via "sysupgrade -n".


Właśnie dlatego mam watpliwosci co do recovery.
Ogolnie to jest mega burdel z opisami a to co jest jest to jest dyskusyjne czytelne.
Trzeba to wszystko zweryfikowac i zalaczyc w watku po polsku tak jak zrobilem to w watku dla wersji "A" .

Założę sie ze przywracanie mtd9 juz nie pomoze

21 (edytowany przez MiG25 2022-02-12 22:52:47)

Odp: ZTE MF286D - Openwrt

Przed uruchomieniem initrafs komenda: nand erase 0x1800000 0x1d00000 pomaga , i się instaluje się bez tych komend.
O ile chcesz się założyć ?

22

Odp: ZTE MF286D - Openwrt

@Mig25
Cieszy mnie zatem ze przegrałem zaklad i metoda dalej dziala.
Trzeba to wszystko usystematyzowac w jednym opisie bo rozjeb..ne to jest po 100 miejscach.

23

Odp: ZTE MF286D - Openwrt

I działa czy nie działa?

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

24 (edytowany przez MiG25 2022-02-13 08:31:01)

Odp: ZTE MF286D - Openwrt

Po wyczyszczeniu mtd9 przed wgraniem initramfs sysupgrade dziala z tego najnowszego openwrt (z mifi juz nie sprawdzalem) bez ubiattach.
Niedoczytalem ,ze przed sysupgrade trzeba zrobić ubiattach (wcześniej tego nie było...)
Mimo to chyba dobrze jest zrobić erase mtd9,bo ubiattach uszkodzonej partycji i tak nie doda...

25

Odp: ZTE MF286D - Openwrt

Jak możesz to sprawdź. Zbliża się czas kompilacji, tym bardziej że CVE wyskoczyły w hostapd, więc trzeba podjąć decyzję czy to kompiluję wraz z innymi czy nie.

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