Router-ul firmware upvel ur ur-313n4g pe openwrt

Odată, chiar înainte de saltul dolarului, aveam nevoie de un router SOHO foarte ieftin. Cerințe - 5 porturi, NAT și Wi-Fi, nu ar strica și USB. Alegerea a căzut pe Upvel UR-313N4G. care în acele zile costă în Citilink'e ridicol 860 de ruble. Routerul a fost cumpărat și și-a îndeplinit sarcinile destul de tolerabile, agățându-se constant o dată pe săptămână. În plus, serviciul de expediere a porturilor nu a funcționat, bine, că nu avea nevoie de el. În plus, interfața Web a avut acces la linia de comandă, deci în cazuri critice, ați putea scrie iptables -A PREROUTING -j DNAT și vă bucurați de porturile de lucru până la următoarea conexiune. Cu toate acestea, nu m-am așteptat mai mult de la cutie pentru un preț atât de ridicol. Apoi, ceva sa schimbat în viața mea și routerul sa așezat pe raftul îndepărtat și a fost înlocuit de TP-Link TR-ML3420. Trebuie remarcat faptul că TR-ML3420 funcționează perfect sub OpenWRT și nu are probleme cu acesta, dar routerele Upvel nu sunt ofertate oficial de OpenWRT mai puțin decât complet (doar două routere din întreaga linie de model).






Când a devenit clar că Upvel UR-313N4G nu mai este un păcat pentru mine, am decis să încerc să pun OpenWRT pe ea. Sarcina principală este de a face modemul Megafon M21-4 3G, precum și Huawei E3531. Trebuie să spun că experiența routere pe firmware-ul OpenWRT am fost ca prin interfața bazată pe Web, sau prin UART, dar a fost limitat la „selecta un fișier pentru firmware-ul și rugați-vă“ sau „de tip aceste trei comenzi în consolă, și rugați-vă.“ De data aceasta am vrut să înțeleg de ce sunt introduse aceste comenzi și, în general, să obțină o idee generală despre arhitectura MIPS, cu care nu am mai lucrat până acum.

Acum este timpul să experimentăm. Mai întâi vom deschide routerul și vom vedea marcarea chipului principal - Ralink 5350F. Easy google arată că acest cip este susținut de OpenWRT, și destul de bine - există un catalog întreg de ramips cu firmware pentru seria 5350. Altă pe placă este un chip RAM de 32MB și un cip EEPROM de 8Mb. Caută pe site-ul 4pda arată că UR-322N4G, Hame MPR-A1 și Zyxel Keenetic 4G II sunt construite pe chipset-ul Ralink 5350F. Ei bine, descarcă OpenWRT pentru Hame MPR-A1 și încearcă să clipești prin interfața web a routerului.
Firmware-ul nu este cusut, se pare că nu există nicio verificare a semnelor. Aflați cu debuggerul la gata, care dintre ele, nu există nici o dorință. Bine, nu a fost dureros.

Există mai multe moduri de a bloca un router fără a utiliza interfața Web. Puteți, de exemplu, să utilizați modul de recuperare în care rulează încărcătorul de boot când începe rutarea. dacă este apăsat butonul Resetare. Privind în perspectivă, voi spune că în modul Upvel UR-313N4G acest mod nu este, nici un noroc, ce puteți face.
Vă puteți conecta, de asemenea, la router prin telnet, care este disponibil în versiunea originală, dar „clar“ de memorie router prin uciderea unor procese nedorite încărcate în memorie un nou firmware prin TFTP și coase echipa mtd_write. Această metodă este rău pentru că am, de fapt, există doar o singură șansă - dacă inserția ar fi incompatibil cu router-ul și nu poate fi pornit, apoi de ieșire vom obține „polukirpich“, care poate fi redusă, dar numai prin UART. În plus, în acest caz, va trebui să vă rupeți capul în care secțiune a MTD trebuie să scrieți firmware-ul. O dată vă voi spune - în marcarea MTD care este aplicată în firmware-ul original, secțiunea Firmware nu este prezentă.

Firmware peste UART


