Прочитав несколько обзоров уважаемого
lolipop открыл для себе прошивку OpenWrt. Начал гуглить и узнал сколько всяких интересных проектов можно сделать на базе этой прошивки и роутера с USB разъемом.
В качестве примера увеличение памяти роутера TP-Link на примере TL-MR3220v2 используя память Winbond W25Q128.
Тем кому интересно прошу под кат.
Для начала захотел попробовать торрент качалку на внешний HDD который можно в любой момент отключить. Сразу же споткнулся о маленькое колличество памяти. Поиски решения привели к 2-м вариантам.
1)Покупка и использование USB хаба кому интересно
здесь инструкция.
2)Увеличение установленной в роутере памяти.
Я решил идти по 2-му пути т.к. программатор есть, паяльная станция тоже.
Для этого на Ali была заказана память. Лот из 5 микросхем Winbond W25Q128. Ссылка на продавца в начале обзора. Отправил очень быстро. Дошло меньше чем за 2 недели.
Для любителей треков
Микросхемы пришли в стандартном желтом пакетике. Внутри еще один пакет в котором лежат все 5 микросхем обмотанный в дополнительный слой пупырчатого полиэтилена.
Микросхемы новые, следов пайки нет. На этом непосредственно обзор закончен и дальше будет практическое применение.
Так же будет использован программатор на CH431A на который было уже несколько обзоров. Заказан был
здесь
И панелька для 25 серии. Заказана была
здесь
Все что вы делаете дальше, вы делаете на свой страх и риск. Не делайте шаг который вы не понимаете.
Прошивка в OpenWrt.
Еще до того как память пришла роутер был уже прошит на OpenWrt. Ничего сложного в этом нет, скачиваем прошивку для роутера с официального сервера openwrt
downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/
нас интересует файл openwrt-ar71xx-generic-tl-mr3220-v2-squashfs-
factory.bin
Обязательно со словом
factory. Оно означает что файл предназначен для перехода с заводской прошивки. Выбираем в Web интерфейсе обновление ПО. Роутер перезагружается после чего мы получаем рабочий роутер на OpenWrt.
Прошивка.
Прошивка состоит из 3-х достаточно больших частей.
1)Загрузчик
2)Непосредственно прошивка
3)Таблица калибровок радиомодуля Wi-Fi (art)
1.Загрузчик
Он нам нужен не простой а с поддержкой 16 мегабайтных флешек. В качестве загрузчика я использую U-Boot от pepe2k.
Много информации по загрузчику есть на
странице проекта
Непосредственно
здесь можно скачать загрузчик под определенные модели.
Здесь список памяти поддерживаемой загрузчиком U-Boot от pepe2k.
Под загрузчик у роутеров TP-Link отводится диаппазон адресов 0x00000000-0x00020000.
Это первые 128кб флеш памяти. При этом размер скачиваемого загрузчика 64кб. Это нормально, я в дальнейшем объясню что с этим делать.
2.Прошивка
Здесь самая я столкнулся с самой большой проблемой. Нашел
инструкцию по которой следовало что для того чтобы прошивка увидела всю память необходимо пересобирать ее под себя. Компьютера с линуксом не имею поэтому я продолжил поиск и наткнулся на следующее
объявление (не реклама).
В которой нашел
ссылку на пачку уже пропатченных прошивок. Там некоторое количество моделей среди которых был необходимый мне файл.
3.Таблица калибровок радиомодуля Wi-Fi (art)
Про таблицу и необходимость ее считывать и записывать отдельно хорошо написано по
ссылке
Там предлагается считывать таблицу в оперативную память и потом как-то скачивать backup оттуда например посредством SCP, только не
этого а
этого. Я буду делать немного по своему с использованием программатора.
Собираем прошивку
Итак у нас уже есть файл загрузчика под вашу модель роутера + прошивка пропатченная под 16-мегабайтную память. И желательно дамп файл прошивки openwrt слитый с роутера.
Для непосредственной сборки нам нужен любой HEX редактор. Я буду использовать HEX WorkShop.
Открываем в HEX редакторе файл прошивки. Переходим в конец файла и видим что он займет
адреса только до 0x00F80000, для справки у 16 мегабайтной флешки 0x01000000 адресов. Значит нам нужно заполнить 80000 адресов.
Опять же пользуясь
ссылкой понятно что нам нужно перед прошивкой добавить 0x020000 адресов под загрузчик.
Делаем это командой «Edit-Insert»
Обратите внимание. Необходимо заполнить добавляемое пространство символами FF как это показано на картинке.
После этого вставляем загрузчик в диапазон адресов 0x000000-0x010000. Я для этого выделяю адреса и вставляю командой «File-Insert File».
После этого необходимо вписать собственные Mac адрес, модель и pin. Далее цитата:
MAC адрес во всех роутерах начинается с адреса 0х1FC00. Под MAC адрес отводится, соотвественно, 6 байт.
Версия роутера начинается с адреса 0х1FD00. Запись роутера 3420 второй ревизии выглядит так: 3420000200000001
PIN начинается с адреса 0х1FE00. Длина 8 байт. PIN, например, 80751205 (тот, что вы видите на шильдике роутера) в файле прошивке будет выглядеть как 3830373531323035.
После этих действий мы заполним 0x00FA0000 от всей памяти. остается заполнить еще 0x60000 адресов. Для этого мы открываем дамп нашей прошивки и переходим на адрес 0x003A0000 и копируем все значения до 0x00400000 после чего вставляем в конец прошивки которую мы собираем. Получается как на скрине.
.
После этого остается самое простое. Сохраняем файл, прошиваем флешку и запаиваем в роутер. Включаем роутер, заходим на 192.168.1.1 и наслаждаемся.
Вот и все. Спрашивайте, чем смогу помогу.
P.S. спасибо всем чью информацию я так или иначе использовал в обзоре.
UPD1: тов.
lv426 поправил что по моей ссылке лежат оригинальные U-Boot`ы
Скомпиленные U-Boot`ы от pepe2k:
www.tech-blog.pl/pliki/u-boot_for_tp-link_AR9331_by_pepe2k.tar.gz
а вообще мне не нравятся тп-линки эти из-за чипа, он не умеет бриджевать wifi и lan.
breed, кстати, если интересно, поддерживает и 3020 тоже. использовав его можно было себе сильно упростить жизнь в плане борьбы с art :)
Я выбрал u-boot от pepe2k потому что довольно большое сообщество. Да и на Wiki openwrt много ссылок именно на него.
TP-Link выбрал из-за того что после работы в сервисе у меня есть некоторое их колличество для опытов.
Никакой реакции на reset. Порты не работают. Тот, кому давал роутер погонять, говорит ничего с ним не делал и даже не пользовался. Дайте, пожалуйста, совет, как его чинить?
Может, если там выпаивать память придется или менять кондеры, то можно к вам по поводу ремонта обратиться?
при подключении к UART роутера сразу же (без включения питания роутера) на роутере загорается та же комбинация лампочек, горят непрерывно. В putty ничего кроме зеленого квадрата… нажимал reset, менял местами RXD и TXD — ничего… выбросить на помойку?
brctl show
brctl addif br0 eth1.3
(Возможно, предварительно надо настроить коммутатор swconfig' ом).
Ни в жизнь не поверю…
По ссылке нет ни слова про «9331» и «not permitted»
Пробовали ли это?
# iw dev set 4addr on
# brctl addif # brctl show
И далее:
askubuntu.com/questions/155041/bridging-loosing-wlan-network-connection-with-4addr-on-option-why
И ещё. Вот у человека TP-LINK741ND v4.25, в dd-wrt всё работает:
www.dd-wrt.com/phpBB2/viewtopic.php?t=257901&sid=ec9f1721ce71b215c1d0f6c89f69da27
Таким образом, не «на атеросе 9331 это не работает», а «не работает в OpenWRT trunk <такой-то>».
еще раз повторяю, на ралинке/медиатеке у меня работает бридж без шаманств, на атеросе — не работает. то же самое подтверждает вики openwrt. я не понимаю, о чем тут еще спорить?
Как Вы своей категоричностью достали… Не спорьте сами, раз «о чём тут ещё спорить». Не работает у Вас — и ладно. C WDS всё работает, у кого «перестаёт работать» — не умеют настраивать новую сеть. В DD-WRT всё работает.
А вот 3020 никак не могу настроить по вашим советам на работу в режиме бридж клиент с 2-мя LAN… Перепробовал разные прошивки — кинетик, OpenWRT. Всегда одно и то же — вроде как подключается к сети, но уже или вообще ничего вразумительного не говорит (OpenWRT) и просто не работает, или просто не даёт сохранить с одной подсетью — требует чтобы отличались…
Просто у меня 2 IP-камеры и приходится к TL-WR702N подключать ещё и свич, что крайне неудобно. Для этих целей и был приобретён 3020, но увы, с настройкой я не сумел пока справиться
А ОЗУ не пробовали увеличивать?
Точнее брал для ноута, но с одной из планок ни один бук не стартовал. Вот она и пошла на донорство. Тоже сначала побаивался, но оказалось всё элементарно. Старую память выпаиваю сплавом вуда или розе. А затем тонкое жало и вперёд.
Из 8 микросхем на планке памяти две оказались косячными, 5 запаял куда ни попадя (dlink 615e4, asus rt-n10u, dlink 320a1, tp-link 741, tp-link 340). Одну оставил для пока ещё не купленного mikrotik hap lite. :)
Или может закажу отсюда.
Списка совместимой памяти нет нигде?
Лучше сразу взять что-то получше, благо, есть из чего выбирать.
Разумеется, это все моё IMHO…
Но большинстве случаев это делается не из-за реальной необходимости, а, как говорится, just for fun.
А вот по поводу скажем использования того же качания торрент роутером… дело гиблое и шибко не удобное. 4г канал конечно раскроет, но вот кабельное подключение нормальное уже ни как не потянет производительность, да уж с тем более если надо скажем одновременно раздавать 100 торрентов по хотя бы 2-4 гига каждая…
Иначе соглашусь лишь с фаном.
вот инструкция, хз насколько рабочая, USB звуковухи нету.
Базируется на опенврт. Правда подзаточена под модемы, но ничто не мешает доставить нужные пакеты под свои нужды.
Пробовал и такую: ofmodemsandmen.com/downloads.html
Тоже прекрасно с моими свистками фурычила.
Я паял на 380с, паяльная станция Lukey 702.
Здесь парень обошелся без программатора. Он подключил флешки паралельно
по такой схеме
но мне кажется это в разы геморойней.
В любом случае спасибо за обзор — всегда интересно прочитать что-то на тему роутеров.
Обзора тоже не увидел, и процесса допилинга тоже. Видимо очень хотелось рассказать — помоему стоило чуть обождать и сделать полноценный обзор.
За два года ни одна флешка не сдохла, может вы не те флешки покупаете?
Роутер спокойно грузится без флешки, только без доп. пакетов
с того что чисто на пакеты память подключенная к usb обычно не ставится. а с закачкой всякого файла + выключение света — быстро побьет fs на флешке.
Я же туда не торренты в системе с малой памятью пишу, количество перезаписей смешное. Там даже MLC будет жить долго и счастливо.
Тоже раньше баловался перепайкой флеш-памяти, но для серьезных обьемов ее в будущем не хватит все равно.
Недавно ещё и мотион запустил, фотки за пару дней храню.
Скомпиленные U-Boot`ы от pepe2k: www.tech-blog.pl/pliki/u-boot_for_tp-link_AR9331_by_pepe2k.tar.gz
github.com/pepe2k/u-boot_mod/releases/tag/2014-11-19
Заодно внутри прошивка с разблокированной записью в mtd0 (не все желают связываться с программатором или паять консоль).
Так же в списке совместимых S25FL127S которых на Ali я не нашел.
А не, всё нормально, отбой…
А ошибки — нет, не «наше всё».
Советская школа не прошла мимо меня — «хорошо» по «Тотальному диктанту»…
Пока я на ошибки вычитывал!
Или может это сделать прошивкой опенВрт?
Но, в отличие от устройств на OpenWRT не может работать как NAS, быть принт-сервером, качать торренты, варить кофе и т.д. чего роутеру и не надо.
Думаю поставить именно 16, чтоб потом попробовать перешить в mikrotik hap lite, когда в последнем починят open vpn