OpenWRT на TP-LINK TL-WR340GD

OpenWRT Router TP-LINK TL-WR340GD Atheros AR2317 88E6060, AR8236, ADM6996 Flash RAM

 

Очень дешевый и слабый роутер. Поставить на него OpenWRT — вопрос скорее академический, так как если нужен результат — то лучше сразу пойти в магазин за нормальным аппаратом.

 

Основные проблемы:

  1. Нехватка RAM — менять
  2. Нехватка Flash — менять
  3. Загрузчик VxWorks — менять на загрузчик Linux
  4. Необычный встроенный свич — править драйвер

Теперь по-порядку.

RAM

Купить в магазине микросхему памяти довольно… невозможно) Нужно искать донора. Я перебрал все найденные дома планки памяти (в основном SDRAM) в поисках на них микросхем достаточного объема и подходящего корпуса. Почти все эти микросхемы были NONAME и документацию на них было невозможно найти.  Просто ставил и пробовал запускать. Выпаивал используя сплав Вуда и фен.

tl-wr340gd-1

И, в конце концов, ничего не подошло, а я забыл это дело. Но Вы бы этого не читали, если бы не чудо). Делая очередную уборку, я наткнулся на старенький ноутбук P1, собрался его выбросить, вытащил HDD на 20Гб и модуль памяти… Посмотрел на него… А почему бы и нет!? И правда — микросхема оказалась в 4 раза (вроде) более емкой, а так же полностью совместима.

tl-wr340gd-2

С планки я использовал только одну микросхему. Остальные (по 32 Мбайта) лежат без дела. Если Вам нужно — пишите.

Flash

С ROM все обстоит абсолютно иначе. Микросхему можно найти легко я за копейки (W25Q64FVSSIG 8МБайт). А прошить недорогим китайским программатором микросхем 25 серии. (Найти подходящую прошивку для ATunvPRG так и не удалось)

Проблема подкралась совершенно с неожиданной стороны. Сначала я долго и упорно разбирался в структуре прошивки: где хранится загрузчик, где ядро, где roots, где таблица разделов, настройки и MAC адреса. Потом экспериментировал с загрузчиками и ядром. Все это сопровождалось множеством перепрошивок микросхемы, так как чтобы прошивать это добро через сеть, нужно чтобы эта сеть хотя бы работала. А она не работала.

Сначала микросхема выпаивалась, прижималась прищепкой к программатору и обратно запаивалась.

tl-wr340gd-5

 

Мне это быстро надоело и был придумал следующий трюк трюк:

tl-wr340gd-3

Было взято два сокета DIP-8 с зажимами типа цанга. На микросхему напаяны кусочки медной проволоки от витой пары, полученный паук зафиксирован в первой цанге. Таким образом из SO-8 микросхемы получилась DIP-8. Родная флешка из модема была выпаяна, а на ее место припаян кусочек IDE шлейфа, вторые концы которого припаяны к еще одному сокету. Так можно было подключить к роутеру флешку в DIP корпусе.

Таким образом, флешка свободно вставлялась в ZIF-сокет программатора, перепрошивалась, и вставлялась обратно в модем безо всякой пайки.

Загрузчик

Установленный в роутере процессор довольно распространенный, а значит загрузчик найти под него не составит труда. Сходу был найден MicroRedBoot. И он даже грузил ядро, но не работал режим recovery. И может быть я с этим смирился, или даже доработал. Но на мое счастье, на китайском форуме, я наткнулся на допиленный U-Boot, который поддерживает и процессор, и память, и Ethernet PHY, и Switch (AR2317 + 88E6060, AR8236, ADM6996). Главный бонус — рабочий recovery. А это значит, что перепрошивать роутер можно через веб-интерфейс, а значит пора запаивать флешку.

Сеть

И вот уже загрузился OpenWRT. Но сеть не работает. Много времени было потрачено на то, чтобы понять причину. Нужно было включить CPU порт на свиче и задать режим его работы. В конце-концов все получилось, и был доработан модуль ядра (драйвер) ar8216: ar8216.c  ar8216.h

Послесловие

Чтобы можно было взаимодействовать с роутером в процессе реанимации, нужен UART. Было запаяно две перемычки и разъем. На компьютере использовал CP2102.

wl-wr340gd-v3_1-uart

 

OpenWRT позволяет раскрыть все возможности роутера, но и нагрузка на процессор возрастает. Ему требуется радиатор.

tl-wr340gd-4

Конечный вид доработанного роутера. Был взят алюминиевый радиатор от процессора времен первых пентиумов и обрезан до нужного размера. Закреплен по хитрой технологии: спиртом очищаем и обезжириваем чип и радиатор, на два угла по диагонали чипа капаем микрокаплю суперклея, в середину каплю КПТ-8. Сильно прижимаем радиатор и некоторое время держим. Для того, чтобы отклеить, нельзя ни в коем случае отдирать. Лучше хорошенько разогреть (но не больше градусов 200, чтобы не отпаять чип) и попытаться радиатор «свинтить». Но лучше ставить так, чтобы не пришлось снимать.

Все мои наработки. Или Архивом

Соответствующая тема на форуме OpenWRT.

Оставите комментарий ?

14 Комментарии。

  1. Жесть
    уважаю

  2. Супер! Я с вашими наработками оживил мертвый TL-WR340G. Но поскольку я еще неопытен в этой сфере, немогу подключится к роутеру через SSH, неподходит ни один из стандартных паролей 🙁 Можите помочь?

  3. Возможно я что-то не так сделал, но для проверки на TL-WR340GD V3 увеличил память RAM/ROM соответственно до 32Мб/8Мб и залил дамп wr340g_32ram_8flash_uboot_bb_build6 без правки МАС. Роутер очень долго грузится, вход в веб-морду медленный, до минуты, смена страниц медленная, РРРоЕ устанавливает через раз, отваливается, максимальные скорости к прову и от него не выше 13-14 Мбит/с.

  4. Кроме этого все остальное стало быть норм и так и должно было работать? Смена страниц 5-10 сек тоже норм?

  5. Приветствую ! Здорово, но хотелось бы подробнее 🙄
    Поставил u-boot нашел на форуме openwrt, железо тоже AR2317-AR8216. Сеть вроде цепляет — но передать файлы по tftp не получается. Нужно настраивать u-boot через pll ?

    • А чем не устроил U-Boot из статьи? Там все работает из коробки. Только не помню чтобы заморачивался с tftp, через веб-интерфейс все нормально прошилось.

  6. Да спасибо, попробую ваши наработки.
    Скорее всего дело в том, что у вас чип ar8236, а у меня ar8216
    Я здесь «извращался» 😆 : http://cyber-place.ru/showthread.php?p=37431#post37431
    На вас набрел в процессе, роутер запитывал от лабораторного блока питания.
    На родной флешке (redboot) потребление 0,18-0,21A и на этом u-boot-е 0,15А.
    Внешне все работает, комп роутер подключает, но пинг на 192.168.1.1 без ответа. Веб интерфейс недоступен, цепляюсь только по uart-y.
    Похоже надо править u-boot под свое железо ar8216 😥
    Знать бы как 🙄

      • Да смотрел, там чипы свежие перечислены.
        Процедура компиляции в принципе описана.
        Меня заинтересовали ваши «пачти» — файлы ar8216.c и ar8216.h, они как раз 8216 — я так понимаю они для сборки — ореnwrt.
        Может нужно внести подобные правки при компиляции u-boot-а ?
        Как это сделать , можете посоветовать ?
        Openwrt — более менее освоил, с загрузчиками только начал разбираться 🙄

        • Я тоже когда начинал эту работу думал, что возьму все готовое да и все. А закончилось правкой исходников ядра.
          Мои ar8216 — это как раз драйверы ядра Linux которые я доработал для поддержки 8236. И когда я этим занимался, подходящих исходников u-boot доступно не было.
          Мой совет: забить на загрузчик, взять любой который запуститься, собрать прошивку и когда OpenWRT стартанет — в нем сеть уже должна работать.

  7. Извините 2 верхних ссылки не туда вставил 😳

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

* Copy This Password *

* Type Or Paste Password Here *

23 507 Spam Comments Blocked so far by Spam Free Wordpress