Очень дешевый и слабый роутер. Поставить на него OpenWRT — вопрос скорее академический, так как если нужен результат — то лучше сразу пойти в магазин за нормальным аппаратом.
Основные проблемы:
- Нехватка RAM — менять
- Нехватка Flash — менять
- Загрузчик VxWorks — менять на загрузчик Linux
- Необычный встроенный свич — править драйвер
Теперь по-порядку.
RAM
Купить в магазине микросхему памяти довольно… невозможно) Нужно искать донора. Я перебрал все найденные дома планки памяти (в основном SDRAM) в поисках на них микросхем достаточного объема и подходящего корпуса. Почти все эти микросхемы были NONAME и документацию на них было невозможно найти. Просто ставил и пробовал запускать. Выпаивал используя сплав Вуда и фен.
И, в конце концов, ничего не подошло, а я забыл это дело. Но Вы бы этого не читали, если бы не чудо). Делая очередную уборку, я наткнулся на старенький ноутбук P1, собрался его выбросить, вытащил HDD на 20Гб и модуль памяти… Посмотрел на него… А почему бы и нет!? И правда — микросхема оказалась в 4 раза (вроде) более емкой, а так же полностью совместима.
С планки я использовал только одну микросхему. Остальные (по 32 Мбайта) лежат без дела. Если Вам нужно — пишите.
Flash
С ROM все обстоит абсолютно иначе. Микросхему можно найти легко я за копейки (W25Q64FVSSIG 8МБайт). А прошить недорогим китайским программатором микросхем 25 серии. (Найти подходящую прошивку для ATunvPRG так и не удалось)
Проблема подкралась совершенно с неожиданной стороны. Сначала я долго и упорно разбирался в структуре прошивки: где хранится загрузчик, где ядро, где roots, где таблица разделов, настройки и MAC адреса. Потом экспериментировал с загрузчиками и ядром. Все это сопровождалось множеством перепрошивок микросхемы, так как чтобы прошивать это добро через сеть, нужно чтобы эта сеть хотя бы работала. А она не работала.
Сначала микросхема выпаивалась, прижималась прищепкой к программатору и обратно запаивалась.
Мне это быстро надоело и был придумал следующий трюк трюк:
Было взято два сокета 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.
OpenWRT позволяет раскрыть все возможности роутера, но и нагрузка на процессор возрастает. Ему требуется радиатор.
Конечный вид доработанного роутера. Был взят алюминиевый радиатор от процессора времен первых пентиумов и обрезан до нужного размера. Закреплен по хитрой технологии: спиртом очищаем и обезжириваем чип и радиатор, на два угла по диагонали чипа капаем микрокаплю суперклея, в середину каплю КПТ-8. Сильно прижимаем радиатор и некоторое время держим. Для того, чтобы отклеить, нельзя ни в коем случае отдирать. Лучше хорошенько разогреть (но не больше градусов 200, чтобы не отпаять чип) и попытаться радиатор «свинтить». Но лучше ставить так, чтобы не пришлось снимать.
Все мои наработки. Или Архивом
Жесть
уважаю
Супер! Я с вашими наработками оживил мертвый TL-WR340G. Но поскольку я еще неопытен в этой сфере, немогу подключится к роутеру через SSH, неподходит ни один из стандартных паролей 🙁 Можите помочь?
Чтобы заработал SSH нужно поменять (ввести) пароль администратора. Это описано здесь: https://wiki.openwrt.org/ru/doc/howto/firstlogin
Возможно я что-то не так сделал, но для проверки на TL-WR340GD V3 увеличил память RAM/ROM соответственно до 32Мб/8Мб и залил дамп wr340g_32ram_8flash_uboot_bb_build6 без правки МАС. Роутер очень долго грузится, вход в веб-морду медленный, до минуты, смена страниц медленная, РРРоЕ устанавливает через раз, отваливается, максимальные скорости к прову и от него не выше 13-14 Мбит/с.
Медленный — это смотря с чем сравнивать. Процессор у устройства действительно слабенький.
Кроме этого все остальное стало быть норм и так и должно было работать? Смена страниц 5-10 сек тоже норм?
Смотрите загрузку CPU и RAM через веб-интерфейс, командами top и free — все сразу станет ясно.
Приветствую ! Здорово, но хотелось бы подробнее 🙄
Поставил u-boot нашел на форуме openwrt, железо тоже AR2317-AR8216. Сеть вроде цепляет — но передать файлы по tftp не получается. Нужно настраивать u-boot через pll ?
А чем не устроил U-Boot из статьи? Там все работает из коробки. Только не помню чтобы заморачивался с tftp, через веб-интерфейс все нормально прошилось.
Да спасибо, попробую ваши наработки.
Скорее всего дело в том, что у вас чип 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 😥
Знать бы как 🙄
Вот тут смотрели? https://github.com/pepe2k/u-boot_mod
Да смотрел, там чипы свежие перечислены.
Процедура компиляции в принципе описана.
Меня заинтересовали ваши «пачти» — файлы ar8216.c и ar8216.h, они как раз 8216 — я так понимаю они для сборки — ореnwrt.
Может нужно внести подобные правки при компиляции u-boot-а ?
Как это сделать , можете посоветовать ?
Openwrt — более менее освоил, с загрузчиками только начал разбираться 🙄
Я тоже когда начинал эту работу думал, что возьму все готовое да и все. А закончилось правкой исходников ядра.
Мои ar8216 — это как раз драйверы ядра Linux которые я доработал для поддержки 8236. И когда я этим занимался, подходящих исходников u-boot доступно не было.
Мой совет: забить на загрузчик, взять любой который запуститься, собрать прошивку и когда OpenWRT стартанет — в нем сеть уже должна работать.
Извините 2 верхних ссылки не туда вставил 😳