Съдържание:

NLDWRTG платката за разширение ULTIMATE WRT54G: 8 стъпки (със снимки)
NLDWRTG платката за разширение ULTIMATE WRT54G: 8 стъпки (със снимки)

Видео: NLDWRTG платката за разширение ULTIMATE WRT54G: 8 стъпки (със снимки)

Видео: NLDWRTG платката за разширение ULTIMATE WRT54G: 8 стъпки (със снимки)
Видео: Как за 5 минут сделать плакат, чтобы клиент его утвердил 2024, Юли
Anonim
NLDWRTG платката за разширение ULTIMATE WRT54G
NLDWRTG платката за разширение ULTIMATE WRT54G
NLDWRTG платката за разширение ULTIMATE WRT54G
NLDWRTG платката за разширение ULTIMATE WRT54G

Модифицирам рутери WRT54G от 2006 г., но никога не съм имал време да проектирам специална платка за него до миналата година. Този хардуер все още е един от най -хакерските wifi рутери по време на писането и заслужава да бъде поддържан жив.

Стъпка 1: Кратък преглед на серията Linksys WRT54G

Кратък преглед на серията Linksys WRT54G
Кратък преглед на серията Linksys WRT54G

en.wikipedia.org/wiki/Linksys_WRT54G_serie…

На пазара има много различни версии, така че нека да разгледаме кои могат да бъдат променени:

-WRT54G 2.0/2.1/2.2 -> Въпреки че всички модификации са възможни, голямата стара дънна платка заема цялото пространство в кутията, ако промените тази серия, трябва да преместите веригата си извън кутията или да създадете напълно нов корпус (srsly не си струва усилията)

-WRT54G 4.0 Превключен към нов SoC -> Това беше първата платка, на която беше представена L -образната дънна платка, така че това е първата версия, където можете да се възползвате от моя щит и да го поставите в кутията

-WRT54GL 1.0/1.1-> Linksys пусна WRT54GL (най-продаваният рутер за всички времена) през 2005 г., за да поддържа фърмуер на трети страни, базиран на Linux, след като оригиналната линия WRT54G беше превключена от Linux на VxWorks, започвайки с версия 5. WRT54GL технически е преиздаване на версия 4 WRT54G. Този модел е кралят на WRTG. На пазара има много рутери втора употреба, така че ако имате избор кой тип да купите, ВИНАГИ купувайте WRT54GL.

-WRT54G 5.0 и по -нови -> Използва VxWorks OS и намалена флаш памет; не е съвместим с повечето фърмуери на трети страни, въпреки че помощната програма "VxWorks killer" позволява да се зареди някои фърмуер на трети страни с отворен код за тази и бъдещите версии. Linksys направи лош обрат тук и по същество съсипа напълно добър продукт. Въпреки че е възможно да ги промените, пространството на рутера е толкова малко (2MB), че може да се побере само на микро фърмуера DD-WRT, който почти не може да направи нищо извън обичайната функция за маршрутизиране (без VPN, без smbfs/cifs, без NFS, без mmc, без ext2). Успях да създам ядра за тази серия и да вмъкна 1-1 необходим модул за цената на изваждането на други. НЕ си струва вашето време и усилия, НЕ купувайте тези рутери.

С по-късната серия WRT Linksys премина към ARM архитектура например, WRT1200 AC има 1.3 GHz двуядрен ARM процесор. Имам обаче лош опит с тези рутери дори след като изпробвах няколко версии на OpenWRT (сега LEDE), рутерите могат да замръзнат на случаен принцип. Очаквам 300+ дни ъптайм от unix устройства.

Стъпка 2: Разширяване на функционалността

Разширяване на функционалността
Разширяване на функционалността

Добре, какви хакове можете да направите с този рутер:

1, Добавете 2x серийни портове -> които могат да ви бъдат полезни, ако имате други сървъри на отдалечено място и искате да се свържете с техните биоси през серийна линия или други маршрутизатори, които позволяват това

2, Добавете 1 USB1.0 порт -> може да се използва за свързване на принтер, външен твърд диск и т.н. (никога не съм правил този режим, така че няма да бъде част от писането)

3, Добавете външна SD карта за съхранение, това може да разшири малката 16MB флаш памет на вашия рутер до 16/32/…+GB. Нямах проблем с използването на този размер SD карти, а също и с използването на чисто нови издръжливи карти от КЛАС 10. Ако сте експериментирали с какво е ограничението на картите за WRTG модели, моля, оставете коментар по -долу.

4, Добавете arduino, за да контролирате дома си, релета, rcs превключватели

Добавянето на arduino по същество отваря неограничен брой опции: управление на роботи, управление на инфрачервени устройства в полезрението (телевизори, видеорекордери, DVD дискове, проектори, климатик), свързване на много устройства към евтини 433Mhz безжични превключватели, комуникация с други arduinos, raspis, добавяне на Xbee и др.

Въпреки че всичко това може да се направи с Raspberry PI + Arduino и разширения, считам маршрутизатора WRT54G за по -надежден от raspis. Имам тези рутери в подобни конфигурации с над 1 година (!) Ъптайм, не бих могъл да кажа същото за raspis, където най -високата ми продължителност на работа беше около 240 дни на raspi 1, след което SD картата се отказа от системата, въпреки че C Контролният код на Arduino беше зареден в паметта, така че не трябваше да бързам със замяната, тъй като контролният възел все още беше напълно функционален:))

Стъпка 3: Списък на хардуера

Списък на хардуера
Списък на хардуера

Прилагам оформлението на дъската във формат SVG и EasyEda. Ако искате да изградите проекта, ще ви трябват следните компоненти: 1x LM7805 Регулатор на напрежение

2x капачки за vreg 1uF 10uF (10PCS електролитни кондензатори 25V 35V 50V 1uF ~ 1000uF различни стойности и напрежение)

1x 4 -пинов кабел от SDcar към платката (10Pcs Jumper Wire 2/3/4/5/6/7Pin женски към женски кабел Dupont 20 см за Arduino)

2x DIP051A7212D Reed релета

1x гнездо RS232 мъжки (20 бр. 9 пинов D-Sub DB9 мъжки прав ъглов PCB конектор WT7n)

1x MAX 233 (10 броя Max233 Max233cpp Rs232 Rs-232 драйвер/приемници Ic New X)

1x 10 -пинов съединителен кабел (5 бр. 2 мм стъпка 2х5 пина 10 пина 10 жица IDC плосък лентов кабел с дължина 10 см)

1x 10 -пинов гнездо (20 бр. 2,54 мм 2х5 пина 10 щифт права мъжка обвита PCB кутия заглавна IDC конектор)

1x конектори за конектори (10 бр. 1*40Pin Едноредов женски 2,54 мм Прекъсващ конектор за заглавки от Arduino 2017)

1x SD карта (може да бъде стара голяма SD или нова microsd с конвертор, под 32GB по размер трябва да работят, над това не съм тествал карти)

1x 3v5v TTL конвертор (5x преобразувател на логическо ниво 3.3V в 5V TTL двупосочен за Arduino Raspberry pi)

1x 4n35 оптрон

1x четец на гнездо за слот за модул SD карта за четене и запис на Arduino ARM MCU

1x Arduino Promicro (5 бр. Leonardo Pro Micro ATmega32U4 16MHz 5V Заменете ATmega328 Arduino Pro Mini)

1x RX и TX модули ги купуват като комбиниран пакет (5бр. 433Mhz RF предавател и приемник за безжично дистанционно управление Arduino)

Стъпка 4: Дизайн на хардуера

Хардуерен дизайн
Хардуерен дизайн
Хардуерен дизайн
Хардуерен дизайн
Хардуерен дизайн
Хардуерен дизайн

-Винтове за дъска в основната част от дъската от черна пластмаса

-MAX233 е избран пред MAX232, така че няма да са необходими допълнителни капачки за компютъра-> WRTG сериен преобразувател -Всички компоненти са в 1 ред, така че обикновен правоъгълник може да се изреже отпред вместо да се пробият множество отвори, алтернативно хубава покривна плоча (или изцяло нов корпус на WRTG) може да бъде проектиран с makerbot

-Микро USB гнездото arduino promicros, обърнато към предния панел за външно програмиране.

-На базата на Arduino Promicro (arduino се захранва от 12V входа на рутера WRT54G (чрез регулатор на напрежението), напрежението на отворената верига на адаптера е около 16V!)

-Promicro има истински usb, а не споделени боклуци, така че WRTG's/dev/tts/1 могат да бъдат свързани към хардуерния UART на Promicro

-Серийна комуникация чрез/dev/tts/0 между PC WRTG

-RF 433Mhz приемник + предавател (предавателят може да отнеме 12V за по -висок обхват)

-IR предавател и приемник могат да бъдат добавени към предния панел

-Допълнителни светодиоди могат да бъдат добавени към предния панел (посочете Rx/Tx за RF, IR, маршрутизатор/ardu comm индикатор)

Можех да проектирам платката с мини конвертор, но взех подхода на линейния регулатор на напрежението, тъй като имах това в ръка. Открих 5V някаква точка от веригата, но когато се докосна до нея, маршрутизаторът стана неизползваем (вероятно не можа да осигури необходимото количество ток, необходим на платката arduino), затова отидох с допълнителен подход vreg.

3v5v TTL конверторът е там, за да осигури правилното преобразуване на волатите (използвам 5V arduino promicro модел, който използва 5V на своя хардуерен UART порт, следователно е необходимо преобразуване на нивото на напрежение). Въпреки това в миналото съм модифицирал рутери, добавяйки Arduino Nanos, Micros без конвертора и нямах проблем, тъй като TTY портът на WRTG е 5V толерантен, но това не означава, че трябва да го управлявате от това напрежение.

4n35 също беше представен, за да се отърве от някакъв шум, идващ от външната страна на компютъра, не съм използвал този компонент в миналото, но може да е и защото лаптопът, който съм използвал по време на тестовете, е дефектен.

10 -пиновият съединителен кабел се грижи за повечето връзки, но трябва да се уверите, че сте инсталирали правилно контактите.

Както е показано на снимката на серийния порт

Pin 1: 3.3V + Pin 2: 3.3V <= 2 -те крайни десни щифта (по -близо до светодиодите) са ПОЗИТИВНАТА връзка към дясната страна на конектора на щита NLDWRTG (близо до регулатора на напрежението LM7805)

ПИН 9: GND + ПИН 10: GND <= Отсрещната страна са ОТРИЦАТЕЛНИТЕ връзки към лявата страна на конектора на щита NLDWRTG

За свързване на проводниците между четеца на SDCARD и WRTG следвайте:

www.jbprojects.net/articles/wrt54gl_mods/

Съответните щифтове:

  • CS -> Точка 1
  • MOSI -> Точка 2
  • SCK -> Точка 5
  • MISO -> Точка 7

Стъпка 5: Ограничения

Ограничения
Ограничения

Процесорът на WRT54GL не е най -силният (Broadcom BCM5352 @ 200 MHz), може да бъде овърклокнат до 250Mhz (не се препоръчва:)), така че не очаквайте да стартирате SETI @ HOME върху него. Само рутерът има 100mbit/s интерфейси и за разлика от това, което можете да намерите на много места, този хардуер *НЕ поддържа 802.1q VLAN *. Това е просто проста VLAN базирана VLAN, моля, не поставяйте WRTG в мрежа, транспортираща VLAN, тя не може да го направи.

Едно особено полезно приложение е използването на рутера като VPN клиент за свързване към централно място. Въпреки че е напълно използваем и за VPN сървър, не очаквайте голяма производителност от него.

Ето някои от моите резултати с WRT54GL v1.1, използващ OpenVPN като клиент.

Максимална пропускателна способност на тунела: 500kbit/s надолу 50 kbit/s нагоре

Максимална производителност на маршрутизиране без VPN от WAN -> LAN 28 mbit/s

Максимална производителност на NAT (маскарад) без VPN от WAN -> LAN 27 mbit/s

Все още има много места с по -ниска обща честотна лента от тези (ISDN, Adsls, кабелни мрежи, сателит и т.н.), което този маршрутизатор може напълно да задоволи.

Обикновено проблемите идват от поставянето на твърде много безжични клиенти на тези рутери. Видях много настройки през годините в кафенета, хотели, ресторанти, където хвърлят един wifi рутер на тезгяха и го наричат на ден, очаквайки да може да обслужва 10+ души. Всичко, което получават, е напълно неизползваемо wifi изживяване в края, тъй като общата теоретична честотна лента за този маршрутизатор 802.11G е 51 mbit/s и това е за всички, да речем, че реалното е около 30mbit/s. За 10 човека, което е 3mbit/s на потребител в най -добрия случай, което никъде не е достатъчно за днешните гладни честотни ленти (видео/аудио стрийминг, уеб 2.0 страници, пълни с големи снимки и т.н.) приложения.

Както казах по -рано, целта на този хак е дистанционното управление и това няма да използва повече от няколко kbit/s трафик през VPN.

Стъпка 6: Софтуер WRTG

WRTG софтуер
WRTG софтуер

Фърмуерът е изграден върху най-добрата версия: DD-WRT v24-sp2 (08/12/10) std-nokaid (SVN версия 14929) Има и други изображения като VPN, които жертват модула ext2, за да спестят място, докато все още има mmc kernelmodul (LoL). Optware 2 е прекратен, но все още полезен помощен пакет, който разширява основната функционалност на DD-WRT:

-Това прави основен дистрибутор на Linux от осакатената инсталация на busybox.

-Осигурява bash и други черупки.

-Осигурява много богове като: htop, netcat, tcpdump, ngrep, mc

-Осигурява сървърни сериали като: samba, звездичка, vsftpd, jabber сървър

Софтуерните пакети обаче са стари, изпълнени с грешки и уязвимости. Публикуването и изображението тук биха били същите като предоставянето на Window $ 98 инсталация, затова все още няма да публикувам нищо, но ще го запиша стъпка по стъпка как да настроите вашата OptWare 2 SDCard.

В бъдеще планирам да направя нов дистрибутор на Linux (SnowGlobe Linux) със свежи пакети за това устройство и да го публикувам.

1, JFFS2 трябва да бъде активиран, няма значение, че на него няма свободно място:

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

2, разделяне на SDCARD. Ето един умен трик:

14GB или каквото искаме да имаме за първия дял на данни за ddwrt 100-500mb втори дял (EXT2) за възстановяване

Например:

Диск /dev /sde: 14.5 GiB, 15523119104 байта, 30318592 сектора

Единици: сектори от 1 * 512 = 512 байта Размер на сектора (логически/физически): 512 байта/512 байта Размер на входа/изхода (минимален/оптимален): 512 байта/512 байта Тип на диска: dos Идентификатор на диска: 0x6ad48986 Начало на зареждане на устройството Сектор Размер Id Тип /dev /sde1 2048 29362175 29360128 14G 83 Linux /dev /sde2 29362176 30318591 956416 467M 83 Linux

Създайте файлови системи:

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

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

Настройте файловите системи:

tune2fs -c0 -i0 -m0 /dev /sde1

tune2fs -c0 -i0 -m0 /dev /sde2

Само първият дял ще бъде автоматизиран от системата при стартиране! Идеята зад дяла за възстановяване е, че WRT54G няма място да държи fdisk никъде другаде. Така че, ако има нечисто изключване и има несъответствия във файловата система, единственият начин да го поправите е да имате копие на fdisk (и необходимите libs за стартиране) на втори дял, който ще се монтира само от време на време само за четене, за да стартира fsck, ако необходими. В противен случай картата ще трябва да бъде извадена и поставена на компютър за ремонт …

3, Монтаж

Ако поставите вече разделена, форматирана карта и wrtg се зарежда правилно, най -вероятно първият дял ще се монтира автоматично:

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

Opt трябва да бъде монтиран за свързване сега:

монтиране -o свързване /mmc / /opt /

4, скрипт за инсталиране на OWRT2

Преди да започнете проверете дали defgw, dns всичко е наред.

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

sh /tmp/optware-install.sh

Ако не може да получи скрипта, това е, защото busybox wget се провали. Ще работи с wget на owrt, но искате да инсталирате owrt …

Изходът трябва да изглежда така:

Проверка на системната конфигурация …