Din toate acestea, rezultă că pentru experimente trebuie să ne conectăm la router prin UART, atunci vom avea acces la consola din momentul în care începe ruterul. În caz contrar, vom comanda un programator din China pentru 160 de ruble. Dacă nu ucidem bootloaderul, nu vom avea nevoie de un programator, dar, așa cum se spune, "cazurile sunt diferite". Pe bord, dacă îl țineți cu LED-uri, în partea dreaptă superioară există 4 găuri neasigurate la rând, suspect de similar cu UART. Priviți cu atenție la bord - prima gaura din stânga se face într-un strat larg de folie, se pare, este motivul de circuit, pista de următoarele două găuri prin rezistențe merge plăci undeva adânc - este Tx si Rx, cu toate acestea, nu este clar. în ce ordine. Gaura din dreapta este de asemenea localizată pe stratul de folie, dar mai mică, aceasta este cel mai probabil +3.3 V. Ridicăm testerul și măsuram tensiunea. Pe Tx ar trebui să fie +3.3 V, pe Rx - 0 V. Ia (de la stânga la dreapta) - 0V; 3.3V, 0V, 3.3V. Asta înseamnă că al doilea din stânga este Tx, iar al treilea este Rx. Contactul din partea dreaptă este de 3,3 V, nu îl vom deschide - vom arde adaptorul.
Luați cablul clonei chinezești Nokia CA-42, tăiați-l, găsim în cuie și lipire Google (de la stânga la dreapta) - portocaliu, roșu, albastru.







Pune-Putty (de la stația mea de lucru Linux, cu probleme de Windows, de asemenea, nu ar trebui să fie), și selectați viteza portului: setarea standard pentru valorile COM-porturi, rândul său, router-ul și căutați să nu krakozyaby am fost pe ecran, și text semnificativ. Am conectat la o viteză de 57600 baud. Acum avem acces la bootloader, ceea ce înseamnă că șansa de a corupe router-ul este redusă.

Încearcă să lumineze prin bootloader. La începutul sistemului, vedem un salut

Firmware-ul a fost lansat, ura! Chiar și acolo este accesul la interfața Web, și înseamnă că majoritatea firmware-ului funcționează. Și nu am cusut nimic încă! Doar cu LED-urile se întâmplă ceva ciudat - doar ars Wi-Fi (și este dezactivat și nu trebuie să ardă), dar LED-urile de port Ethernet nu sunt aprinse. Înțelegem în continuare. Pentru a configura comutatoarele în OpenWRT, utilizați utilitarul swconfig. Aflăm ce face comutarea noastră


La prima vedere, este încurajator, putem gestiona nu numai VLAN-uri, ceea ce este vital pentru a face distincția între traficul LAN și WAN-subnet, dar și pentru a programa LED-urile.
face


și ... nimic nu se întâmplă. Se pare că problema este undeva mai profundă, în șoferi. Este bine că OpenWRT are cod sursă deschisă. Du-te la magazia git. găsiți fișierele sursă șofer și vedeți


aici, se pare, folosește voodoo magie. Și totuși - prin codul conducătorului auto este clar imediat că fără o documentație detaliată privind registrele comutatoarelor nu o putem înțelege. Dar este clar că parametrii driverului nu sunt stabiliți prin argumentele comenzii modprobe, ci, aparent, prin liniile compilate în kernel:


Bine, amâna sursa și încercați să mergeți pe cealaltă parte. Toate cele trei routere - Upvel UR-322N4G, Hame MPR-A1 și Zyxel Keenetic 4G II - sunt două porturi. Sigur, printre norul de modele suportate pe Ralink 5350 există modele cu cinci porturi. Mergem la WikiDev și găsim, de exemplu, D-Link 320 NRU B1. Un router cu cinci porturi, un port USB este ceea ce aveți nevoie. Descărcați firmware-ul, încărcați-l în memoria routerului, lansați-l. LED-urile funcționează conform așteptărilor. Foarte interesant. Vom încerca să găsim diferența între OpenWRT pentru Hame MPR-A1 și D-Link 320 NRU B1. Diferența se găsește în profilurile de construcție - DTS. De exemplu, parametrul led_polarity pentru Hame nu este specificat, iar pentru D-Link este 0x17. Și m-am gândit că polaritatea este directă și inversă! Din nou urcăm în codul sursă al șoferului, găsim o constantă


găsim metoda de stabilire a polarității

și din nou suntem convinși că nu avem nimic de prins fără descrierea registrelor comutatoarelor.

Am aflat că cel mai bun firmware pentru routerul nostru este D-Link DIR-320 NRU B1. Acum trebuie să clipești. Poate că ați observat că pentru testarea firmware-ului am ales fișiere cu cuvântul uImage în nume. Acest fișier conține doar imaginea kernelului și sistemul de fișiere încărcat în memorie RAM și numai pentru citire. O astfel de imagine poate fi rulată direct din memorie, dar pentru firmware nu este foarte potrivită - pur și simplu nicăieri nu se stochează setările din această imagine. Prin urmare, pentru firmware vom selecta o imagine cu extensia sysupgrade - la sfârșitul acestei imagini partiția JFFS2 este atașată, în care vor fi stocate modificările aduse sistemului de fișiere al routerului. Prin urmare, imaginea sysupgrade nu poate fi pornită din memorie fără a clipi pe unitatea flash USB.
Este foarte bine că Upvel UR-313N4G are o unitate flash de 8MB, după instalare vom avea puțin mai mult de 4MB pentru pachete suplimentare. Dar în unitatea flash TP-Link TR-ML3420 pe 4 MB și spațiul liber acolo - pisica a plâns.
Reporniți routerul, apăsați 2, specificați numele firmware-ului și coaseți. Deci, totul pare să fie OK: interfețele au crescut, LED-urile clipesc, în general - viața se fierbe. Nu ați uitat încă că obiectivul nostru principal a fost acela de a face routerul să funcționeze cu modemul Megafon M21-4? Lipim modemul în portul USB, privim în dmesg și ... nimic. Adică, nimic, deloc. Există două opțiuni aici: fie nucleul nu a văzut niciun autobuz infernal pe care portul USB se blochează în interiorul cipului (nu putem face nimic în legătură cu acesta) sau am uitat să adăugăm drivere pentru acest port firmware-ului. D-Link 320 NRU B1 are un port USB, deci a doua opțiune este mai probabilă. Google "OpenWRT usb support", configurați portul WAN de pe router astfel încât firmware-ul să poată accesa Internetul și să pună pachetele.


Este în această ordine, deoarece modulul kmod-usb2 trebuie încărcat mai devreme decât kmod-usb-ohci

În consola există instrucțiuni:


Sistemul a văzut dispozitivul de pe magistrala USB, așa că continuăm.

Acum am pus pachetul, care, atunci când modemul este conectat, va trimite o "secvență magică" la acesta, schimbând modemul de la modul CD-ROM / TF Card la CD-ROM / TF Card + 3 COM-port.


În consola vedem următoarele:


Deci, usb-modeswitch a funcționat - a trimis o comandă la modem, iar apoi modemul a dispărut de pe magistrala USB și a apărut acolo ca pe un alt dispozitiv.

Vom pune două pachete cu drivere care vor vedea porturile COM și le vor pune la dispoziția sistemului


Se poate observa că modemul a fost detectat corect și au apărut 3 porturi COM în sistem

Am pus pachetul necesar pentru a crea comenzi de trimitere către modemurile 3G și o extensie pentru interfața Web:

Intrăm în interfața Web, configurează 3G, deoarece portul specificat / dev / ttyUSB0, totul funcționează.

Firmware-ul Telnet


Dar acum este momentul să aflați dacă puteți bloca un router fără acces la UART. În primul rând, vom încerca modul de recuperare - de obicei se aprinde dacă butonul de alimentare este apăsat când butonul de resetare este apăsat. Clamp, servi și uita-te la consola: nimic. Modul nu este disponibil. Să trecem prin bootloader la firmware-ul original și să vedem jurnalul de boot:


Dimensiunea partiției Kernel este de 7680 KB, iar imaginea OpenWRT durează aproximativ 3,5 MB, astfel încât să puteți bloca fără teamă că noul firmware nu se va potrivi în vechea partiție.

Să vedem cât de multă memorie liberă avem:


Avem nevoie de aproximativ 3,5 MB și le avem.


Mai întâi ștergeți secțiunea RW_FS. Poate că nu ar trebui să facem acest lucru, dar ne vom asigura în caz de urgență:

Acum scrieți firmware-ul:


Comutatorul -r înseamnă că ruterul se va reporni după executarea comenzii. Corectați tabelul de partiții nu este necesar, deoarece există doar în interiorul kernel-ului Linux.

După repornire, du-te în interfața web-based, set de pachete kmod-USB2, kmod-USB-OHCI, kmod-USB-serial, kmod-USB-serial-opțiune, kmod-ledtrig-usbdev, USB-modeswitch, comgt, luci-proto 3g, configurați interfețele și LED-urile.

Routerul este cusut, puteți deschide cookie-urile și puteți turna ceaiul.







Trimiteți-le prietenilor: