INHOUDSOPGAWE:

NLDWRTG die ULTIMATE WRT54G -uitbreidingskaart: 8 stappe (met foto's)
NLDWRTG die ULTIMATE WRT54G -uitbreidingskaart: 8 stappe (met foto's)

Video: NLDWRTG die ULTIMATE WRT54G -uitbreidingskaart: 8 stappe (met foto's)

Video: NLDWRTG die ULTIMATE WRT54G -uitbreidingskaart: 8 stappe (met foto's)
Video: ПРИВОЗ. ОДЕССА МАМА. Рецепт САЛО. ОБЗОР НОЖЕЙ 2024, November
Anonim
NLDWRTG die ULTIMATE WRT54G -uitbreidingsraad
NLDWRTG die ULTIMATE WRT54G -uitbreidingsraad
NLDWRTG die ULTIMATE WRT54G -uitbreidingsraad
NLDWRTG die ULTIMATE WRT54G -uitbreidingsraad

Ek modelleer WRT54G -routers sedert 2006, maar ek het nog nooit die tyd gehad om 'n spesiale bord daarvoor te ontwerp nie, maar hierdie hardeware is nog steeds een van die mees hackbare wifi -routers op die oomblik dat dit geskryf word en verdien om lewendig te bly.

Stap 1: Kort oorsig van die Linksys WRT54G -reeks

Kort oorsig van die Linksys WRT54G -reeks
Kort oorsig van die Linksys WRT54G -reeks

en.wikipedia.org/wiki/Linksys_WRT54G_serie…

Daar is baie verskillende weergawes op die mark, dus laat ons kyk wat aangepas kan word:

-WRT54G 2.0/2.1/2.2 -> Alhoewel al die mods moontlik is, neem die groot ou moederbord al die ruimte in die tas in, maar as u hierdie reeks verander, moet u u kring buite die boks skuif of 'n heeltemal nuwe omhulsel skep (srsly is nie die moeite werd nie)

-WRT54G 4.0 oorgeskakel na nuwe SoC -> Dit was die eerste bord waarop die L -vormige moederbord bekendgestel is, so dit is die eerste weergawe waar u van my skild kan gebruik en dit in die omhulsel kan steek

-WRT54GL 1.0/1.1-> Linksys het die WRT54GL (die topverkoper-router van alle tye) in 2005 vrygestel om firmware van derdepartye wat op Linux gebaseer is, te ondersteun, nadat die oorspronklike WRT54G-lyn van Linux na VxWorks oorgeskakel is, wat begin met weergawe 5. Die WRT54GL is tegnies 'n heruitgawe van die weergawe 4 WRT54G. Hierdie model is die KONING van WRTG's. Daar is baie tweedehandse routers op die mark, so as u 'n keuse het watter tipe u wil koop, koop altyd die WRT54GL.

-WRT54G 5.0 en hoër -> Gebruik VxWorks OS en verminderde flitsgeheue; nie verenigbaar met die meeste derdeparty-firmware nie, hoewel die 'VxWorks killer'-nut dit moontlik maak om 'n paar open source firmware van derde partye op hierdie en toekomstige weergawes te laai. Linksys het hier 'n slegte draai gemaak en in wese 'n heeltemal goeie produk verwoes. Alhoewel dit moontlik is om dit aan te pas, is die ruimte op die router so klein (2MB) dat dit slegs by die DD-WRT-mikro-firmware kan pas, wat amper niks kan doen behalwe die gewone routeringsfunksionaliteit nie (geen VPN, geen smbfs/cifs, geen NFS, geen mmc, geen ext2). Ek het daarin geslaag om pitte vir hierdie reeks te skep en 1-1 vereiste module ingedruk op die koste om ander uit te neem. Dit is NIE u tyd en moeite werd nie, koop NIE hierdie routers nie.

Met die latere WRT-reeks het Linksys oorgeskakel na ARM-argitektuur, byvoorbeeld, het die WRT1200 AC 1.3 GHz dual-core ARM cpu. Ek het egter slegte ervaring met hierdie routers, selfs nadat ek verskeie OpenWRT (nou LEDE) weergawes probeer het, kan die routers lukraak vries. Ek verwag 300+ dae uptime van Unix -toestelle.

Stap 2: Uitbreiding van die funksionaliteit

Uitbreiding van die funksionaliteit
Uitbreiding van die funksionaliteit

Ok, wat kan u met hierdie router doen:

1, voeg 2x seriële poorte by -> wat handig kan wees as u ander bedieners op 'n afgeleë plek het en u wil kontak maak met hul bios via seriële lyn of ander routers, wat dit moontlik maak

2, voeg 1 USB1.0 -poort by -> kan gebruik word om drukker, eksterne hardeskyf, ens. Aan te sluit (ek het nooit hierdie mod gedoen nie, so dit sal nie deel van die skryfwerk wees nie)

3, voeg 'n eksterne SD -kaart by vir berging, dit kan u router se klein 16MB -geheue tot 16/32/…+GB verleng. Ek het geen probleem gehad met die gebruik van hierdie grootte SD -kaarte nie, en ek het ook geen probleem gehad met die gebruik van splinternuwe duursame KLAS 10 -kaarte nie. As u geëksperimenteer het met die beperking van kaarte per WRTG -modelle, kan u 'n opmerking hieronder gee.

4, voeg 'n arduino by om u huis, relais, skakelaars te beheer

As u 'n arduino byvoeg, bied u in wese 'n onbeperkte hoeveelheid opsies: robotbeheer, die beheer van infrarooi toestelle (TV's, videorecorders, DVD's, projektors, lugversorging), aansluit talle toestelle by goedkoop 433Mhz draadlose skakelaars, kommunikeer met ander arduino's, raspis, die byvoeging van 'n Xbee, ens.

Alhoewel dit alles gedoen kan word met 'n Raspberry PI + Arduino en uitbreidings, beskou ek die WRT54G -router meer betroubaar as die raspis. Ek het hierdie routers in soortgelyke konfigurasies met meer as 1 jaar (!) Uptyd, ek kon nie dieselfde sê oor die raspis waar my hoogste uptyd ongeveer 240 dae op raspi 1 was nie, dan gee die SDcard afstand van die stelsel, hoewel die C Die arduino -beheerkode is in die geheue gelaai, so ek hoef nie haastig te wees met die vervanging nie, aangesien die beheerknoop nog steeds perfek funksioneer:))

Stap 3: Hardeware lys

Hardeware lys
Hardeware lys

Ek heg die borduitleg in beide SVG- en EasyEda -formaat aan. As u die projek wil bou, benodig u die volgende komponente: 1x LM7805 spanningsreguleerder

2x doppe vir vreg 1uF 10uF (10 stuks elektrolitiese kondensators 25V 35V 50V 1uF ~ 1000uF verskillende waarde en spanning)

1x 4 -pins kabel van die SDcar na die bord (10 stuks Jumper Wire 2/3/4/5/6/7Pin Female to Female Dupont -kabel 20cm vir Arduino)

2x DIP051A7212D riet relais

1x RS232 manlike aansluiting (20 stuks 9-polige D-Sub DB9-mannetjie, reghoekige PCB-aansluiting WT7n)

1x MAX 233 (10 stuks Max233 Max233cpp Rs232 Rs-232 bestuurder/ontvangers Ic New X)

1x 10 -pins aansluitkabel (5 stuks 2 mm steek 2x5 pen 10 pen 10 draad IDC plat lint kabellengte 10 cm)

1x 10 -pen -aansluiting (20 stuks 2,54 mm 2x5 -pen 10 -pen, reguit manlike ingeboude PCB -boks, kop IDC -aansluiting)

1x koppelingskoppe (10 stuks 1*40Pin enkelry -vroulike 2,54 mm breekbare kopskakelaar vir Arduino 2017)

1x SD -kaart (kan 'n ou groot SD of 'n nuwe microSD met omskakelaar wees, hulle moet minder as 32 GB werk, behalwe dat ek nie kaarte getoets het nie)

1x 3v5v TTL-omskakelaar (5x Logic Level Converter 3.3V tot 5V TTL Bi-directional vir Arduino Raspberry pi)

1x 4n35 optokoppelaar

1x SD -kaartmodule -slotleser vir Arduino ARM MCU Lees en skryf

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

1x RX- en TX -modules koop dit as 'n kombinasiepakket (5 stuks 433Mhz RF -sender en ontvangerstel vir Arduino draadlose afstandsbediening)

Stap 4: Hardeware -ontwerp

Hardeware -ontwerp
Hardeware -ontwerp
Hardeware -ontwerp
Hardeware -ontwerp
Hardeware -ontwerp
Hardeware -ontwerp

-Bord skroef vas in die hoof swart onderkant van plastiek

-MAX233 is gekies bo die MAX232, sodat geen ekstra kappies nodig is vir die PC-> WRTG -omskakelaar nie -Alle komponente is in 1 reël, sodat 'n eenvoudige reghoek aan die voorkant gesny kan word in plaas van om verskeie gate te boor, alternatiewelik 'n mooi dekplaat (of 'n hele nuwe WRTG -omhulsel) kan met makerbot ontwerp word

-Die arduino promicros mikro -USB -aansluiting wat na die voorpaneel kyk vir eksterne programmering.

-Gebaseer op Arduino Promicro (arduino voed vanaf die 12V -ingang van die WRT54G -router (deur middel van 'n spanningsreguleerder), is die oop kringspanning van die adapter ongeveer 16V!)

-Die Promicro het regte usb, nie gemors nie, sodat die WRTG's/dev/tts/1 aan die hardeware UART van Promicro gekoppel kan word

-Seriële kommunikasie deur/dev/tts/0 tussen PC WRTG

-RF 433Mhz ontvanger + sender (sender kan 12V neem vir 'n hoër reeks)

-IR sender en ontvanger kan op die voorpaneel gevoeg word

-Bykomende LED's kan op die voorpaneel gevoeg word (dui Rx/Tx aan vir RF, IR, router/ardu comm -aanwyser)

Ek kon die bord met 'n mini -omskakelaar ontwerp het, maar het die lineêre spanningsreguleerderbenadering gevolg aangesien ek dit byderhand gehad het. Ek het 5V op 'n sekere punt van die stroombaan gevind, maar toe ek daarop aansluit, het die router onbruikbaar geword (kon waarskynlik nie die hoeveelheid stroom verskaf wat die arduino -bord benodig nie), en daarom het ek 'n ekstra Vreg -benadering gevolg.

Die 3v5v TTL -omskakelaar is daar om die korrekte volatage -omskakeling te verskaf (ek gebruik 'n 5V arduino promicro -model, wat 5V op die hardeware -UART -poort gebruik, daarom is spanning -omskakeling nodig). Ek het egter in die verlede routers aangepas en Arduino Nanos, Micros sonder die omskakelaar bygevoeg, en ek het geen probleem gehad nie, aangesien die TTR -poort van die WRTG 5V verdraagsaam is, maar dit beteken nie dat u dit van hierdie spanning moet gebruik nie.

Die 4n35 is ook bekendgestel om van die geraas van die eksterne rekenaarkant ontslae te raak; ek het hierdie komponent nie in die verlede gebruik nie, maar dit kan ook wees omdat die skootrekenaar wat ek tydens die toetse gebruik het, foutief was.

Die 10pin -aansluitkabel sorg vir die meeste verbindings, maar u moet seker maak dat u die voetstukke korrek installeer.

Soos dit op die foto by die seriële poort getoon word

Speld 1: 3.3V + Speld 2: 3.3V <= Die 2 penne heel regs (nader aan die LED's) is die POSITIEF wat aan die regterkant van die aansluiting op die NLDWRTG -skild (naby die LM7805 spanningsreguleerder) verbind word

Pin 9: GND + Pin 10: GND <= Teenoorkant is die NEGATIEF verbind met die linkerkant van die connector op die NLDWRTG -skild

Vir die verbinding van die drade tussen die SDCARD -leser en die WRTG, volg:

www.jbprojects.net/articles/wrt54gl_mods/

Die relevante penne:

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

Stap 5: Beperkings

Beperkings
Beperkings

Die WRT54GL se SVE is nie die sterkste nie (Broadcom BCM5352 @ 200 MHz), kan oorgeklok word tot 250Mhz (dit word nie aanbeveel nie:)), moenie verwag om SETI @ HOME daarop uit te voer nie. Die router - slegs - het 100mbit/s -koppelvlakke, en anders as wat u op baie plekke kan vind, ondersteun hierdie hardeware *NIE 802.1q VLAN *nie. Dit is slegs 'n eenvoudige VLAN op poort. Moet asseblief nie die WRTG in 'n netwerk plaas wat VLAN's vervoer nie; dit kan dit nie doen nie.

Een besonder nuttige toepassing is om die router as VPN -kliënt te gebruik om aan te sluit op 'n sentrale plek. Alhoewel dit ook perfek bruikbaar is vir VPN -bedieners, moet u nie veel prestasie daarvan verwag nie.

Hier is 'n paar van my resultate met 'n WRT54GL v1.1 wat OpenVPN as kliënt gebruik.

Maksimum tonnel deurset: 500 kbit/s af 50 kbit/s op

Maksimum routeringsprestasie sonder VPN vanaf WAN -> LAN 28 mbit/s

Maksimum NAT (Masquerade) prestasie sonder VPN van WAN -> LAN 27 mbit/s

Daar is nog baie plekke met 'n laer bandwydte as hierdie (ISDN's, Adsls, kabelnetwerke, satelliet, ens.) Wat hierdie router kan bevredig.

Gewoonlik kom die probleme deur te veel draadlose kliënte op hierdie routers te sit. Ek het deur die jare baie instellings in koffie, hotelle, restaurante gesien waar hulle een wifi -router op die toonbank gooi en dit 'n dag bel, met die verwagting dat dit meer as 10 mense kan bedien. Al wat hulle kry, is 'n heeltemal onbruikbare wifi -ervaring, aangesien die algehele teoretiese bandwydte vir hierdie 802.11G -router 51 mbit/s is, en dit is vir almal, laat ons sê dat die werklike ongeveer 30mbit/s is. Vir 10 mense is dit in die beste geval 3mbit/s per gebruiker, wat nêrens genoeg is vir vandag se bandwydtehonger (video-/klankstroming, web 2.0 -bladsye vol groot foto's, ens.).

Soos ek vroeër gesê het, is die punt van hierdie hack afstandbeheer en dit sal nie meer as 'n paar kbit/s -verkeer deur 'n VPN gebruik nie.

Stap 6: WRTG -sagteware

WRTG sagteware
WRTG sagteware

Die firmware is gebou op die beste weergawe: DD-WRT v24-sp2 (08/12/10) std-nokaid (SVN hersiening 14929) Daar is ander beelde soos die VPN wat die ext2-module opoffer om ruimte te bespaar terwyl die mmc nog steeds is kernelmodul (LoL). Optware 2 is 'n beëindigde, maar steeds bruikbare hulppakket wat die basiese DD-WRT-funksie uitbrei:

-Dit maak 'n basiese Linux -distro van die verlamde installasie van die besige boks.

-Bied bash en ander skulpe.

-Bied baie gode soos: htop, netcat, tcpdump, ngrep, mc

-Bied bedienersdienste soos: samba, asterisk, vsftpd, jabber server

Die sagtewarepakkette is egter oud, met foute en kwesbaarhede. Die publikasie en die prent hier is dieselfde as die installering van 'n Windows $ 98 -installasie, daarom sal ek nog niks publiseer nie, maar dit stap vir stap neerskryf hoe u u OptWare 2 SDCard opstel.

In die toekoms beplan ek om 'n nuwe Linux distro (SnowGlobe Linux) met vars pakkette vir hierdie toestel te maak en dit te publiseer.

1, moet JFFS2 geaktiveer wees, maak nie saak dat daar geen vrye ruimte op is nie:

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

2, SDCARD -partisie. Hier is 'n slim truuk:

14 GB of wat ons ook al wil hê vir die eerste datapartisie vir ddwrt 100-500mb tweede partisie (EXT2) vir herstel

Byvoorbeeld:

Skyf /dev /sde: 14.5 GiB, 15523119104 grepe, 30318592 sektore

Eenhede: sektore van 1 * 512 = 512 grepe Sektorgrootte (logies/fisies): 512 grepe/512 grepe I/O -grootte (minimum/optimaal): 512 grepe/512 grepe Tipe etiket: dos Skyfidentifikasie: 0x6ad48986 Begin van toestel begin Sektore Grootte Id Tipe /dev /sde1 2048 29362175 29360128 14G 83 Linux /dev /sde2 29362176 30318591 956416 467M 83 Linux

Skep lêerstelsels:

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

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

Stel lêerstelsels in:

tune2fs -c0 -i0 -m0 /dev /sde1

tune2fs -c0 -i0 -m0 /dev /sde2

Slegs die eerste partisie word deur die stelsel outomaties gemonitor! Die idee agter die herstelpartisie is dat WRT54G nêrens anders ruimte het om 'n fdisk te hou nie. As daar dus 'n onreine afskakeling is en daar teenstrydighede in die lêerstelsel is, is die enigste manier om dit te herstel, 'n afskrif van fdisk (en die vereiste libs om te begin) op 'n tweede partisie, wat slegs af en toe gemonteer word as slegs gelees om fsck uit te voer as benodig. Anders sou die kaart uitgehaal en in 'n rekenaar geplaas moes word vir herstel …

3, montering

As u 'n reeds gesplete, geformateerde kaart en wrtg -stewels behoorlik ingesit het, is dit heel waarskynlik dat die eerste partisie outomaties gemonteer sal word:

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

Opt moet nou vasgemaak word:

mount -o bind /mmc / /opt /

4, OWRT2 installeer script

Voordat u begin kyk of defgw, dns alles goed is.

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

sh /tmp/optware-install.sh

As dit nie die script kan kry nie, is dit omdat busybox wget misluk. Dit werk met owrt's wget, maar u wil owrt installeer …

Uitset moet so lyk:

Kontroleer tans stelselopstelling …

Gebruik 192.168.1.1 as standaard gateway. Gebruik die volgende naambediener (s): naambediener 192.168.1.30 Waarskuwing: plaaslike naambediener is anders as gateway! Gaan config of voer in: sed -i s/192.168.*/192.168.1.1/ /tmp/resolv.conf om dit reg te stel. Pakket uclibc-opt_0.9.28-13_mipsel.ipk installeer… Koppel aan ipkg.struction2-linux.org [140.211.166.82]: 80 uclibc-opt_0.9.28-12 100% | ************* *********************************** | 832 KB 00:00:00 ETA Opdateer /opt/etc/ld.so.cache/opt/sbin/ldconfig: kan nie /opt/etc/ld.so.cache ~ opstel nie (nie so 'n lêer of gids nie) Pakket installeer ipkg-opt_0.99.163-9_mipsel.ipk… Koppel aan ipkg.struction2-linux.org [140.211.166.82]: 80 ipkg-opt_0.99.163-9_ 100% | **************** ********************************* | 75896 00:00:00 ETA Laai https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Op lys van beskikbare pakkette in/opt/lib/ipkg/lists/optware Suksesvol beëindig. Uclibc-opt (0.9.28-12) geïnstalleer na/opt/… Aflaai van https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… pakket uclibc-opt stel voor om ipkg-opt te installeer uclibc-opt instel Opdatering van /opt/etc/ld.so.cache Suksesvol beëindig. Installeer ipkg-opt (0.99.163-9) na/opt/… Laai https://ipkg.struction2-linux.org/feeds/optware/ddwrt/c af… Configureer ipkg-opt Suksesvol beëindig.

5, Padfout:

U MOET die pad uitvoer met:

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

anders sal ipkg niks doen nie!

6, Verifieer ipkg:

ipkg -opdatering

Moet uitset:

Laai https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… af

Opblaas https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Opgedateerde lys beskikbare pakkette in/opt/lib/ipkg/lists/optware Suksesvol beëindig.

7, installeer pakkette:

ipkg installeer bash htop mc openvpn tcpdump vim bzip2 bc e2fsprogs findutils gawk grep gzip minder maak ntfs-3g openssl perl php psmisc psutils

samba36 sed tar unrar unzip vnstat vsftpd wget whois zip ncftp

8, Lys geïnstalleerde pakkette:

ipkg-opt list_ geïnstalleer

Vanweë die gebrek aan hulpbronne word dit nie aanbeveel om pakkette op die router te bou nie. Stel 'n aparte mips -kruiskompilerende omgewing in Vmware/Vbox/KVM vir hierdie doel op.

Dinge benodig:

-Debian 7 wheezy 64bit gasheer OS

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

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

Moenie tyd mors om die SDK self te probeer saamstel nie, die binêre SDK wat verskaf word, is goed genoeg.

Bou 'n eenvoudige helloworld -app

#include int main (void) {printf ("Hel! O wêreld, waarom sal my kode nie saamstel nie? / n / n"); terugkeer 0; }

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

As alles reg verloop, moet u nou 'n mips uitvoerbaar hê:

hallo: ELF 32-bis LSB uitvoerbaar, MIPS, MIPS32 weergawe 1 (SYSV), dinamies gekoppel (gebruik gedeelde libs), nie gestroop nie

Stap 7: Arduino sagteware

U kan die volledige bronkode hieronder aflaai. Dit is redelik eenvoudig, dit kan die 2 relais en 'n paar RC -proppe deur 'n 433Mhz -radio beheer. U kan dit maklik uitbrei, byvoorbeeld: voeg meer rc -skakelaars by.

Stap 8: Sluitings- en taaklys

Sluitings- en ToDo -lys
Sluitings- en ToDo -lys

Die WRT54G is 'n uitstekende hardeware, dus al die werk wat in hierdie projek geïnvesteer is, is die moeite werd, behalwe dat die NLD Wrtg -skild ook bruikbaar is vir toekomstige hardewareweergawes.

Aangesien die kragverbruik van 'n WRTG laer is as die Raspberry PI's, kan sonkrag die router ook 'n goeie opgradering wees, en met die Arduino kan ons elke detail van die sonlaaiproses (batteryspanning, panelspanning, verbruik) monitor. Ek sal later voortgaan met die WRTG -reeks met sonhacks.

Dit sou wonderlik wees om 'n manier te vind om die Arduino direk vanaf die WRTG te programmeer (dit verg 'n metode om die Arduino terug te stel).

Mense met 3D-, Makerbot -vaardighede is meer as welkom om 'n pasgemaakte omslagplaat (met die verbindings van my bord) vir die voorkant te ontwerp of die volledige plastiese voorkant van die router te herontwerp.

UPDATE: Ter viering van die MIPS -argitektuur wat Open Source word, het ek die tutoriaal opgedateer om eenvoudige C -programme na die WRTG te kruisbou.

Lank lewe die MIPS!:)

stelsel tipe: Broadcom BCM5352 chip rev 0 verwerker: 0 cpu model: BCM3302 V0.8 BogoMIPS: 199,47 waginstruksie: geen mikrosekonde -timers: ja tlb_entries: 32 ekstra onderbrekingsvektor: geen hardware watchpoint: geen VCED -uitsonderings: nie beskikbaar VCEI -uitsonderings: nie beskikbaar nie

Aanbeveel: