Innholdsfortegnelse:

NLDWRTG ULTIMATE WRT54G utvidelseskort: 8 trinn (med bilder)
NLDWRTG ULTIMATE WRT54G utvidelseskort: 8 trinn (med bilder)

Video: NLDWRTG ULTIMATE WRT54G utvidelseskort: 8 trinn (med bilder)

Video: NLDWRTG ULTIMATE WRT54G utvidelseskort: 8 trinn (med bilder)
Video: WRT54GL 1.1 Installing DDWRT in 2.5 Mins 2024, Juli
Anonim
NLDWRTG ULTIMATE WRT54G utvidelseskort
NLDWRTG ULTIMATE WRT54G utvidelseskort
NLDWRTG ULTIMATE WRT54G utvidelseskort
NLDWRTG ULTIMATE WRT54G utvidelseskort

Jeg har moddert WRT54G -rutere siden 2006, men har aldri hatt tid til å designe et dedikert bord for det før i fjor. Denne maskinvaren er fremdeles en av de mest hackbare wifi -ruterne i skrivende stund og fortjener å bli holdt i live.

Trinn 1: Kort oversikt over Linksys WRT54G -serien

Kort oversikt over Linksys WRT54G -serien
Kort oversikt over Linksys WRT54G -serien

en.wikipedia.org/wiki/Linksys_WRT54G_serie…

Det er mange forskjellige versjoner på markedet, så la oss ta en titt som kan endres:

-WRT54G 2.0/2.1/2.2 -> Selv om alle modsene er mulige, tar det store gamle hovedkortet all plass i saken, hvis du endrer denne serien, må du flytte kretsen din utenfor boksen eller lage et helt nytt deksel (srsly ikke verdt innsatsen)

-WRT54G 4.0 Byttet til ny SoC -> Dette var det første brettet der det L -formede hovedkortet ble introdusert, så dette er den første versjonen der du kan dra fordel av skjoldet mitt og sette det inn i saken

-WRT54GL 1.0/1.1-> Linksys ga ut WRT54GL (tidenes mest solgte ruter) i 2005 for å støtte tredjeparts fastvare basert på Linux, etter at den originale WRT54G-linjen ble byttet fra Linux til VxWorks, med versjon 5. WRT54GL er teknisk sett en ny utgave av versjon 4 WRT54G. Denne modellen er kongen av WRTG. Det er mange brukte ruter rundt på markedet, så hvis du har et valg hvilken type du skal kjøpe, kjøp ALLTID WRT54GL.

-WRT54G 5.0 og høyere -> Bruker VxWorks OS og redusert Flash -minne; ikke kompatibel med de fleste tredjeparts fastvare, selv om "VxWorks killer" -verktøyet lar noen tredjeparts fast kilde fastvare lastes på denne og fremtidige versjoner. Linksys gjorde en dårlig sving her og ødela i hovedsak et helt godt produkt. Selv om det er mulig å endre disse, er plassen på ruteren så liten (2MB) at den bare kan passe til DD-WRT mikro-firmware som stort sett ikke kan gjøre noe utover vanlig rutefunksjonalitet (ingen VPN, ingen smbfs/cifs, ingen NFS, ingen mmc, ingen ext2). Jeg har klart å lage kjerner for denne serien og presse inn 1-1 nødvendig modul på kostnaden for å ta ut andre. Det er IKKE verdt din tid og krefter, ikke kjøp disse ruterne.

Med den senere WRT-serien koblet Linksys til ARM-arkitektur, for eksempel har WRT1200 AC 1,3 GHz dual-core ARM cpu. Jeg har imidlertid dårlig erfaring med disse ruterne selv etter å ha prøvd flere OpenWRT (nå LEDE) versjoner ruterne kan fryse tilfeldig. Jeg forventer 300+ dagers oppetid fra Unix -enheter.

Trinn 2: Utvid funksjonaliteten

Utvidelse av funksjonaliteten
Utvidelse av funksjonaliteten

Ok, hva kan du gjøre med denne ruteren:

1, legg til 2x serielle porter -> som kan være nyttig hvis du har andre servere på et eksternt sted og du vil koble til bios over seriell linje eller andre rutere, swtiches som tillater dette

2, Legg til en USB1.0 -port -> kan brukes til å koble til skriver, ekstern harddisk osv. (Jeg har aldri gjort denne moden, så det vil ikke være en del av skrivingen)

3, Legg til eksternt SD -kort for lagring, dette kan utvide ruterens lille 16 MB flash -lagringsminne til 16/32/…+GB. Jeg hadde ikke noe problem med å bruke denne størrelsen på SD -kort, og heller ikke noe problem med å bruke helt nye holdbare CLASS 10 -kort. Hvis du har eksperimentert med hva som er begrensningen på kort per WRTG -modeller, kan du legge igjen en kommentar nedenfor.

4, Legg til en arduino for å kontrollere hjemmet ditt, reléer, rswitches

Å legge til en arduino åpner i hovedsak et ubegrenset antall alternativer: robotkontroll, kontroll av infrarøde enheter i sikte (TVer, videospillere, DVDer, projektorer, klimaanlegg), tilkobling av tonnevis med enheter til billige 433Mhz trådløse brytere, kommunikasjon med andre arduinoer, raspis, legge til en Xbee etc etc.

Selv om alt dette kan gjøres med en Raspberry PI + Arduino og utvidelser, anser jeg WRT54G -ruteren som mer pålitelig enn raspiene. Jeg har disse ruterne i lignende konfigurasjoner med over 1 års (!) Oppetid, jeg kunne ikke si det samme om raspiene der min høyeste oppetid var rundt 240 dager på en raspi 1, så ga SD -kortet opp på systemet, selv om C Arduino -kontrollkoden ble lastet inn i minnet, så jeg slapp å skynde meg med utskiftningen siden kontrollnoden fremdeles var perfekt funksjonell:))

Trinn 3: Maskinvareliste

Maskinvare liste
Maskinvare liste

Jeg legger ved brettoppsettet i både SVG- og EasyEda -format. Hvis du vil bygge prosjektet trenger du følgende komponenter: 1x LM7805 Spenningsregulator

2x caps for vreg 1uF 10uF (10PCS elektrolytiske kondensatorer 25V 35V 50V 1uF ~ 1000uF forskjellig verdi og spenning)

1x 4 -pins kabel fra SDcar til brettet (10 stk. Jumper wire 2/3/4/5/6/7Pin kvinnelig til kvinnelig Dupont -kabel 20cm for Arduino)

2x DIP051A7212D sivreléer

1x RS232 hankontakt (20 stk. 9-polet D-Sub DB9 mannlig rettvinklet PCB-kontakt WT7n)

1x MAX 233 (10 stk Max233 Max233cpp Rs232 Rs-232 driver/mottakere Ic New X)

1x 10 -pinners tilkoblingskabel (5 stk. 2 mm stigning 2x5 pinne 10 pinne 10 ledning IDC flatbåndkabellengde 10 cm)

1x 10 -pinners stikkontakt (20 stk. 2,54 mm 2x5 pinne 10 pinner rett mannlig innhyllet PCB -bokshode IDC -kontakt)

1x kontakthoder (10 stk. 1*40Pin enkeltrad hun 2,54 mm brytbar topptekst fra Arduino 2017)

1x SD -kort (kan være gammelt stort SD eller nytt microsd med omformer, under 32 GB i størrelse burde de fungere, utover at jeg ikke testet kort)

1x 3v5v TTL-omformer (5x Logic Level Converter 3.3V til 5V TTL Bi-Directional for Arduino Raspberry pi)

1x 4n35 optokobler

1x SD -kortmodul Slot Socket Reader For Arduino ARM MCU Les og skriv

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

1x RX- og TX -moduler kjøper dem som en kombinasjonspakke (5 stk. 433Mhz RF -sender og mottakersett for trådløs Arduino fjernkontroll)

Trinn 4: Maskinvaredesign

Maskinvaredesign
Maskinvaredesign
Maskinvaredesign
Maskinvaredesign
Maskinvaredesign
Maskinvaredesign

-Board skruer inn i hoveddelen av svart bunnplate

-MAX233 ble valgt fremfor MAX232, så det vil ikke være behov for ytterligere lokk for PC-> WRTG seriekonverter -Alle komponenter er på 1 linje, så et enkelt rektangel kan kuttes foran i stedet for å bore flere hull, alternativt en fin dekkplate (eller et helt nytt WRTG -etui) kan designes med makerbot

-Den arduino promicros mikro -USB -kontakten vender mot frontpanelet for ekstern programmering.

-Basert på Arduino Promicro (arduino mates fra 12V -inngangen til WRT54G -ruteren (via en spenningsregulator), og den åpne kretsspenningen til adapteren er omtrent 16V!)

-Promicro har ekte usb, ikke delt søppel, så WRTG's/dev/tts/1 kan kobles til Promicros maskinvare UART

-Seriell kommunikasjon gjennom/dev/tts/0 mellom PC WRTG

-RF 433Mhz mottaker + sender (sender kan ta 12V for høyere rekkevidde)

-IR sender og mottaker kan legges til på frontpanelet

-Ytterligere lysdioder kan legges til på frontpanelet (angi Rx/Tx for RF, IR, router/ardu comm indikator)

Jeg kunne ha designet brettet med en mini buck converter, men tok den lineære spenningsregulator -tilnærmingen siden jeg hadde det i hånden. Jeg har funnet 5V et eller annet punkt i kretsen, men da jeg trykket på den gjorde ruteren ubrukelig (sannsynligvis ikke kunne gi mengden strøm som arduino -kortet trengte), derfor gikk jeg med en ekstra vreg -tilnærming.

3v5v TTL -omformeren er der for å gi riktig volatage -konvertering (jeg bruker en 5V arduino promicro -modell, som bruker 5V på maskinvarens UART -port, derfor er spenningsnivåkonvertering nødvendig). Imidlertid har jeg modded rutere tidligere og har lagt til Arduino Nanos, Micros uten omformeren, og jeg hadde ikke noe problem siden WRTGs TTY -port er 5V -tolerant, men det betyr ikke at du skal bruke den fra denne spenningen.

4n35 ble også introdusert for å bli kvitt noe støy fra den eksterne PC -siden. Jeg brukte ikke denne komponenten tidligere, men det kan også være fordi den bærbare datamaskinen jeg har brukt under testene var feil.

10 -pinners kontaktkabel tar seg av de fleste tilkoblingene, men du må sørge for at du installerer stikkontaktene riktig.

Som det er vist på bildet i serieporten

Pin 1: 3.3V + Pin 2: 3.3V <= De 2 ytterste høyre pinnene (nærmere lysdiodene) er POSITIVE som kobles til høyre side av kontakten på NLDWRTG -skjoldet (nær LM7805 spenningsregulator)

Pin 9: GND + Pin 10: GND <= På motsatt side er NEGATIVE koblet til venstre side av kontakten på NLDWRTG -skjoldet

Følg følgende for å koble ledningene mellom SDCARD -leseren og WRTG:

www.jbprojects.net/articles/wrt54gl_mods/

De relevante pinnene:

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

Trinn 5: Begrensninger

Begrensninger
Begrensninger

WRT54GLs CPU er ikke den sterkeste (Broadcom BCM5352 @ 200 MHz), kan overklokkes til 250Mhz (det anbefales ikke:)) så ikke forvent å kjøre SETI @ HOME på den. Ruteren - bare- har 100mbit/s -grensesnitt, og i motsetning til det du kan finne på mange steder, støtter denne maskinvaren IKKE 802.1q VLAN *. Det er bare en enkel portbasert VLAN. Vennligst ikke sett WRTG i et nettverk som transporterer VLAN, den kan ikke gjøre det.

En spesielt nyttig applikasjon er å bruke ruteren som VPN -klient for å koble til et sentralt sted. Selv om den også er perfekt brukbar for VPN -server, ikke forvent mye ytelse ut av den.

Her er noen av resultatene mine med en WRT54GL v1.1 som bruker OpenVPN som en klient.

Maksimal tunnelgjennomstrømning: 500 kbit/s ned 50 kbit/s opp

Maksimal rutingytelse uten VPN fra WAN -> LAN 28 mbit/s

Maksimal NAT (Masquerade) ytelse uten VPN fra WAN -> LAN 27 mbit/s

Det er fortsatt mange steder med lavere samlet båndbredde enn disse (ISDN -er, Adsl -er, kabelnettverk, satellitt osv.) Som denne ruteren perfekt kan tilfredsstille.

Vanligvis kommer problemene fra å sette altfor mange trådløse klienter på disse ruterne. Jeg så mange oppsett gjennom årene i kaffe, hoteller, restauranter hvor de kaster en wifi -ruter på disken og kaller den en dag, og forventet at den kunne servere 10+ mennesker. Alt de får er en helt ubrukelig wifi -opplevelse på slutten siden den totale teoretiske båndbredden for denne 802.11G -ruteren er 51 mbit/s, og det er for alle, la oss si at den virkelige er rundt 30mbit/s. For 10 personer som er 3mbit/s per bruker i beste fall, noe som ikke er nok for dagens båndbredde -sultne applikasjoner (video/lyd -streaming, web 2.0 -sider fulle av store bilder osv.).

Som jeg sa tidligere, er poenget med denne hacken fjernkontroll, og det ville ikke bruke mer enn et par kbit/s trafikk gjennom en VPN.

Trinn 6: WRTG -programvare

WRTG -programvare
WRTG -programvare

Fastvaren er bygget på den beste versjonen: DD-WRT v24-sp2 (08/12/10) std-nokaid (SVN revisjon 14929) Det er andre bilder som VPN som ofrer ext2-modulen for å spare plass mens den fortsatt har mmc kjernemodul (LoL). Optware 2 er en avviklet, men fortsatt nyttig verktøypakke som utvider den grunnleggende DD-WRT-funksjonaliteten:

-Det gjør en grunnleggende linux -distro fra den forkrøplede nedtatte opptaksboksinstallasjonen.

-Gir bash og andre skjell.

-Gir mange gudder som: htop, netcat, tcpdump, ngrep, mc

-Gir servertjenester som: samba, stjerne, vsftpd, jabber -server

Men programvarepakkene er gamle, ridd med feil og sårbarheter. Publisering og bilde her vil være det samme som å tilby en Window $ 98 -installasjon, derfor vil jeg ikke publisere noe ennå, men skrive det ned trinn for trinn hvordan du konfigurerer OptWare 2 SDCard.

I fremtiden planlegger jeg å lage en ny Linux distro (SnowGlobe Linux) med ferske pakker for denne enheten og publisere den.

1, JFFS2 må være aktivert, det spiller ingen rolle at den ikke har ledig plass på den:

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

2, SDCARD -partisjonering. Her er et smart triks:

14 GB eller hva vi vil ha for den første datapartisjonen for ddwrt 100-500mb andre partisjon (EXT2) for gjenoppretting

For eksempel:

Disk /dev /sde: 14,5 GiB, 15523119104 byte, 30318592 sektorer

Enheter: sektorer på 1 * 512 = 512 byte Sektorstørrelse (logisk/fysisk): 512 byte/512 bytes I/O -størrelse (minimum/optimal): 512 byte/512 byte Disketikettype: dos Diskidentifikator: 0x6ad48986 Enhetens oppstart Start slutt Sektorer Størrelse Id Type /dev /sde1 2048 29362175 29360128 14G 83 Linux /dev /sde2 29362176 30318591 956416 467M 83 Linux

Lag filsystemer:

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

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

Still inn filsystemer:

tune2fs -c0 -i0 -m0 /dev /sde1

tune2fs -c0 -i0 -m0 /dev /sde2

Bare den første partisjonen vil bli automatisert av systemet ved start! Tanken bak gjenopprettingspartisjonen er at WRT54G ikke har plass til å holde en fdisk andre steder. Så hvis det er en uren nedleggelse og det er inkonsekvenser i filsystemet, er den eneste måten å reparere det på å ha en kopi av fdisk (og nødvendig libs for å starte) på en andre partisjon som bare vil bli montert av og til som skrivebeskyttet for å kjøre fsck hvis behov for. Ellers måtte kortet tas ut og settes i en PC for reparasjon …

3, Montering

Hvis du legger inn et allerede partisjonert, formatert kort og wrtg -støvler på riktig måte, er det mest sannsynlig at den første partisjonen blir automatisert:

/dev/mmc/disc0/part1 13,8G 59,6M 13,7G 0%/mmc

Opt må bindes montert nå:

mount -o bind /mmc / /opt /

4, OWRT2 installeringsskript

Sjekk om defgw, dns alt bra før du begynner.

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

sh /tmp/optware-install.sh

Hvis det ikke kan få skriptet, er det fordi busybox wget mislykkes. Det vil fungere med owrts wget, men hei du vil installere owrt …

Produksjonen skal se slik ut:

Kontrollerer systemkonfigurasjon …

Bruker 192.168.1.1 som standard gateway. Bruke følgende navneserver (e): navneserver 192.168.1.30 Advarsel: lokal navneserver er annerledes enn gateway! Sjekk config eller skriv inn: sed -i s/192.168.*/192.168.1.1/ /tmp/resolv.conf for å korrigere dette. Installerer pakken uclibc-opt_0.9.28-13_mipsel.ipk… Kobler til ipkg.struction2-linux.org [140.211.166.82]: 80 uclibc-opt_0.9.28-12 100% | ************* *********************************** | 832 KB 00:00:00 ETA Oppdatering /opt/etc/ld.so.cache/opt/sbin/ldconfig: kan ikke opprette /opt/etc/ld.so.cache~ (Ingen slik fil eller katalog) Installere pakke ipkg-opt_0.99.163-9_mipsel.ipk… Kobler til ipkg.struction2-linux.org [140.211.166.82]: 80 ipkg-opt_0.99.163-9_ 100% | *************** ********************************* | 75896 00:00:00 ETA Last ned https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Oppblåsing https://ipkg.struction2-linux.org/feeds/optware/ddwrt/c… Oppdatert liste over tilgjengelige pakker i/opt/lib/ipkg/lists/optware Avsluttet. Installere uclibc-opt (0.9.28-12) til/opt/… Last ned https://ipkg.struction2-linux.org/feeds/optware/ddwrt/c… pakken uclibc-opt foreslår å installere ipkg-opt Konfigurere uclibc-opt Oppdaterer /opt/etc/ld.so.cache Avsluttet. Installerer ipkg-opt (0.99.163-9) til/opt/… Laster ned https://ipkg.struction2-linux.org/feeds/optware/ddwrt/c… Konfigurering av ipkg-opt Avsluttet.

5, Path bug:

Du MÅ eksportere banen med:

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

ellers gjør ipkg ingenting!

6, Bekreft ipkg:

ipkg oppdatering

Skal levere:

Last ned

Oppblåsing av https://ipkg.struction2-linux.org/feeds/optware/ddwrt/c… Oppdatert liste over tilgjengelige pakker i/opt/lib/ipkg/lists/optware Avsluttet.

7, Installer pakker:

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, liste installerte pakker:

ipkg-opt list_installert

Det anbefales ikke å bygge pakker på ruteren på grunn av mangel på ressurser. Sett opp separate mips krysskompilerende miljø i Vmware/Vbox/KVM for dette formålet.

Ting som trengs:

-Debian 7 wheezy 64bit verts -operativsystem

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

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

Ikke kast bort tid på å prøve å kompilere SDK på egen hånd, den medfølgende binære SDK -en er god nok.

Bygg en enkel helloworld -app

#include int main (void) {printf ("Hell! O 'verden, hvorfor vil ikke koden min kompilere? / n / n"); retur 0; }

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

Hvis alt går som det skal, bør du ha en mips kjørbar nå:

hei: ELF 32-biters LSB kjørbar, MIPS, MIPS32 versjon 1 (SYSV), dynamisk koblet (bruker delt libs), ikke strippet

Trinn 7: Arduino -programvare

Du kan laste ned hele kildekoden nedenfor. Det er ganske enkelt, det kan styre de 2 reléene og noen RC -plugger gjennom 433Mhz radio. Du kan enkelt forlenge den f.eks.: Legge til flere rc -brytere.

Trinn 8: Avslutning og gjøremålsliste

Avslutning og gjøremålsliste
Avslutning og gjøremålsliste

WRT54G er en utmerket maskinvare, så alt arbeidet som er investert i dette prosjektet er vel verdt det, i tillegg til at NLD Wrtg -skjoldet kan være brukbart med fremtidige maskinvareversjoner.

Siden strømforbruket til en WRTG er lavere enn Raspberry PI -ene, kan solenergi av ruteren også være en god oppgradering, og med Arduino kan vi overvåke alle detaljer i soloppladningsprosessen (batterispenning, panelspenning, forbruk). Jeg vil fortsette WRTG -serien med solarhacks senere.

Å finne en måte å programmere Arduino direkte fra WRTG ville være flott (dette vil kreve en metode for å tilbakestille Arduino).

Personer med 3D, Makerbot -ferdigheter er mer enn velkomne til å designe en tilpasset dekkplate (med kontaktene på brettet mitt) for fronten eller redesigne den komplette plastfronten på ruteren.

OPPDATERING: For å feire at MIPS -arkitekturen ble åpen kildekode, har jeg oppdatert opplæringen med hvordan jeg kan bygge enkle C -programmer på tvers av WRTG.

Lenge leve MIPS!:)

systemtype: Broadcom BCM5352 chip rev 0prosessor: 0 cpu -modell: BCM3302 V0.8 BogoMIPS: 199,47 venteanvisning: ingen mikrosekundtimere: ja tlb_entries: 32 ekstra avbruddsvektor: ingen hardware watchpoint: ingen VCED -unntak: ikke tilgjengelig VCEI -unntak: ikke tilgjengelig

Anbefalt: