451

(38 odpowiedzi, napisanych Sprzęt / Hardware)

Tylko pamiętajcie, żeby zrzucić te dane przez

nanddump --oob

.
@miko1282, jeżeli masz więcej niż jeden i pozostałe sprawne, to na Twoim miejscu wylutowałbym kość z jednego sprawnego i z niej zrzucił bootloader _offline_ i zapisał tym samym programatorem. To jest NAND, tu layout OOB musi się zgadzać ze względu na dane korekcyjne i trzeba też je zrzucić przed zapisaniem na docelową kość. Inaczej rozmiar faktycznie nie będzie się zgadzać i router nie wystartuje.

452

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

Sęk w tym, że połącznie via QMI powinno się nawiązać i bez niego. Ale modemy miewają różne dziwactwa.

AT+CGDCONT?
+CGDCONT: 1,"IPV6","internetipv6","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0

czyli dokładnie to co w EPS default bearer.
Po ręcznym przestawieniu na IPv4, wstało. Magia. Na IPv6 wstać nie chciało, ale może dlatego, że nie wymusiłem trybu DHCPv6 który nie jest domyślnym dla QMI w IPv6. Będę jeszcze eksperymentował.

No to mam prawie gotowe wsparcie, modulo ten nieszczęsny kernel loader, który ugryzie mnie w dupę przy 5.15, jeżeli nie ogarnę go teraz. Przywracanie do fabrycznego softu też już przetestowałem. No i te nieszczęsne LEDy.

edit: GPIO restart za cholerę nie che mi działać, choć probuje się poprawnie:

root@OpenWrt:/# cat /sys/kernel/debug/gpio 
gpiochip0: GPIOs 0-31, parent: platform/18040000.gpio, 18040000.gpio:
 gpio-1   (                    |wps                 ) in  hi IRQ ACTIVE LOW
 gpio-2   (                    |reset               ) in  hi IRQ ACTIVE LOW
 gpio-5   (                    |gpio-restart        ) out lo 
 gpio-7   (                    |green:debug         ) out hi ACTIVE LOW
 gpio-8   (                    |wifi                ) in  hi IRQ ACTIVE LOW
 gpio-19  (                    |blue:wlan           ) out hi ACTIVE LOW

Jakby co, to wypchałem najnowsze zmiany na githuba, może akurat coś wypatrzycie.

453

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

O dziwo, ustawienie explicite rozmiaru partycji 'ubi' wewnątrz mtd-concat pomogło. Albo mój wcześniejszy build był jakiś krzywy, w nieznany mi sposób.

gpio-restart zostawiam na za chwilę, albowiem muszę włączyć tą opcję w konfigu kernela.

Za to dalej za Chiny ludowe nie radzę sobie z modemem, który teraz nawet pod stockiem czy MM przestał się łączyć z czymkolwiek innym, niż to, co ma zapamiętane jako default EPS bearer. w OpenWrt znów się łączy się wcale pod kontrolą uqmi.
Próbowałem AT+ZCDRUN=9 i AT+ZCDRUN=F, well, nope.

454

(38 odpowiedzi, napisanych Sprzęt / Hardware)

Tylko pamiętajcie, żeby zrzucić zawartość NANDa z OOB. I porównać, czy layout OOB nie jest jakoś przemieszany przez kontroler. Na IPQ40xx jest i wypust z nanddumpa nie będzie pasować do tego łykanego np. przez TL866II+.
Spróbuję zgrać nanddumpem obraz z routera od znajomego, @miko1282 spróbuj zgrać co tam Ci zostało z tej kości w międzyczasie. Pokminimy.
Edit: guzik wyciągnę, bo tam ciągle jest 19.07 i brakuje paczki nand-utils. Więc nie mam jak zrzucić bez robienia upgrade'u, a to jest "out of question" w tym momencie.

455

(38 odpowiedzi, napisanych Sprzęt / Hardware)

Skąd jesteś? Jak z okolic Wrocławia, to być może będę mógł Ci wypalić tego NANDa - mam programaotor. Jeżeli tylko zdobędziesz właściwy obraz do wypalenia i jakoś wylutujesz sobie kość, bo z tego co widzę, to jest S34ML01G1, prawie to samo co w MR33.

456

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

Cezary napisał/a:

A czasami nie było tak że bawiłeś się partycjami i został tam jeszcze system plików? Po wczytaniu initramfs a przed sysupgrade zrobiłeś może wyczyszczenie tej partycji?

Dokładnie tak zrobiłem, z resztą, ubiformat wywołany przy pierwszym sysupgrade i tak ora całą tak utworzoną partycję.

Królik napisał/a:

Próbowałem kiedyś z NAND w R6220 (i w jednym customowym routerze powerpc) i mi się nie udało tego pożenić.

To coś czuję, że trzeba będzie przekopać kod kernela, znaleźć tego babola i wysłać poprawkę. No bo cóż innego :-P
Tymczasem wrócę do kwestii loadera dla kernela i na razie wyłączę jedną z partycji składowych. Mogę je też zawinąć w drugą stronę i wtedy layout będzie kompatybilny w przód.

Edit: Ciekawy jest fakt, że initramfs nie ciskał się o zdublowany LEB serial number i attachował UBI poprawnie. Zbudowany z tych samych źródeł. Istnieją też urządzenia w upstreamie, które używają tego numeru z UBI, chociażby: https://github.com/openwrt/openwrt/blob … .dtsi#L101
Jest też jeszcze jeden trop: https://forum.openwrt.org/t/openwrt-sup … 0/66990/14 - ale device tree z tego postu ma błędy. Niemniej jednak, spróbuję wyciąć ostatni eraseblock z layoutu, który w moim flashu i tak jest uwalony. Zobaczymy, ale to jutro, na dziś starczy.

Also. Czy nie powinienem czasem przypiąć tego resetu modemu do gpio-restart (https://www.kernel.org/doc/Documentatio … estart.txt)? Ściągnięcie tej linii w dół, tak jak napisałem w commit message, daje w łeb całej płytce, więc nie ujdzie to jako reset samego modemu, a reboot powinien IMO przekręcić też modem i IIRC stockowy soft tak działa.

457

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

Spróbowałem w końcu instalacji na flashu z nowym layoutem z mtd-concat i... na jednym z obrazów UBI się wywala:

[    1.623437] UBI: auto-attach mtd8
[    1.626930] ubi0: attaching mtd8
[    2.586658] random: fast init done
[    4.152618] ubi0 error: 0x80470fec: two LEBs with same sequence number 134
[    4.159743] eraseblock attaching information dump:
[    4.164685]  ec       0
[    4.167218]  pnum     414
[    4.169917]  lnum     0
[    4.172435]  scrub    0
[    4.174952]  sqnum    134
[    4.177656] Volume identifier header dump:
[    4.181879]  magic     55424921
[    4.185113]  version   1
[    4.187727]  vol_type  1
[    4.190336]  copy_flag 0
[    4.192943]  compat    0
[    4.195552]  vol_id    0
[    4.198166]  lnum      0
[    4.200775]  data_size 0
[    4.203382]  used_ebs  0
[    4.205989]  data_pad  0
[    4.208605]  sqnum     134
[    4.211393]  hdr_crc   733e519d
[    4.214627] Volume identifier header hexdump:
[    4.219460] ubi0 error: 0x80465730: failed to attach mtd8, error -22
[    4.226121] UBI error: cannot attach mtd8
[    4.230870] /dev/root: Can't open blockdev
[    4.235110] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    4.242866] Please append a correct "root=" boot option; here are the available partitions:

Czyżby UBI nie lubiło się z mtd-concat?
W każdym razie, dla obecnego kernela miejsca _jeszcze_ wystarcza, ale i tak będę robić loader. Minimalny obraz zainstalował się i zbootował z flasha.

458

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

Te urządzenia mają NAND-flash, więc od cholery. 100+MB.

459

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

@Cezary @Królik wprowadziłem poprawki. Co do duplikatu w 02_network, to nie jestem przekonany - znalazłem tylko jedno urządzenie z tak dziwnym layoutem switcha na LAN "5,3,2,1" - swoje ;-)

Mam jeszcze jedną wątpliwość: o ile zwiększyć partycję na kernel, by ten się zmieścił. Choć najchętniej, to wrzuciłbym w jego miejsce loader, który załaduje go z UBI, albo z samego flasha nie zważając na U-boota. W przeciwnym razie, na bank trzeba będzie zmieniać bootcmd i zapisywać je w envie z poziomu samego U-boota. 3MB to stanowczo za mało. @Królik, chyba będziesz wiedział jak podłożyć coś takiego ;-)

460

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

@Królik, @Cezary, Dzięki za uwagi, powprowadzam w wolnej chwili.

Odnośnie USB ID dla modemu, to co ciekawe - były już w upstreamowym kernelu, w odróżnieniu od modemów z MF283+ i MF286D.

461

(25 odpowiedzi, napisanych Oprogramowanie / Software)

Czyżby? ;-)
https://git.openwrt.org/?p=openwrt/stag … 07129d703e

Zbudowałem, śmiga, znalazłem jedno typo w 02_network. Z dokładnością do tego, że LED RGB nie działa, ale pewnie zapomniałem wciągnąć paczki która go obsługuje.

462

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

Z modemem w mojej sztuce może być coś nie tak, albowiem jego wersja różni się od stockowego softu.  Firmware update do nowszej rewizji też się wywala. Podobnie jak w egzemplarzu MF283+, na którym testowałem port - na stocku modem nie łączył się do sieci, pod OpenWrt - tak, dopóki nie wykonałem inkantacji z z AT+ZCDRUN.

Spróbuję zflashować go jakoś do najnowszej rewizji i będę eksperymentował dalej.

No i muszę też przyjąć jakiś sensowny flash layout. Albo taki, żeby dało się odpalić sysupgrade ze stocka, ewentualnie wypalić initramfs i później odpalić sysupgrade, wtedy przynajmniej na części wersji będzie się dało przeprowadzić instalację bez rozkręcania. Alternatywnie, mogęwykorzystać maksymalnie miejsce, zmieniając całkowicie layout i bootcmd w envie.

Jako że nie jestem przekonany w żadną ze stron, to rzućcie plz okiem na Githuba, RFC i RFT ;-)

463

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

Tymczasem na MF286 uqmi nie chciało mi się podnieść dopóki nie przełożyłem modemu do adaptera na USB i nie poddałem magicznemu działaniu ModemManagera. Co MM przestawił - nie mam pojęcia.
Po tym fakcie modem magicznie nawiązał połączenie przez uqmi. Speedtest pokazał 78Mbps w DL i 17Mbps w UL: https://www.speedtest.net/result/12536690930

@MiG25 @Królik, Gdzie leży ten build na MF286D? Też chętnie przetestuję, a póki co miejsce na buildserwerze mi się kończy neutral

464

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

A jednak wystarczyło zamontować debugfs.
Poeksportowałem też co się dało i oto rezultat:

/ # mount -t debugfs none /sys/kernel/debug/
/ # cd /sys/kernel/debug
/sys/kernel/debug # ls
bdi            mips           gpio           dynamic_debug  usb
/sys/kernel/debug # cat gpio 
GPIOs 0-22, qca956x:
 gpio-0   (sysfs               ) in  hi
 gpio-1   (wps button          ) in  hi irq-45 edge-both
 gpio-2   (reset button        ) in  hi irq-46 edge-both
 gpio-3   (sysfs               ) in  hi
 gpio-4   (sysfs               ) in  hi
 gpio-5   (ctl:modem-reset     ) out lo
 gpio-6   (sysfs               ) in  hi
 gpio-7   (led:test-blue       ) out hi
 gpio-8   (wlan button         ) in  hi irq-52 edge-both
 gpio-9   (sysfs               ) in  hi
 gpio-10  (sysfs               ) in  hi irq-54 (default)
 gpio-11  (sysfs               ) in  hi
 gpio-12  (sysfs               ) in  lo
 gpio-13  (sysfs               ) in  lo
 gpio-14  (sysfs               ) in  lo
 gpio-15  (sysfs               ) in  lo
 gpio-16  (sysfs               ) in  lo
 gpio-17  (sysfs               ) in  lo
 gpio-18  (sysfs               ) in  hi
 gpio-19  (led:wifi-blue       ) out lo
 gpio-20  (sysfs               ) in  lo
 gpio-21  (sysfs               ) in  hi
 gpio-22  (sysfs               ) in  hi

Edit: Po wyjęciu modemu żadna LED nie świeci, więc brakuje jeszcze czegoś po drodze. Diodą "power" na pewno steruje modem, który ma zasilanie cały czas, w odróżnieniu od części routerowej. WLAN dało się sterować przez GPIO19, ale tylko na stockowym sofcie.

465

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

Niestety, /sys/kernel/debug jest w stocku pusty. Może uda mi się zrekompilować kernel z łączonymi dodatkowymi flagami. W board file'u nie widzę niczego poza wspomnianymi LED, przyciskami i linią resetu modemu (też jako udawany LED) , więc nie sądzę by były jeszcze jakieś gpiochipy na płytce. Ale sprawdzę po powrocie do domu.

466

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

Ja w międzyczasie postanowiłem wrócić do pierwszego MF286 na QCA9563 - i lwia część rzeczy mi działa, ale LEDy (surprise, surprise) "system" i "WLAN" - haha, nope. Dzięki @Cezary za pierwotne device tree, zaoszczędziło mi kupę roboty.
Źródła tutaj: https://github.com/Leo-PL/openwrt/tree/zte_mf286
Bootlog: https://gist.github.com/Leo-PL/8c3b76c1 … 95f3529887

I teraz odnośnie tych ledów: niech zgadnę - brakuje czegoś do nastawienia w pinctrlu? Niestety, źródeł U-boota, który ewidentnie maca te diody, nie mam. Macie jakieś pomysły, jak wyciągnąć z oryginalnego softu, co jest zmapowane pod rzeczonymi GPIO od LEDów?

Na głównym forum OpenWrt znalazłem czyjś wyspaw: https://forum.openwrt.org/t/adding-open … ter/108689 - ale złapałem się za głowę, gdy to zobaczyłem - niemniej jednak, GPIO od diody WLAN zgadza się względem board file z kernela od ZTE.

edit: @Królik: gratuluję sukcesu z modemem, kiedy upstream? ;-)

467

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

Check the sticker underside for password. Mine has separate and unique default passwords for WLAN and web interface. Serial console can be opened without login.

The serial port is, counting from top, and also pin 1, 3V3, RXD, TXD, GND - from the router's perspective.

---
Also, @pawol podrzuciłbyś mi na priv (albo tutaj, bez różnicy) linki do tych paczek z FW które rozpracowujesz?

468

(3 odpowiedzi, napisanych Oprogramowanie / Software)

Też nadziałem się ostatnio na podobny problem i też ipv6.google.com przestał mi pingować z tunelu przez Warszawę, ale inne strony działają.
Pewnie HE ma gdzieś blackhole route - inny tunel via Frankfurt mi działa. IMO trzeba wspomnieć o tym na forum HE.
No i sam walnąłem durny błąd, przypisując z palca adresy delegowane do interfejsu LAN do tunelu Wireguarda, a potem dziwiłem się, że nic nie chce tym interfejsem wychodzić.

Zauważyłem też, że tunel dezaktywuje się przy braku aktywności via IPv6 i przestaje odbierać ruch, dlatego co jakiś czas warto zaserwować mu keepalive.

469

(23 odpowiedzi, napisanych Sprzęt / Hardware)

NANDy też możesz zgrywać przy pomocy FT2232H: https://spritesmods.com/?art=ftdinand
ZIF-sockety do tego kosztują na Aliexpressie po 12$. Zrobiłem sobie taki "programator", działa.

W sumie, to i zapisywać tym się da, ale trzeba dopieścić soft do obsługi.

470

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

A tak wracając do odpalenia na tym OpenWrt, próbował ktoś z Was zbudować na to telnetd czy innego dropbeara?
Chyba spróbuję polinkować statycznie któreś z tych. Coś czuję, że powinien zadziałać ten sam sploit na root shell co w innych ZTE, tyle tylko że z binarki odpalonej z pendrive. Grzebiąc po binarkach dostępnych w obrazie niespecjalnie widzę takie, które w łatwy sposób się do tego nadawały.

@Królik wrzuciłbyś swoje dotychczasowe device tree, czy ewentualnie inne patche?
Edit: właśnie buszuję troszkę po shellu, po ADB też wbiłem się na modem przez zwykłe `adb shell`, identycznie jak niegdyś w MF283+.

471

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

Przeglądałem ten kod i nie znalazłem tam device tree, które pasowałoby w 100% do urządzenia, ono jest klejone z kawałków w trakcie kompilacji i będę szczery, że było mi trudno się w tym połapać. Muszę znaleźć chwilę i wrócić do developmentu.

Edit: odnośnie upgrade'u, to do MF286 - tego wcześniejszego - istnieją magiczne pakiety do flashowania online, ale w formie .execa który odpala wewnętrzny serwer TFTP (zgaduję) i wymusza jakoś, by U-boot załadował z niego odpowiednie partycje na SPI-NANDa. Może do MF286D też coś takiego istnieje. To potencjalnie dałoby się zexploitować do flashowania bez rozkręcania. Sprawdzilibyście, czy na MF286D też działa exploit z telnetd, tak jak na moich MF283+ i MF286 z Orange?
Na samym rootfsie znalazłem sysupgrade, ale raczej będzie bezużyteczny.

472

(1,001 odpowiedzi, napisanych Sprzęt / Hardware)

O. I to jest ciekawa informacja. Ciekawa o tyle, że pokazuje, że wsparcie do każdego z nich będzie w miarę łatwo dorobić. Muszę w końcu znaleźć chwilę na rozgryzienie tego MF286D, jest tego najbardziej wart.

473

(11 odpowiedzi, napisanych Sprzęt / Hardware)

Za wiele z tego nie wskórasz przy tej ilości błędów ECC - musiałbyś wymienić kość NAND-flash i wstępnie zaprogramować na nowej bootloader i dane kalibracyjne, o ile jeszcze przetrwały. O ile nie jest to kwestia zimnych lutów, czy innego problemu ze sprzętem.

474

(32 odpowiedzi, napisanych Sprzęt / Hardware)

Cezary napisał/a:

OT: wiecie że są dedykowane softy typu: https://github.com/espterm/espterm-firmware ?

To jest doskonałe! Zagwiazdkowane i sklonowane z GH.

A jeżeli już bawimy się w konsolę po sieci do routera, to w tych "developerskich" można byłoby podciągnąć jedno GPIO pod !SYS_RESET do JTAGa, jeżeli takowy w routerze jest, albo i kompletnego JTAGa: https://github.com/emard/wifi_jtag

475

(32 odpowiedzi, napisanych Sprzęt / Hardware)

Zauważyłem, że niewłaściwie próbowaliście konfigurować TCP Bridge'a.
https://tasmota.github.io/docs/Serial-to-TCP-Bridge/

Moja konfiguracja, na standardowym ESP-01 schowanym wewnątrz routera:
- Na GPIO1 wybieramy "TCP Rx"
- Na GPIO3 wybieramy "TCP Tx"
- Ustawiamy prędkość komendą TCPBaudRade <x> - w moim przypadku standardowe 115200
- Dodajemy regułkę komendą, np. Rule1 ON System#Boot DO TCPStart 23 ENDON
- Włączamy tą regułkę komendą Rule1 1

Ja łączę się do tego socat-em tak: socat stdio tcp-connect:router-dev1-console 23
Można też netcatem, oba są przeźroczyste dla danych.

Zwykłego telneta nie polecam, bo wygląd ekranu potrafi się dość srogo rozjeżdżać.
Edit: widzę, że niekoniecznie chodzi Wam o konsolę, ale mostek z Tasmoty też jest przeźroczysty, więc jest jeszcze szansa spróbować z wynalazkami typu ser2net (https://github.com/cminyard/ser2net), które wystawiają udawany port szeregowy jako pipe. Dla Windowsa też widziałem podobne rozwiązania. Jeżeli to ma być dedykowany mostek szeregowy, to może jednak ESP-Link?