Sadržaj:

NLDWRTG i ULTIMATE WRT54G ploča za proširenje: 8 koraka (sa slikama)
NLDWRTG i ULTIMATE WRT54G ploča za proširenje: 8 koraka (sa slikama)

Video: NLDWRTG i ULTIMATE WRT54G ploča za proširenje: 8 koraka (sa slikama)

Video: NLDWRTG i ULTIMATE WRT54G ploča za proširenje: 8 koraka (sa slikama)
Video: Kako napraviti Android Smart TV box (1 dio) 2024, Juli
Anonim
NLDWRTG ULTIMATE WRT54G ploča za proširenje
NLDWRTG ULTIMATE WRT54G ploča za proširenje
NLDWRTG ULTIMATE WRT54G ploča za proširenje
NLDWRTG ULTIMATE WRT54G ploča za proširenje

Modificiram usmjerivače WRT54G od 2006. godine, ali do prošle godine nisam imao vremena za to dizajnirati namjensku ploču. Ovaj hardver je u vrijeme pisanja ovog dokumenta i dalje jedan od najcjenjivijih WiFi rutera i zaslužuje da ga se održava u životu.

Korak 1: Kratak pregled Linksys WRT54G serije

Kratak pregled Linksys WRT54G serije
Kratak pregled Linksys WRT54G serije

en.wikipedia.org/wiki/Linksys_WRT54G_serie…

Na tržištu postoji mnogo različitih verzija pa pogledajmo koje se mogu mijenjati:

-WRT54G 2.0/2.1/2.2 -> Iako su svi modovi mogući, stara stara matična ploča zauzima sav prostor u kućištu, ako promijenite ovu seriju, morate pomaknuti krug izvan kutije ili stvoriti potpuno novo kućište (srsly ne vrijedi truda)

-WRT54G 4.0 Prebačen na novi SoC -> Ovo je bila prva ploča na kojoj je predstavljena matična ploča u obliku slova L pa je ovo prva verzija na kojoj možete iskoristiti prednosti mog štita i umetnuti ga u kućište

-WRT54GL 1.0/1.1-> Linksys je 2005. godine objavio WRT54GL (najprodavaniji usmjerivač svih vremena) kako bi podržao firmver treće strane zasnovan na Linuxu, nakon što je originalna linija WRT54G prebačena s Linuxa na VxWorks, počevši od verzije 5. WRT54GL je tehnički ponovno izdanje verzije 4 WRT54G. Ovaj model je KRALJ WRTG -ova. Na tržištu postoji mnogo rabljenih usmjerivača pa ako imate izbor koji tip kupiti, UVIJEK kupite WRT54GL.

-WRT54G 5.0 i noviji -> Koristi VxWorks OS i smanjenu Flash memoriju; nije kompatibilan s većinom firmvera drugih proizvođača, iako uslužni program "VxWorks killer" dopušta učitavanje nekog firmvera otvorenog koda treće strane na ovu i buduće verzije. Linksys je ovdje napravio loš zaokret i u suštini uništio potpuno dobar proizvod. Iako ih je moguće izmijeniti, prostor na usmjerivaču je toliko mali (2 MB) da može stati samo na mikro firmver DD-WRT koji prilično ne može učiniti ništa osim uobičajenih funkcija usmjeravanja (bez VPN-a, bez smbfs/cifs-a, bez NFS-a), bez mmc, bez ext2). Uspio sam stvoriti jezgre za ovu seriju i ugurati 1-1 potreban modul o cijeni vađenja drugih. NE VRIJEDI vaše vrijeme i trud, NE kupujte ove usmjerivače.

S kasnijom WRT serijom Linksys je prešao na ARM arhitekturu, na primjer, WRT1200 AC ima ARM CPU sa dva jezgra od 1,3 GHz. Međutim, imam loše iskustvo s ovim usmjerivačima čak i nakon isprobavanja više verzija OpenWRT -a (sada LEDE), usmjerivači se mogu nasumično zamrznuti. Očekujem 300+ dana produženja rada od unix uređaja.

Korak 2: Proširenje funkcionalnosti

Proširenje funkcionalnosti
Proširenje funkcionalnosti

U redu, koje hakove možete učiniti s ovim usmjerivačem:

1, Dodajte 2x serijska porta -> što vam može biti korisno ako imate druge servere na udaljenoj lokaciji i želite se povezati s njihovim bios -om preko serijske linije ili drugih usmjerivača, koji to omogućuju

2, Dodajte 1 USB1.0 port -> moglo bi se koristiti za povezivanje pisača, vanjskog tvrdog diska itd. (Nikada nisam radio ovaj mod, pa neće biti dio pisanja)

3, Dodajte vanjsku SD karticu za pohranu, ovo može proširiti malu memoriju flash memorije vašeg usmjerivača na 16/32/…+GB. Nisam imao problema s korištenjem ovih veličina SD kartica, a ni s korištenjem potpuno novih izdržljivih kartica KLASE 10. Ako ste eksperimentirali s ograničenjima kartica prema WRTG modelima, ostavite komentar ispod.

4, Dodajte arduino za kontrolu vašeg doma, releje, rcs prekidače

Dodavanje arduina u osnovi otvara neograničeni broj mogućnosti: upravljanje robotom, upravljanje infracrvenim uređajima na vidiku (televizori, videorekorderi, DVD -i, projektori, klimatizacija), povezivanje tona uređaja na jeftine bežične prekidače od 433 MHz, komunikacija s drugim arduinima, raspis, dodavanje Xbee itd. itd.

Iako se sve to može učiniti s Raspberry PI + Arduino i ekstenzijama, smatram da je usmjerivač WRT54G pouzdaniji od raspisa. Imam ove usmjerivače u sličnim konfiguracijama s više od godinu dana (!) Produženog rada, ne bih mogao isto reći za raspis gdje je moje najveće produženje rada bilo oko 240 dana na raspi 1, a zatim je SD kartica odustala od sistema, iako je C Arduino kontrolni kod je učitan u memoriju pa nisam morao žuriti sa zamjenom jer je kontrolni čvor još uvijek bio savršeno funkcionalan:))

Korak 3: Lista hardvera

Lista hardvera
Lista hardvera

Prilažem izgled ploče u SVG i EasyEda formatu. Ako želite izgraditi projekt, potrebne su vam sljedeće komponente: 1x LM7805 Regulator napona

2x kape za vreg 1uF 10uF (10kom elektrolitički kondenzatori 25V 35V 50V 1uF ~ 1000uF različite vrijednosti i naponi)

1x 4 -polni kabel sa SDcar -a na ploču (10kom. Premosna žica 2/3/4/5/6/7Pin ženski na ženski Dupont kabel 20 cm za Arduino)

2x DIP051A7212D Reed releji

1x muška utičnica RS232 (20 kom 9-pinski D-Sub DB9 muški pravokutni PCB konektor WT7n)

1x MAX 233 (10 kom Max233 Max233cpp Rs232 Rs-232 upravljački program/prijemnici Ic Novi X)

1x 10 -pinski konektorski kabel (5 kom 2 mm koraka 2x5 pinski 10 pinski 10 žičanih IDC plosnatih vrpci kabela duljine 10 cm)

1x 10 -polna utičnica (20kom. 2,54 mm 2x5 Pin 10 -pinska prava muška utičnica za PCB zaglavlje IDC konektora)

1x zaglavlja konektora (10 komada 1*40Pin jednoredni ženski 2,54 mm konektor za lomljenje zaglavlja za Arduino 2017)

1x SD kartica (može biti stara velika SD kartica ili nova microsd kartica s pretvaračem, veličine do 32 GB bi trebale raditi, preko toga nisam testirao kartice)

1x 3v5v TTL pretvarač (5x pretvarač logičkog nivoa 3.3V u 5V TTL dvosmjeran za Arduino Raspberry pi)

1x optokapler 4n35

1x čitač utora za utičnicu modula SD kartice za Arduino ARM MCU Čitanje i pisanje

1x Arduino Promicro (5 kom Leonardo Pro Micro ATmega32U4 16MHz 5V Zamijeni ATmega328 Arduino Pro Mini)

1x RX i TX moduli kupuju se kao kombinovani paket (5 kom 433Mhz RF predajnik i komplet prijemnika za Arduino bežični daljinski upravljač)

Korak 4: Dizajn hardvera

Dizajn hardvera
Dizajn hardvera
Dizajn hardvera
Dizajn hardvera
Dizajn hardvera
Dizajn hardvera

-Uvrnite ploču u glavni donji dio od crne plastike

-MAX233 je izabran umjesto MAX232 tako da neće biti potrebne dodatne kape za PC-> WRTG serijski pretvarač -Sve komponente su u jednoj liniji tako da se jednostavan pravokutnik može izrezati sprijeda umjesto bušenja više rupa, alternativno lijepa pokrovna ploča (ili potpuno novo kućište WRTG) moglo bi se dizajnirati s makerbotom

-Arduino promicros mikro USB utičnica okrenuta prema prednjoj ploči za vanjsko programiranje.

-Na temelju Arduino Promicro (arduino se napaja sa 12V ulaza WRT54G usmjerivača (preko regulatora napona), napon otvorenog kruga adaptera je oko 16V!)

-Promicro ima pravi USB, a ne zajedničko smeće, pa se WRTG -ovi/dev/tts/1 mogu spojiti na Promicrojev hardverski UART

-Serijska komunikacija putem/dev/tts/0 između PC WRTG

-RF 433Mhz prijemnik + predajnik (odašiljač može uzeti 12V za veći raspon)

-IR odašiljač i prijemnik mogu se dodati na prednju ploču

-Dodatne LED diode se mogu dodati na prednju ploču (označite Rx/Tx za RF, IR, usmjerivač/ardu komunikacijski indikator)

Mogao sam dizajnirati ploču s mini pretvaračem, ali uzeo sam pristup linearnom regulatoru napona jer sam to imao u ruci. Otkrio sam 5V neku točku kruga, ali pri dodiru na nju usmjerivač je postao neupotrebljiv (vjerojatno nije mogao dati potrebnu količinu struje koja je potrebna arduino ploči), pa sam se odlučio na dodatni pristup vreg.

3v5v TTL pretvarač je tu da osigura ispravnu konverziju napona (koristim 5V arduino promicro model, koji koristi 5V na svom hardverskom UART portu, stoga je potrebna konverzija napona). Međutim, u prošlosti sam modificirao usmjerivače dodajući Arduino Nanos, Micros bez pretvarača i nije bilo problema jer je TTY priključak WRTG -a tolerantan na 5 V, ali to ne znači da biste ga trebali koristiti s ovim naponom.

4n35 je takođe predstavljen kako bi se oslobodio buke koja potiče sa spoljne strane računara, ranije nisam koristio ovu komponentu, ali može biti i zato što je laptop koji sam koristio tokom testiranja bio neispravan.

10 -pinski konektor vodi računa o većini veza, ali morate biti sigurni da ste pravilno instalirali utičnice.

Kao što je prikazano na slici na serijskom portu

Pin 1: 3.3V + Pin 2: 3.3V <= Dva krajnja desna pina (bliže LED -ima) su POZITIVNI priključci na desnu stranu konektora na NLDWRTG štitu (blizu regulatora napona LM7805)

Pin 9: GND + Pin 10: GND <= Suprotna strana je NEGATIVNA konekcija sa lijeve strane konektora na NLDWRTG štitu

Za spajanje žica između SDCARD čitača i WRTG slijedite ove upute:

www.jbprojects.net/articles/wrt54gl_mods/

Relevantne pinove:

  • CS -> Tačka 1
  • MOSI -> Tačka 2
  • SCK -> Tačka 5
  • MISO -> Tačka 7

Korak 5: Ograničenja

Ograničenja
Ograničenja

CPU WRT54GL nije najjači (Broadcom BCM5352 @ 200 MHz), može se overclockati na 250Mhz (ne preporučuje se:)) pa nemojte očekivati da ćete na njemu pokrenuti SETI @ HOME. Ruter ima samo 100mbit/s interfejsa i za razliku od onog što možete pronaći na mnogim mjestima ovaj hardver *NE podržava 802.1q VLAN *. To je samo jednostavan VLAN zasnovan na portu, nemojte stavljati WRTG u mrežu koja prenosi VLAN -ove, to ne može učiniti.

Jedna posebno korisna aplikacija je korištenje usmjerivača kao VPN klijenta za povezivanje na centralnu lokaciju. Iako je savršeno upotrebljiv i za VPN poslužitelj, ne očekujte mnogo performansi od njega.

Evo nekih mojih rezultata s WRT54GL v1.1 koji koristi OpenVPN kao klijent.

Maksimalna propusnost tunela: 500kbit/s dolje 50 kbit/s gore

Maksimalne performanse usmjeravanja bez VPN -a iz WAN -> LAN 28 mbit/s

Maksimalne NAT (Masquerade) performanse bez VPN -a iz WAN -> LAN 27 mbit/s

Još uvijek postoji mnogo lokacija s nižim ukupnim propusnim opsegom od ovih (ISDN -ovi, oglasi, kabelske mreže, satelit itd.) Što ovaj usmjerivač može savršeno zadovoljiti.

Obično problemi nastaju zbog postavljanja previše bežičnih klijenata na ove usmjerivače. Viđao sam mnogo postavki tokom godina u kafama, hotelima, restoranima gdje bacaju jedan wifi ruter na šalter i zovu ga svaki dan, očekujući da će moći poslužiti 10+ ljudi. Sve što dobiju je potpuno neupotrebljivo wifi iskustvo na kraju budući da je ukupna teoretska propusnost za ovaj usmjerivač 802.11G 51 mbit/s i to je za svakoga, recimo da je stvarni oko 30mbit/s. Za 10 osoba to je 3mbit/s po korisniku u najboljem slučaju što nije dovoljno za današnje aplikacije koje gladuju (protok videa/zvuka, web 2.0 stranice pune velikih slika itd.).

Kao što sam ranije rekao, poanta ovog hakiranja je daljinsko upravljanje i ono ne bi koristilo više od nekoliko kbit/s prometa putem VPN -a.

Korak 6: WRTG softver

WRTG softver
WRTG softver

Firmver je izgrađen na najboljoj verziji: DD-WRT v24-sp2 (08/12/10) std-nokaid (SVN revizija 14929) Postoje i druge slike poput VPN-a koje žrtvuje ext2 modul radi uštede prostora dok još uvijek ima mmc kernelmodul (LoL). Optware 2 je prekinuti, ali još uvijek koristan uslužni paket koji proširuje osnovne DD-WRT funkcionalnosti:

-To čini osnovni Linux distributer od osakaćene instalacije busybox.

-Omogućava bash i druge granate.

-Omogućava mnogo bogova poput: htop, netcat, tcpdump, ngrep, mc

-Omogućava poslužiteljske serije kao što su: samba, zvjezdica, vsftpd, jabber server

Međutim, softverski paketi su stari, puni grešaka i ranjivosti. Objavljivanje i slika ovdje bili bi isti kao i instalacija Windowsa 98 USD, stoga neću još ništa objaviti, ali ću vam korak po korak zapisati kako postaviti svoju OptWare 2 SDCard karticu.

U budućnosti planiram napraviti novi linux distributer (SnowGlobe Linux) sa svježim paketima za ovaj uređaj i to objaviti.

1, JFFS2 mora biti omogućen, nije važno što na njemu nema slobodnog prostora:

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

2, SDCARD particioniranje. Evo pametnog trika:

14 GB ili šta god želimo imati za prvu particiju podataka za ddwrt 100-500mb drugu particiju (EXT2) za oporavak

Na primjer:

Disk /dev /sde: 14,5 GiB, 15523119104 bajta, 30318592 sektora

Jedinice: sektori od 1 * 512 = 512 bajtova Veličina sektora (logička/fizička): 512 bajta/512 bajtova U/I veličina (minimalni/optimalni): 512 bajtova/512 bajtova Tip diskabele: dos Identifikator diska: 0x6ad48986 Započinjanje pokretanja uređaja Sektori Veličina Id Tip /dev /sde1 2048 29362175 29360128 14G 83 Linux /dev /sde2 29362176 30318591 956416 467M 83 Linux

Kreirajte datotečne sisteme:

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

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

Podesite datotečne sisteme:

tune2fs -c0 -i0 -m0 /dev /sde1

tune2fs -c0 -i0 -m0 /dev /sde2

Samo će prva particija biti automatizirana sistemom pri pokretanju! Ideja iza particije za oporavak je da WRT54G nema prostora za držanje fdiska nigdje drugdje. Dakle, ako dođe do nečistog isključivanja i postoje nedosljednosti u datotečnom sistemu, jedini način da to popravite je imati kopiju fdiska (i potrebne biblioteke za pokretanje) na drugoj particiji koja će se samo povremeno montirati samo za čitanje radi pokretanja fsck ako potrebno. U suprotnom bi karticu trebalo izvaditi i staviti na računar radi popravke …

3, Montaža

Ako pravilno umetnete već particioniranu, formatiranu karticu i wrtg se podiže, najvjerojatnije će se prva particija montirati s automatskim instaliranjem:

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

Opcija mora biti sada vezana:

mount -o bind /mmc / /opt /

4, skripta za instaliranje OWRT2

Prije nego počnete provjerite je li defgw, dns sve u redu.

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

sh /tmp/optware-install.sh

Ako ne može dobiti skriptu, to je zato što wgetbox wget ne radi. Radit će s owrt wget -om, ali želite instalirati owrt…

Izlaz bi trebao izgledati ovako:

Provjera konfiguracije sistema…

Korištenje 192.168.1.1 kao zadanog pristupnika. Koristeći sljedeće poslužitelje imena: nameserver 192.168.1.30 Upozorenje: lokalni nameserver se razlikuje od gateway -a! Provjerite konfiguraciju ili unesite: sed -i s/192.168.*/192.168.1.1/ /tmp/resolv.conf da to ispravite. Instaliranje paketa uclibc-opt_0.9.28-13_mipsel.ipk… Povezivanje na ipkg.nslu2-linux.org [140.211.166.82]: 80 uclibc-opt_0.9.28-12 100% | ************ *********************************** | 832 KB 00:00:00 ETA Ažuriranje /opt/etc/ld.so.cache/opt/sbin/ldconfig: ne može stvoriti /opt/etc/ld.so.cache~ (Nema takve datoteke ili direktorija) Instaliranje paketa ipkg-opt_0.99.163-9_mipsel.ipk… Povezivanje sa ipkg.nslu2-linux.org [140.211.166.82]: 80 ipkg-opt_0.99.163-9_ 100% | ************** ********************************* | 75896 00:00:00 ETA Preuzimanje https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Napuhavanje https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Ažurirano lista dostupnih paketa u/opt/lib/ipkg/lists/optware Uspješno je prekinuta. Instaliranje uclibc-opt (0.9.28-12) u/opt/… Preuzimanje https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… paketa uclibc-opt predlaže instaliranje ipkg-opt Konfiguriranje uclibc-opt Ažuriranje /opt/etc/ld.so.cache Uspješno je prekinuto. Instaliranje ipkg-opt (0.99.163-9) u/opt/… Preuzimanje https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Konfiguriranje ipkg-opt Uspješno završeno.

5, greška putanje:

MORATE izvoziti putanju sa:

izvoz 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"

u suprotnom ipkg neće učiniti ništa!

6, Potvrdite IPKG:

ipkg update

Trebalo bi ispisati:

Preuzimanje

Napuhavanje https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Ažurirana lista dostupnih paketa u/opt/lib/ipkg/lists/optware Uspješno je prekinuta.

7, Instalirajte pakete:

ipkg instalirati bash htop mc openvpn tcpdump vim bzip2 bc e2fsprogs findutils gawk grep gzip manje napraviti ntfs-3g openssl perl php psmisc psutils

samba36 sed tar unrar unzip vnstat vsftpd wget whois zip ncftp

8, Navedite instalirane pakete:

ipkg-opt lista_instalirana

Zbog nedostatka resursa ne preporučuje se izrada paketa na usmjerivaču. U tu svrhu postavite zasebno okruženje za unakrsnu kompilaciju mipova u Vmware/Vbox/KVM.

Potrebne stvari:

-Debian 7 wheezy 64 -bitni host operativni sistem

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

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

Ne gubite vrijeme da sami pokušate sastaviti SDK, priloženi binarni SDK je dovoljno dobar.

Napravite jednostavnu helloworld aplikaciju

#include int main (void) {printf ("Kvragu! O 'svijet, zašto se moj kôd ne kompajlira? / n / n"); return 0; }

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

Ako sve ide kako treba, sada biste trebali imati izvršnu datoteku mips:

pozdrav: ELF 32-bitna LSB izvršna datoteka, MIPS, MIPS32 verzija 1 (SYSV), dinamički povezana (koristi zajedničke biblioteke), nije skinuta

Korak 7: Arduino softver

Cijeli izvorni kod možete preuzeti u nastavku. Prilično je jednostavno, može kontrolirati 2 releja i neke RC utikače putem radija od 433 Mhz. Možete ga jednostavno proširiti, npr.: Dodati još prekidača za daljinsko upravljanje.

Korak 8: Zatvaranje i lista zadataka

Zatvaranje i lista zadataka
Zatvaranje i lista zadataka

WRT54G je odličan hardver pa se sav trud uložen u ovaj projekt isplati, osim što NLD Wrtg štit može biti upotrebljiv sa budućim verzijama hardvera.

Budući da je potrošnja energije WRTG -a niža od Raspberry PI -ja, solarno napajanje usmjerivača može biti i dobra nadogradnja, a s Arduinom možemo pratiti svaki detalj procesa solarnog punjenja (napon baterije, napon ploče, potrošnja). Kasnije ću nastaviti seriju WRTG sa solarnim hakovima.

Pronalaženje načina programiranja Arduina izravno iz WRTG -a bilo bi sjajno (ovo bi zahtijevalo metodu za resetiranje Arduina).

Ljudi s 3D, Makerbot vještinama više su nego dobrodošli da dizajniraju prilagođenu zaštitnu ploču (s konektorima moje ploče) za prednji dio ili redizajniraju cijeli plastični prednji dio usmjerivača.

AŽURIRANJE: Da bih proslavio da MIPS arhitektura postaje Open Source, ažurirao sam vodič s načinom ukrštanja jednostavnih C programa u WRTG.

Živio MIPS!:)

tip sistema: Broadcom BCM5352 čip rev 0procesor: 0 procesorski model: BCM3302 V0.8 BogoMIPS: 199.47 instrukcija čekanja: nema mikrosekundnih tajmera: da tlb_entries: 32 dodatni vektor prekida: nema hardverske tačke posmatranja: nema VCED izuzetaka: nije dostupno VCEI izuzeci: nije dostupno

Preporučuje se: