Оглавление:
- Шаг 1. Краткий обзор серии Linksys WRT54G
- Шаг 2: Расширение функциональности
- Шаг 3: Список оборудования
- Шаг 4: проектирование оборудования
- Шаг 5: Ограничения
- Шаг 6: Программное обеспечение WRTG
- Шаг 7: программное обеспечение Arduino
- Шаг 8: завершение и список дел
Видео: NLDWRTG Плата расширения ULTIMATE WRT54G: 8 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Я модифицирую маршрутизаторы WRT54G с 2006 года, но до прошлого года у меня не было времени на разработку специальной платы. Это оборудование по-прежнему является одним из самых взламываемых Wi-Fi-маршрутизаторов на момент написания статьи и заслуживает того, чтобы его оставили в живых.
Шаг 1. Краткий обзор серии Linksys WRT54G
en.wikipedia.org/wiki/Linksys_WRT54G_serie…
На рынке существует множество различных версий, поэтому давайте посмотрим, какие из них можно изменить:
-WRT54G 2.0 / 2.1 / 2.2 -> Хотя возможны все модификации, большая старая материнская плата занимает все место в корпусе, если вы модифицируете эту серию, вам придется переместить свою схему за пределы коробки или создать полностью новый корпус (строго не стоит усилий)
-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 и уменьшенную флэш-память; несовместима с большинством прошивок сторонних производителей, хотя утилита «VxWorks killer» позволяет загружать некоторые сторонние прошивки с открытым исходным кодом в этой и будущих версиях. Linksys сделала здесь плохой поворот и по сути испортила совершенно хороший продукт. Хотя их можно изменить, пространство на маршрутизаторе настолько мало (2 МБ), что подходит только для микропрограммы DD-WRT, которая практически не может делать ничего, кроме обычных функций маршрутизации (без VPN, без smbfs / cifs, без NFS, без mmc, без ext2). Мне удалось создать ядра для этой серии и втиснуть 1–1 требуемый модуль за счет удаления других. Это НЕ стоит вашего времени и усилий, НЕ покупайте эти маршрутизаторы.
С более поздней серией WRT Linksys перешла на архитектуру ARM, например, WRT1200 AC имеет двухъядерный процессор ARM с тактовой частотой 1,3 ГГц. Однако у меня плохой опыт работы с этими маршрутизаторами, даже после того, как я опробовал несколько версий OpenWRT (теперь LEDE), маршрутизаторы могут зависать случайным образом. Я ожидаю более 300 дней безотказной работы с устройств unix.
Шаг 2: Расширение функциональности
Итак, какие хаки можно делать с этим роутером:
1. Добавьте 2x последовательных порта -> что может пригодиться, если у вас есть другие серверы в удаленном месте, и вы хотите подключиться к их BIOS через последовательную линию или другие маршрутизаторы, swtiches, которые позволяют это
2, добавьте 1 порт USB1.0 -> можно использовать для подключения принтера, внешнего жесткого диска и т. Д. (Я никогда не делал этот мод, поэтому он не будет частью написания)
3. Добавьте внешнюю SD-карту для хранения, это может увеличить небольшую флэш-память вашего маршрутизатора с 16 МБ до 16/32 /… + ГБ. У меня не было проблем с использованием SD-карт такого размера, а также с новыми прочными картами КЛАССА 10. Если вы экспериментировали с ограничениями карт для моделей WRTG, оставьте комментарий ниже.
4, добавьте arduino для управления вашим домом, реле, rcswitches
Добавление Arduino, по сути, открывает неограниченное количество опций: управление роботом, управление инфракрасными устройствами в поле зрения (телевизоры, видеомагнитофоны, DVD, проекторы, кондиционер), подключение множества устройств к дешевым беспроводным коммутаторам 433Mhz, связь с другими arduinos, raspis, добавление Xbee и т. д. и т. д.
Хотя все это можно сделать с помощью Raspberry PI + Arduino и расширений, я считаю маршрутизатор WRT54G более надежным, чем raspis. У меня есть эти маршрутизаторы в аналогичных конфигурациях с более чем 1 годом (!) Безотказной работы, я не могу сказать то же самое о raspis, где мое максимальное время безотказной работы было около 240 дней на raspi 1, а затем SDcard отказались от системы, хотя C Управляющий код Arduino был загружен в память, поэтому мне не пришлось торопиться с заменой, так как управляющий узел по-прежнему был полностью функциональным:))
Шаг 3: Список оборудования
Я прилагаю макет платы как в формате SVG, так и в формате EasyEda. Если вы хотите построить проект, вам потребуются следующие компоненты: 1x регулятор напряжения LM7805
2x крышки для vreg 1 мкФ 10 мкФ (10 электролитических конденсаторов 25 В 35 В 50 В 1 мкФ ~ 1000 мкФ, различное значение и напряжение)
1x 4-контактный кабель от SDcar к плате (10Pcs Jumper Wire 2/3/4/5/6 / 7Pin Female to Female Dupont Cable 20cm for Arduino)
2x DIP051A7212D герконовых реле
1x штекерный разъем RS232 (20 шт., 9-контактный разъем D-Sub DB9, штекерный прямоугольный разъем для печатной платы WT7n)
1x MAX 233 (10шт Max233 Max233cpp Rs232 RS-232 Драйвер / приемники Ic New X)
1x 10-контактный соединительный кабель (5 шт., Шаг 2 мм, 2x5 контактов, 10 контактов, 10 проводов, IDC, плоский ленточный кабель, длина 10 см)
1x 10-контактное гнездо (20шт. 2,54 мм 2x5-контактный 10-контактный прямой штекер с кожухом для печатной платы, разъем IDC)
1x разъемы (10 шт., 1 * 40Pin, однорядное гнездо, 2,54 мм, ломкий разъем для разъема, от Arduino 2017)
1x SD-карта (может быть старый большой SD или новый MicroSD с конвертером, размером менее 32 ГБ они должны работать, над этим я не тестировал карты)
1x 3v5v TTL преобразователь (5x Logic Level Converter 3.3V to 5V TTL Bi-Directional for 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 радиопередатчиков и приемников 433 МГц для беспроводного пульта дистанционного управления Arduino)
Шаг 4: проектирование оборудования
-Плоские винты в основную черную пластиковую нижнюю часть платы
-MAX233 был выбран вместо MAX232, поэтому для ПК не требуются дополнительные заглушки-> Последовательный преобразователь WRTG -Все компоненты находятся в одной строке, поэтому простой прямоугольник можно вырезать спереди вместо сверления нескольких отверстий, в качестве альтернативы красивая крышка (или совершенно новый корпус WRTG) может быть разработан с помощью makerbot
-Разъем micro USB arduino promicros обращен к передней панели для внешнего программирования.
-На основе Arduino Promicro (питание arduino осуществляется от входа 12 В маршрутизатора WRT54G (через регулятор напряжения), напряжение холостого хода адаптера составляет около 16 В!)
-The Promicro имеет настоящий USB, а не общий мусор, поэтому WRTG / dev / tts / 1 может быть подключен к аппаратному UART Promicro
-Последовательная связь через / dev / tts / 0 между ПК WRTG
-RF 433 МГц приемник + передатчик (передатчик может принимать 12 В для более высокого диапазона)
-IR-передатчик и приемник могут быть добавлены на переднюю панель
-Дополнительные светодиоды могут быть добавлены на переднюю панель (указать Rx / Tx для RF, IR, индикатор связи маршрутизатора / ardu)
Я мог бы спроектировать плату с мини-понижающим преобразователем, но использовал подход линейного регулятора напряжения, поскольку он у меня был под рукой. Я обнаружил 5V в какой-то точке схемы, но при нажатии на нее маршрутизатор стал непригодным для использования (вероятно, не мог обеспечить количество тока, необходимое для платы Arduino), поэтому я пошел с дополнительным подходом vreg.
Преобразователь 3v5v TTL предназначен для обеспечения правильного преобразования напряжения (я использую модель 5V arduino promicro, которая использует 5V на своем аппаратном порте UART, поэтому требуется преобразование уровня напряжения). Однако в прошлом я модифицировал маршрутизаторы, добавляя Arduino Nanos, Micros без преобразователя, и у меня не было проблем, поскольку порт TTY WRTG устойчив к 5 В, но это не означает, что вы должны работать с ним от этого напряжения.
4n35 также был введен, чтобы избавиться от некоторого шума, исходящего от внешнего компьютера, я не использовал этот компонент в прошлом, но это также может быть связано с тем, что ноутбук, который я использовал во время тестов, был неисправен.
10-контактный соединительный кабель выполняет большинство подключений, однако вы должны убедиться, что устанавливаете розетки правильно.
Как показано на картинке у последовательного порта
Контакт 1: 3,3 В + Контакт 2: 3,3 В <= 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 МГц), его можно разогнать до 250 МГц (это не рекомендуется:)), поэтому не ждите, что на нем будет запускаться SETI @ HOME. Маршрутизатор имеет только интерфейсы со скоростью 100 Мбит / с, и в отличие от того, что вы можете найти во многих местах, это оборудование * НЕ поддерживает 802.1q VLAN *. Это всего лишь VLAN на основе простого порта, пожалуйста, не помещайте WRTG в сеть, транспортирующую VLAN, он не может этого сделать.
Одно особенно полезное приложение - использование маршрутизатора в качестве VPN-клиента для подключения к центральному местоположению. Хотя он отлично подходит для VPN-сервера, не ждите от него большой производительности.
Вот некоторые из моих результатов с WRT54GL v1.1, использующим OpenVPN в качестве клиента.
Максимальная пропускная способность туннеля: 500 кбит / с вниз, 50 кбит / с вверх
Максимальная производительность маршрутизации без VPN из WAN -> LAN 28 мбит / с
Максимальная производительность NAT (Masquerade) без VPN из WAN -> LAN 27 мбит / с
По-прежнему существует множество мест с более низкой общей пропускной способностью, чем эти (ISDN, Adsls, кабельные сети, спутники и т. Д.), Для которых этот маршрутизатор может идеально удовлетворить.
Обычно проблемы возникают из-за того, что на эти маршрутизаторы установлено слишком много беспроводных клиентов. За эти годы я видел много установок в кафе, отелях, ресторанах, где они бросали один Wi-Fi-роутер на стойку и делали это в день, ожидая, что он сможет обслуживать более 10 человек. Все, что они получают, - это совершенно непригодный для использования Wi-Fi в конце, поскольку общая теоретическая пропускная способность для этого маршрутизатора 802.11G составляет 51 Мбит / с, и это для всех, допустим, реальная составляет около 30 Мбит / с. Для 10 человек, что в лучшем случае составляет 3 Мбит / с на пользователя, чего нигде не хватает для сегодняшних приложений с высокой пропускной способностью (потоковое видео / аудио, страницы Web 2.0 с большими изображениями и т. Д.).
Как я уже говорил ранее, целью этого взлома является удаленное управление, и оно не будет использовать трафик более пары кбит / с через VPN.
Шаг 6: Программное обеспечение WRTG
Прошивка построена на лучшей версии: DD-WRT v24-sp2 (08/12/10) std-nokaid (SVN revision 14929) Существуют и другие образы, такие как VPN, которые жертвуют модулем ext2 для экономии места при сохранении mmc кернмодуль (LoL). Optware 2 - это прекращенный, но по-прежнему полезный пакет служебных программ, расширяющий базовую функциональность DD-WRT:
-Он делает базовый дистрибутив Linux из поврежденной установки busybox.
-Предоставляет bash и другие оболочки.
-Предоставляет множество божеств, таких как: htop, netcat, tcpdump, ngrep, mc
-Предоставляет такие серверные службы, как: samba, asterisk, vsftpd, jabber server
Однако программные пакеты старые, полны ошибок и уязвимостей. Публикация и изображение здесь будут такими же, как предоставление установки Window за 98 долларов, поэтому я пока не буду публиковать ничего, но опишу шаг за шагом, как настроить вашу карту OptWare 2 SDCard.
В будущем я планирую сделать новый дистрибутив Linux (SnowGlobe Linux) со свежими пакетами для этого устройства и опубликовать его.
1, JFFS2 должен быть включен, независимо от того, что на нем нет свободного места:
/ dev / mtdblock / 4 128 КБ 128 КБ 0100% / jffs
2, разбиение SDCARD. Вот хитрый трюк:
14 ГБ или все, что мы хотим иметь для первого раздела данных для ddwrt 100-500 МБ второй раздел (EXT2) для восстановления
Например:
Диск / dev / sde: 14,5 ГиБ, 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 (и необходимые библиотеки для запуска) во втором разделе, который будет только время от времени монтироваться как только для чтения для запуска fsck, если нужный. В противном случае карту нужно было бы вынуть и положить в компьютер для ремонта…
3, установка
Если вы вставите уже разбитую на разделы отформатированную карту и wrtg загрузится правильно, скорее всего, первый раздел будет автоматически смонтирован:
/ dev / mmc / disk0 / part1 13,8 ГБ 59,6 МБ 13,7 ГБ 0% / mmc
Opt должен быть привязан сейчас:
монтировать -o bind / 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 в качестве шлюза по умолчанию. Использование следующих серверов имен: сервер имен 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 КБ 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, ошибка пути:
Вы ДОЛЖНЫ экспортировать путь с помощью:
экспорт ПУТЬ = "/ 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 less make ntfs-3g openssl perl php psmisc psutils
samba36 sed tar unrar распаковать vnstat vsftpd wget whois zip ncftp
8. Список установленных пакетов:
ipkg-opt list_installed
Сборка пакетов на маршрутизаторе не рекомендуется из-за нехватки ресурсов. Для этого настройте отдельную среду кросс-компиляции mips в Vmware / Vbox / KVM.
Необходимые вещи:
-Debian 7 wheezy 64-битная хост-ОС
-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:
привет: 32-разрядный исполняемый файл LSB ELF, MIPS, MIPS32 версии 1 (SYSV), динамически скомпонованный (использует общие библиотеки), без удаления
Шаг 7: программное обеспечение Arduino
Вы можете скачать полный исходный код ниже. Это довольно просто, он может управлять 2 реле и некоторыми RC-разъемами через радио 433 МГц. Вы можете легко расширить его, например: добавить больше переключателей RC.
Шаг 8: завершение и список дел
WRT54G - отличное оборудование, поэтому вся работа, вложенная в этот проект, того стоит, кроме того, NLD Wrtg Shield может быть использован с будущими версиями оборудования.
Поскольку энергопотребление WRTG ниже, чем у Raspberry PI, питание маршрутизатора от солнечной энергии также может быть хорошим обновлением, а с Arduino мы можем отслеживать каждую деталь процесса зарядки от солнечной батареи (напряжение батареи, напряжение панели, потребление). Позже я продолжу серию WRTG с помощью солнечных хаков.
Было бы здорово найти способ запрограммировать Arduino прямо из WRTG (для этого потребуется метод сброса Arduino).
Люди, обладающие навыками работы с 3D и Makerbot, могут разработать специальную крышку (с разъемами моей платы) для передней панели или полностью переработать пластиковую переднюю часть маршрутизатора.
ОБНОВЛЕНИЕ: чтобы отметить, что архитектура MIPS стала открытым исходным кодом, я обновил руководство, в котором рассказывается, как кроссбилдировать простые программы на C в WRTG.
Да здравствует MIPS!:)
Тип системы: Broadcom BCM5352 chip rev 0 Процессор: 0 Модель процессора: BCM3302 V0.8 BogoMIPS: 199.47 инструкция ожидания: нет микросекундные таймеры: да tlb_entries: 32 дополнительный вектор прерывания: нет аппаратной точки наблюдения: нет Исключения VCED: недоступно Исключения VCEI: недоступно
Рекомендуемые:
Универсальная печатная плата расширения ввода / вывода для управления многими лампами Nixie с помощью I2C: 9 шагов (с изображениями)
Универсальная печатная плата расширителя ввода / вывода для управления многими лампами Nixie с помощью I2C: В настоящее время существует большой интерес к воплощению в жизнь старинных ламп Nixie. На рынке доступно множество комплектов часов с трубкой никси. Оказалось, что даже шла оживленная торговля старинными русскими никси-лампами. Также здесь, на Instructables, там
Самодельная плата расширения Raspberry Pi на заказ: 8 шагов
Самодельная плата расширения Raspberry Pi: с 2015 года я улучшаю этот замечательный проект, чтобы в моей машине был почти неограниченный настраиваемый медиацентр. Однажды я решил организовать там провода с помощью изготовленной на заказ самодельной печатной платы. Фотографии выше находятся на стадии широкого прототипа, так что
Плата расширения RaspberryPi 3/4 для добавления дополнительных функций в Raspberry Pi: 15 шагов (с изображениями)
Плата расширения RaspberryPi 3/4 для добавления дополнительных функций в Raspberry Pi: мы знаем, что Raspberry Pi 3/4 не поставляется со встроенным АЦП (аналого-цифровой преобразователь) и RTC (часы реального времени), поэтому я разрабатываю печатную плату, которая содержит 16 канал 12-битный АЦП, RTC, модуль 4G SIM7600, кнопки, реле, выход питания USB, выход питания 5 В, мощность 12 В
Печатная плата Тима (печатная плата): 54 шага (с изображениями)
Печатная плата Тима (Plotted Circuit Board): это процесс, который я использую для создания пользовательской печатной платы для своих проектов. Чтобы сделать это: я использую свой XY Plotter с Scribe, чтобы удалить пленку для травления, чтобы обнажить медь для травителя. . Я использую свой XY-плоттер с лазером, чтобы выжигать чернила на
Плата расширения тестера компонентов: 3 шага
Плата расширения тестера компонентов: этот проект представляет собой печатную плату платы расширения для дешевого тестера электронных компонентов. Вариантов этого устройства на Али Экспресс много. Я основал свою плату на этой: GM328A V1.11 Характеристики платы расширения: Li-PO батарея заменяет батарею 9V. 1 ячейка Li