понедельник, 8 мая 2017 г.

О том, как удалось восстановить работоспособность роутера TP-Link Archer C50 v1 после неудачной прошивки через TFTP сервер.
После "убийства" U-boot роутер стал полностью неработоспособным. Единственный путь, до которого догадался, прошить flash модуль памяти напрямую.
Вскрываю роутер и обнаруживаю такую картину:
Память имеет корпус 8-PIN SOP. Маркировка "25L6433F" производства MXIC MX.
Далее поиски datasheet. Объем: 64Mb. Flash память имеет интерфейс SPI.
В поисках программно-аппаратных решений прошивки flash через SPI наткнулся на замечательный проект flashrom.
flashrom поддерживает множество программаторов, интерфейсов, производителей и чипов памяти. В перечне поддерживаемых чипов нашел самый ближайший по маркировке:
MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E (8192 - SPI) (поддержка серии чипов). Шанс удачной прошивки небольшой, но есть.
Из всех вариантов поддерживаемых программаторов мне наиболее подошел одноплатный компьютер Raspberry Pi. У меня есть RPI 2.
Установка и настройка flashrom на RPI 2 согласно инструкции с сайта github.com
Подвязываю к каждой ноге flash памяти тоненький проводник и соединяю с пинами на RPI 2.
Пришлось пару часов дергать провода, чтобы программа обнаружила flash.
Прошивка оригинальной прошивки от производителя, прошивки OpenWRT ничего не дали, роутер не оживал.
Умозаключениями пришел к тому, что нужно прошивать дамп с работающего такого же роутера. На польском форуме такой нашелся. Прошиваю дампом:
Процесс довольно длительный, около 10 минут. По окончании процесса получаем роутер с польской пропиской (MAC адрес, пресеты Wi-Fi и может что-то еще).