Използване на 192.168.1.1 като шлюз по подразбиране. Използване на следния сървър (и): nameserver 192.168.1.30 Внимание: локалният сървър на имена е различен от шлюза! Проверете конфигурацията или въведете: sed -i s/192.168.*/192.168.1.1/ /tmp/resolv.conf, за да коригирате това. Инсталиране на пакет uclibc-opt_0.9.28-13_mipsel.ipk… Свързване към ipkg.nslu2-linux.org [140.211.166.82]: 80 uclibc-opt_0.9.28-12 100% | ************ ********************************* | 832 KB 00:00:00 ETA Актуализиране /opt/etc/ld.so.cache/opt/sbin/ldconfig: не може да се създаде /opt/etc/ld.so.cache~ (Няма такъв файл или директория) Инсталиране на пакет ipkg-opt_0.99.163-9_mipsel.ipk… Свързване към ipkg.nslu2-linux.org [140.211.166.82]: 80 ipkg-opt_0.99.163-9_ 100% | ************** ********************************* | 75896 00:00:00 ETA Изтегляне на https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Надуване на https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Актуализирано списък на наличните пакети в/opt/lib/ipkg/lists/optware Успешно прекратен. Инсталиране на uclibc-opt (0.9.28-12) в/opt/… Изтегляне на https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… пакет uclibc-opt предлага инсталиране на ipkg-opt Конфигуриране на uclibc-opt Актуализиране /opt/etc/ld.so.cache Успешно прекратено. Инсталиране на ipkg-opt (0.99.163-9) в/opt/… Изтегляне на https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Конфигуриране на ipkg-opt Успешно прекратено.

5, грешка по пътя:

ТРЯБВА да експортирате пътя с:

износ 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"

в противен случай ipkg няма да направи нищо!

6, Проверете ipkg:

ipkg актуализация

Трябва да се изведе:

Изтегляне на

Надуване на https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… Актуализиран списък на наличните пакети в/opt/lib/ipkg/lists/optware Успешно прекратен.

7, Инсталирайте пакети:

ipkg инсталирате bash htop mc openvpn tcpdump vim bzip2 bc e2fsprogs findutils gawk grep gzip по-малко правят ntfs-3g openssl perl php psmisc psutils

samba36 sed tar unrar unzip vnstat vsftpd wget whois zip ncftp

8, Избройте инсталираните пакети:

ipkg-opt list_installed

Изграждането на пакети на рутера не се препоръчва поради липса на ресурси. За тази цел настройте отделна среда за кръстосано компилиране на mips във Vmware/Vbox/KVM.

Необходими неща:

-64 -битова хост операционна система Debian 7 wheezy

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

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

Не губете време, за да се опитате сами да компилирате SDK, предоставеният двоичен SDK е достатъчно добър.

Създайте просто приложение helloworld

#include int main (void) {printf ("По дяволите! О, свят, защо кодът ми няма да се компилира? / n / n"); връщане 0; }

./staging_dir_mipsel/mipsel-linux-uclibc/bin/gcc -lpthread hello.c -o здравей

Ако всичко върви както трябва, сега трябва да имате изпълним mips:

здравей: ELF 32-битов LSB изпълним файл, MIPS, MIPS32 версия 1 (SYSV), динамично свързан (използва споделени библиотеки), не е отстранен

Стъпка 7: Софтуер на Arduino

Можете да изтеглите пълния изходен код по -долу. Той е сравнително прост, може да контролира 2 релета и някои RC щекери чрез 433Mhz радио. Можете лесно да го разширите, например: добавете още превключватели за дистанционно управление.

Стъпка 8: Затваряне и ToDo списък

Затваряне и ToDo списък
Затваряне и ToDo списък

WRT54G е отличен хардуер, така че цялата работа, инвестирана в този проект, си заслужава, освен че щитът NLD Wrtg може да се използва с бъдещи хардуерни версии.

Тъй като консумацията на енергия на WRTG е по -ниска от Raspberry PIs, захранването на рутера със слънчева енергия също може да бъде добър ъпгрейд и с Arduino можем да следим всеки детайл от процеса на слънчево зареждане (напрежение на батерията, напрежение на панела, консумация). По -късно ще продължа серията WRTG със соларни хакове.

Намирането на начин за програмиране на Arduino директно от WRTG би било чудесно (това ще изисква метод за нулиране на Arduino).

Хората с 3D, Makerbot умения са повече от добре дошли да проектират персонализирана покривна плоча (включваща конекторите на моята платка) за предната част или да препроектират цялата пластмасова предна част на рутера.

АКТУАЛИЗИРАНЕ: За да отпразнуваме архитектурата на MIPS с отворен код, актуализирах урока с това как да кръстосвам прости C програми към WRTG.

Да живее MIPS!:)

тип система: Broadcom BCM5352 чип rev 0процесор: 0 процесорен модел: BCM3302 V0.8 BogoMIPS: 199.47 инструкция за изчакване: няма микросекундни таймери: да tlb_entries: 32 допълнителен вектор на прекъсване: няма хардуерна наблюдателна точка: няма VCED изключения: няма налични VCEI изключения: няма

Препоръчано: