Cuprins:

NLDWRTG placa de expansiune ULTIMATE WRT54G: 8 pași (cu imagini)
NLDWRTG placa de expansiune ULTIMATE WRT54G: 8 pași (cu imagini)

Video: NLDWRTG placa de expansiune ULTIMATE WRT54G: 8 pași (cu imagini)

Video: NLDWRTG placa de expansiune ULTIMATE WRT54G: 8 pași (cu imagini)
Video: [FULL ALBUM] - Run The Jewels - RTJ4 2024, Iulie
Anonim
NLDWRTG placa de expansiune ULTIMATE WRT54G
NLDWRTG placa de expansiune ULTIMATE WRT54G
NLDWRTG placa de expansiune ULTIMATE WRT54G
NLDWRTG placa de expansiune ULTIMATE WRT54G

Modific routerele WRT54G din 2006, dar nu am avut niciodată timp să proiectez o placă dedicată pentru aceasta până anul trecut. Acest hardware este încă unul dintre cele mai hackabile ruteruri wifi în momentul scrierii și merită să fie păstrat în viață.

Pasul 1: Prezentare succintă a seriei Linksys WRT54G

Scurtă prezentare a seriei Linksys WRT54G
Scurtă prezentare a seriei Linksys WRT54G

en.wikipedia.org/wiki/Linksys_WRT54G_serie…

Există o mulțime de versiuni diferite pe piață, așa că haideți să aruncăm o privire care poate fi modificată:

-WRT54G 2.0 / 2.1 / 2.2 -> Deși toate modurile sunt posibile, placa de bază veche mare ocupă tot spațiul din carcasă, dacă modificați această serie, trebuie să vă mutați circuitul în afara cutiei sau să creați o carcasă complet nouă (srsly nu merită efortul)

-WRT54G 4.0 A trecut la noul SoC -> Aceasta a fost prima placă în care a fost introdusă placa de bază în formă de L, deci aceasta este prima versiune în care puteți profita de scutul meu și îl puteți introduce în carcasă

-WRT54GL 1.0 / 1.1 -> Linksys a lansat WRT54GL (cel mai bine vândut router din toate timpurile) în 2005 pentru a susține firmware-ul terților bazat pe Linux, după ce linia originală WRT54G a fost trecută de la Linux la VxWorks, începând cu versiunea 5. WRT54GL este o reeditare tehnică a versiunii 4 WRT54G. Acest model este REGELE WRTG-urilor. Există o mulțime de routere second-hand pe piață, așa că, dacă aveți de ales ce tip să cumpărați, cumpărați ÎNTOTDEAUNA WRT54GL.

-WRT54G 5.0 și versiuni ulterioare -> Folosește sistemul de operare VxWorks și memorie Flash redusă; nu este compatibil cu majoritatea firmware-urilor terțe, deși utilitarul „VxWorks killer” permite încărcarea unor firmware-uri open source terțe pe această versiune și pe versiunile viitoare. Linksys a făcut o întorsătură proastă aici și a distrus în esență un produs complet bun. Deși este posibil să le modificați, spațiul de pe router este atât de mic (2 MB) încât se potrivește doar cu firmware-ul DD-WRT care aproape nu poate face nimic dincolo de funcționalitatea de rutare obișnuită (fără VPN, fără smbfs / cifs, fără NFS, fără mmc, fără ext2). Am reușit să creez nuclee pentru această serie și să strâng în modulul 1-1 necesar costul scoaterii altora. NU merită timpul și efortul dvs., NU cumpărați aceste routere.

Odată cu ultima serie WRT, Linksys a trecut la arhitectura ARM, de exemplu, WRT1200 AC are un procesor ARM dual-core de 1,3 GHz. Cu toate acestea, am o experiență proastă cu aceste routere, chiar și după ce am încercat mai multe versiuni OpenWRT (acum LEDE), routerele pot îngheța aleatoriu. Mă aștept să funcționeze peste 300 de zile de pe dispozitive Unix.

Pasul 2: extinderea funcționalității

Extinderea funcționalității
Extinderea funcționalității

Ok, deci ce hacks poți face cu acest router:

1, Adăugați 2 porturi seriale -> care pot fi utile dacă aveți alte servere într-o locație la distanță și doriți să vă conectați la bios-ul lor prin linie serială sau alte routere, care permit acest lucru

2, Adăugați 1 port USB1.0 -> ar putea fi folosit pentru a conecta imprimanta, hard diskul extern etc. (nu am făcut niciodată acest mod, deci nu va face parte din scriere)

3, Adăugați card SD extern pentru stocare, aceasta poate extinde memoria de stocare flash de 16 MB a routerului la 16/32 /… + GB. Nu am avut nicio problemă cu utilizarea acestor dimensiuni de carduri SD și, de asemenea, nicio problemă cu utilizarea de carduri CLASS 10 rezistente. Dacă ați experimentat care este limitarea cardurilor pentru fiecare model WRTG, vă rugăm să lăsați un comentariu mai jos.

4, Adăugați un arduino pentru a vă controla casa, relee, comutatoare rcs

Adăugarea unui arduino deschide în esență o cantitate nelimitată de opțiuni: controlul robotului, controlul dispozitivelor cu infraroșu la vedere (televizoare, VCR-uri, DVD-uri, proiectoare, aer condiționat), conectarea a tone de dispozitive la comutatoare fără fir ieftine de 433 MHz, comunicarea cu alte arduino, raspis, adăugând un Xbee etc. etc.

Deși totul ar putea fi făcut cu un Raspberry PI + Arduino și extensii, consider că routerul WRT54G este mai fiabil decât raspis. Am aceste routere în configurații similare, cu o durată de funcționare de peste 1 an (!), Nu aș putea spune același lucru despre raspis, unde timpul meu de funcționare cel mai mare a fost de aproximativ 240 de zile pe un raspi 1, apoi cardul SD renunță la sistem, deși C Codul de control Arduino a fost încărcat în memorie, așa că nu a trebuit să mă grăbesc cu înlocuirea, deoarece nodul de control era încă perfect funcțional:))

Pasul 3: Lista hardware

Lista hardware
Lista hardware

Atașez aspectul plăcii atât în format SVG, cât și în format EasyEda. Dacă doriți să construiți proiectul, veți avea nevoie de următoarele componente: 1x LM7805 Regulator de tensiune

2x capace pentru vreg 1uF 10uF (10PCS Condensatoare electrolitice 25V 35V 50V 1uF ~ 1000uF Diverse valori și tensiuni)

1x cablu cu 4 pini de la SDcar la placă (10Pcs Jumper Wire 2/3/4/5/6 / 7Pin Femelă la Femelă Cablu Dupont 20cm pentru Arduino)

2x DIP051A7212D Relee Reed

1 x priză tată RS232 (20 buc 9-pin D-Sub DB9 tată unghi drept conector PCB WT7n)

1x MAX 233 (10 bucăți Max233 Max233cpp Rs232 Rs-232 Driver / Receptoare Ic Nou X)

1x cablu conector 10 pini (5 bucăți 2mm pas 2x5 pini 10 pini 10 sârmă IDC panglică lungime cablu 10 cm)

1 x soclu cu 10 pini (20 buc 2,54 mm 2 x 5 pini 10 pini drept masculin învelit în cutie PCB antet conector IDC)

1x anteturi pentru conector (10 buc 1 * 40Pin Single Row Female 2.54mm Breakable Header Connector fr Arduino 2017)

1x card SD (poate fi vechi SD mare sau microsd nou cu convertor, sub 32 GB ar trebui să funcționeze, peste care nu am testat cardurile)

1x convertor TTL 3v5v (5x convertor de nivel logic 3.3V la 5V TTL bidirecțional pentru Arduino Raspberry pi)

1x optocuplator 4n35

1x cititor de soclu pentru slot pentru modulul cardului SD pentru citirea și scrierea Arduino ARM MCU

1x Arduino Promicro (5 buc Leonardo Pro Micro ATmega32U4 16MHz 5V Înlocuiți ATmega328 Arduino Pro Mini)

1x module RX și TX le cumpără ca pachet combinat (5 buc 433Mhz RF transmițător și kit receptor pentru telecomandă wireless Arduino)

Pasul 4: Proiectare hardware

Proiectare hardware
Proiectare hardware
Proiectare hardware
Proiectare hardware
Proiectare hardware
Proiectare hardware

-Suruburi de bord în partea principală a plăcii inferioare din plastic negru

-MAX233 a fost ales peste MAX232, deci nu vor fi necesare capace suplimentare pentru PC-> convertorul serial WRTG -Toate componentele sunt într-o linie, astfel încât un dreptunghi simplu să poată fi tăiat în față în loc să găuriți mai multe găuri, alternativ o placă de acoperire frumoasă (sau o carcasă WRTG complet nouă) ar putea fi proiectată cu makerbot

- Priza micro USB arduino promicros orientată spre panoul frontal pentru programare externă.

-Pe baza Arduino Promicro (arduino se alimentează de la intrarea de 12V a routerului WRT54G (prin intermediul unui regulator de tensiune), tensiunea în circuit deschis a adaptorului este de aproximativ 16V!)

-Promicro are usb real, nu gunoi comun, astfel încât WRTG's / dev / tts / 1 poate fi conectat la hardware-ul UART al Promicro

-Comunicații seriale prin / dev / tts / 0 între PC WRTG

-RF 433Mhz receptor + transmițător (transmițătorul ar putea dura 12V pentru o gamă mai mare)

-Transmițătorul și receptorul IR pot fi adăugate la panoul frontal

- LED-uri suplimentare pot fi adăugate la panoul frontal (indicați Rx / Tx pentru RF, IR, router / indicator de comunicare ardu)

Aș fi putut proiecta placa cu un convertor mini-buck, dar am luat abordarea regulatorului de tensiune liniar, deoarece am avut asta în mână. Am găsit 5V într-un anumit punct al circuitului, dar când l-am atins, acesta a făcut ca routerul să fie inutilizabil (probabil că nu am putut furniza cantitatea de curent necesară pentru placa arduino), de aceea am mers cu o abordare VREG suplimentară.

Convertorul TTL 3v5v este acolo pentru a oferi o conversie de volatare adecvată (folosesc un model promicro arduino de 5V, care folosește 5V pe portul hardware UART, de aceea este necesară conversia nivelului de tensiune). Cu toate acestea, am trecut în trecut cu routere, adăugând Arduino Nanos, Micros fără convertor și nu am avut nicio problemă, deoarece portul TTY al WRTG este tolerant la 5V, dar nu înseamnă că ar trebui să-l operați de la această tensiune.

4n35 a fost, de asemenea, introdus pentru a scăpa de ceva zgomot provenit din partea externă a computerului, nu am folosit această componentă în trecut, dar se poate datora și faptului că laptopul pe care l-am folosit în timpul testelor a fost defect.

Cablul conectorului cu 10 pini are grijă de majoritatea conexiunilor, totuși trebuie să vă asigurați că instalați prizele corect.

Așa cum se arată pe imagine la portul serial

Pin 1: 3,3V + Pin 2: 3,3V <= Cei 2 pini din dreapta (mai aproape de LED-uri) sunt POSITIV se conectează la partea dreaptă a conectorului de pe ecranul NLDWRTG (aproape de regulatorul de tensiune LM7805)

Pinul 9: GND + Pinul 10: GND <= Partea opusă sunt NEGATIVUL care se conectează la partea stângă a conectorului de pe ecranul NLDWRTG

Pentru conectarea firelor între cititorul SDCARD și WRTG, urmați:

www.jbprojects.net/articles/wrt54gl_mods/

Pinii relevanți:

  • CS -> Punctul 1
  • MOSI -> Punctul 2
  • SCK -> Punctul 5
  • MISO -> Punctul 7

Pasul 5: Limitări

Limitări
Limitări

CPU-ul WRT54GL nu este cel mai puternic (Broadcom BCM5352 @ 200 MHz), poate fi overclockat la 250Mhz (nu este recomandat:)) deci nu vă așteptați să rulați SETI @ HOME pe el. Routerul are doar interfețe 100mbit / s și, spre deosebire de ceea ce puteți găsi pe multe locuri, acest hardware * NU suportă 802.1q VLAN-uri *. Este doar un simplu VLAN bazat pe port, vă rugăm să nu introduceți WRTG într-o rețea care transportă VLAN-uri, nu poate face acest lucru.

O aplicație deosebit de utilă este utilizarea routerului ca client VPN pentru a vă conecta la o locație centrală. Deși este perfect utilizabil și pentru serverul VPN, nu vă așteptați la performanțe mari din acesta.

Iată câteva dintre rezultatele mele cu un WRT54GL v1.1 folosind OpenVPN ca client.

Debit maxim al tunelului: 500 kbit / s în jos cu 50 kbit / s în sus

Performanță maximă de rutare fără VPN de la WAN -> LAN 28 mbit / s

Performanță maximă NAT (Masquerade) fără VPN de la WAN -> LAN 27 mbit / s

Există încă o mulțime de locații cu lățime de bandă generală mai mică decât acestea (ISDN-uri, Adsls, rețele de cablu, satelit etc.) ceea ce acest router poate satisface perfect.

De obicei, problemele vin de la punerea mult prea multor clienți wireless pe aceste routere. Am văzut multe configurări de-a lungul anilor în cafenele, hoteluri, restaurante unde aruncă un router wifi pe tejghea și îl numesc pe zi, așteptându-se să poată deservi peste 10 persoane. Tot ce obțin este o experiență wifi complet inutilizabilă la sfârșit, deoarece lățimea de bandă teoretică generală pentru acest router 802.11G este de 51 mbit / s și asta este pentru toată lumea, să presupunem că realul este în jur de 30mbit / s. Pentru 10 persoane, care este 3mbit / s per utilizator în cel mai bun caz, ceea ce nu este nicăieri suficient pentru aplicațiile de lățime de bandă de azi (streaming video / audio, pagini web 2.0 pline de imagini mari etc.).

După cum am spus mai devreme, acest hack este controlul de la distanță și nu ar folosi mai mult de doi kbit / s de trafic printr-un VPN.

Pasul 6: Software WRTG

Software WRTG
Software WRTG

Firmware-ul este construit pe cea mai bună versiune: DD-WRT v24-sp2 (08/12/10) std-nokaid (revizuirea SVN 14929) Există alte imagini precum VPN care sacrifică modulul ext2 pentru a economisi spațiu în timp ce încă mai are mmc kernelmodul (LoL). Optware 2 este un pachet utilitar întrerupt, dar util, care extinde funcționalitatea de bază DD-WRT:

-Realizează o distro linux de bază de la instalarea inflexibilă a ocupatului.

-Furnizează bash și alte scoici.

-Furnizează o mulțime de zei precum: htop, netcat, tcpdump, ngrep, mc

-Furnizează servicii de server precum: samba, asterisc, vsftpd, server jabber

Cu toate acestea, pachetele software sunt vechi, pline de erori și vulnerabilități. Publicarea și imaginea aici ar fi la fel cu furnizarea unei instalări Windows 98 $, prin urmare, nu voi publica încă nimic, ci o voi scrie pas cu pas cum să vă configurați cardul OptWare 2 SDCard.

În viitor intenționez să fac o nouă distribuție Linux (SnowGlobe Linux) cu pachete proaspete pentru acest dispozitiv și să o public.

1, JFFS2 trebuie activat, nu contează că nu are spațiu liber pe el:

/ dev / mtdblock / 4 128K 128K 0 100% / jffs

2, partiționare SDCARD. Iată un truc inteligent:

14 GB sau orice vrem să avem pentru prima partiție de date pentru a doua partiție ddwrt 100-500mb (EXT2) pentru recuperare

De exemplu:

Disc / dev / sde: 14,5 GiB, 15523119104 octeți, 30318592 sectoare

Unități: sectoare de 1 * 512 = 512 octeți Dimensiunea sectorului (logic / fizic): 512 octeți / 512 octeți Dimensiunea I / O (minim / optim): 512 octeți / 512 octeți Tip de etichetă disc: dos Identificator disc: 0x6ad48986 Dispozitiv de pornire Sfârșit de pornire Sectoare Dimensiune Tip ID / dev / sde1 2048 29362175 29360128 14G 83 Linux / dev / sde2 29362176 30318591 956416 467M 83 Linux

Creați sisteme de fișiere:

mkfs.ext2 -L SnowGlobe-data / dev / sde1

mkfs.ext2 -L SnowGlobe-recovery / dev / sde2

Reglați sistemele de fișiere:

tune2fs -c0 -i0 -m0 / dev / sde1

tune2fs -c0 -i0 -m0 / dev / sde2

Doar prima partiție va fi montată automat de sistem la început! Ideea din spatele partiției de recuperare este că WRT54G nu are spațiu pentru a ține un disc nicăieri altundeva. Deci, dacă există o oprire necurată și există incoerențe ale sistemului de fișiere, singura modalitate de a repara este să aveți o copie a fdisk (și libs necesare pentru a porni) pe o a doua partiție care va fi montată ocazional doar ca citită doar pentru a rula fsck dacă Necesar. Altfel, cardul ar trebui scos și pus într-un computer pentru reparații …

3, Montare

Dacă introduceți un card deja partiționat, formatat și cizme wrtg în mod corespunzător, este cel mai probabil ca prima partiție să fie montată automat:

/ dev / mmc / disc0 / part1 13.8G 59.6M 13.7G 0% / mmc

Opt trebuie să fie montat obligatoriu acum:

montare -o legare / mmc / / opt /

4, scriptul de instalare OWRT2

Înainte de a începe verificați dacă defgw, dns totul bun.

wget https://www.3iii.dk/linux/optware/optware-install-… -O - | tr -d '\ r'> /tmp/optware-install.sh

sh /tmp/optware-install.sh

Dacă nu poate obține scriptul, acest lucru se datorează faptului că wget busybox eșuează. Va funcționa cu wget-ul owrt, dar hei, vrei să instalezi owrt …

Rezultatul ar trebui să arate ca:

Se verifică configurarea sistemului …

Utilizarea 192.168.1.1 ca gateway implicit. Folosind următorul server de nume: server de nume 192.168.1.30 Atenție: serverul de nume local este diferit de gateway! Verificați config sau introduceți: sed -i s / 192.168. * / 192.168.1.1/ /tmp/resolv.conf pentru a corecta acest lucru. Se instalează pachetul uclibc-opt_0.9.28-13_mipsel.ipk … Conectarea la ipkg.nslu2-linux.org [140.211.166.82]: 80 uclibc-opt_0.9.28-12 100% | ************ ************************************ | 832 KB 00:00:00 ETA Actualizare /opt/etc/ld.so.cache / opt / sbin / ldconfig: nu se poate crea /opt/etc/ld.so.cache~ (Nu există un astfel de fișier sau director) Instalarea pachetului ipkg-opt_0.99.163-9_mipsel.ipk … Conectarea la ipkg.nslu2-linux.org [140.211.166.82]: 80 ipkg-opt_0.99.163-9_ 100% | ************** ********************************** | 75896 00:00:00 ETA Descărcarea https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Inflating https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Actualizat lista pachetelor disponibile în / opt / lib / ipkg / lists / optware Încheiat cu succes. Instalarea uclibc-opt (0.9.28-12) în / opt / … Descărcarea https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… pachetul uclibc-opt sugerează instalarea ipkg-opt Configurarea uclibc-opt Actualizarea /opt/etc/ld.so.cache a fost încheiată cu succes. Instalarea ipkg-opt (0.99.163-9) în / opt / … Descărcarea https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Configurarea ipkg-opt Finalizat cu succes.

5, Bug de cale:

TREBUIE să exportați calea cu:

export PATH = "/ opt / bin: / opt / sbin: / opt / usr / bin: / opt / usr / sbin: / bin: / usr / bin: / sbin: / usr / sbin: / jffs / sbin: / jffs / bin: / jffs / usr / sbin: / jffs / usr / bin: / mmc / sbin: / mmc / bin: / mmc / usr / sbin: / mmc / usr / bin"

altfel ipkg nu va face nimic!

6, Verificați ipkg:

actualizare ipkg

Ar trebui să producă:

Descărcarea

Umflarea https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Lista actualizată a pachetelor disponibile în / opt / lib / ipkg / lists / optware Încheiat cu succes.

7, Instalați pachete:

ipkg install bash htop mc openvpn tcpdump vim bzip2 bc e2fsprogs findutils gawk grep gzip less make ntfs-3g openssl perl php psmisc psutils

samba36 sed tar unrar unzip vnstat vsftpd wget whois zip ncftp

8, enumeră pachetele instalate:

ipkg-opt list_installed

Construirea pachetelor pe router nu este recomandată din cauza lipsei de resurse. În acest scop, configurați mediul separat de compilare încrucișată în Vmware / Vbox / KVM.

Lucruri necesare:

-Debian 7 wheezy 64bit OS OS

-OpenWrt-SDK-Linux-x86_64-1.tar.bz2 ->

openwrt.org/docs/guide-developer/obtain.fi…

Nu pierdeți timp pentru a încerca să compilați SDK-ul pe cont propriu, SDK-ul binar furnizat este suficient de bun.

Construiți o aplicație simplă helloworld

#include int main (void) {printf ("La naiba! O 'lume, de ce nu se va compila codul meu? / n / n"); retur 0; }

./staging_dir_mipsel/mipsel-linux-uclibc/bin/gcc -lpthread hello.c -o hello

Dacă totul merge bine, ar trebui să aveți un fișier executabil acum:

salut: executabil ELF pe 32 de biți LSB, MIPS, MIPS32 versiunea 1 (SYSV), conectat dinamic (folosește lib-uri partajate), nu este eliminat

Pasul 7: Software Arduino

Puteți descărca codul sursă complet mai jos. Este destul de simplu, poate controla cele 2 relee și unele prize RC prin radio 433Mhz. O puteți extinde cu ușurință, de exemplu: adăugați mai multe comutatoare rc.

Pasul 8: Închidere și Listă de activități

Închidere și Listă de activități
Închidere și Listă de activități

WRT54G este un hardware excelent, așa că toată munca investită în acest proiect merită, pe lângă scutul NLD Wrtg ar putea fi utilizabil cu viitoarele versiuni hardware.

Deoarece consumul de energie al unui WRTG este mai mic decât Raspberry PI, alimentarea solară a routerului poate fi, de asemenea, un upgrade bun și cu Arduino putem monitoriza fiecare detaliu al procesului de încărcare solară (tensiunea bateriei, tensiunea panoului, consumul). Voi continua seria WRTG cu hacks solari mai târziu.

Găsirea unei modalități de a programa Arduino direct de pe WRTG ar fi grozavă (acest lucru ar necesita o metodă pentru resetarea Arduino).

Persoanele cu abilități 3D, Makerbot sunt mai mult decât binevenite să proiecteze o placă de acoperire personalizată (cu conectorii plăcii mele) pentru față sau să reproiecteze partea frontală completă din plastic a routerului.

ACTUALIZARE: Pentru a celebra arhitectura MIPS devenind Open Source, am actualizat tutorialul cu modul de încrucișare a programelor C simple pe WRTG.

Trăiască MIPS!:)

tip de sistem: Broadcom BCM5352 chip rev 0 procesor: 0 model cpu: BCM3302 V0.8 BogoMIPS: 199.47 instrucțiune de așteptare: nu temporizatoare microsecunde: da tlb_entries: 32 vector de întrerupere suplimentar: nu punct de control hardware: nu excepții VCED: nu sunt disponibile excepții VCEI: nu sunt disponibile

Recomandat: