После получения очередных двух роутеров из Китая незамедлительно прошил их сравнительно старой прошивкой openwrt (которую ранее любезно для одной из прошлых ревизий собрал artko), хотя ведь знаю, что опасно это делать, не почитав свежачок на сайте openwrt. В итоге, понадеявшись на авось, получил два кирпича.
И понеслось красноглазие!! Все материалы для восстановления взяты с англоязычного сайта openwrt и отсюда грамотная полная инструкция. Поэтому как такового красноглазия минимум.
Проблема в том, что при загрузке отключается езернет-модуль из-за хардварных изменений после версии 1.7 (хотя у меня указана на наклейке и на стикере внутри версия 1.6). Так как wi-fi по умолчанию выключен, мы получаем кирпич, как он есть (но внутри он работает, как ни в чём не бывало).
Для наглядности открытия плоской отвёрткой. Светодиод (который справа близ езернет-разъёма) на Рисунке 1 справа сверху. Недалеко от светодиода по правой стороне сверху защёлка двойная. По нижней (справа) и левой (снизу) сторонам аналогичные защёлки. Самая глубокая защёлка слева сверху, поэтому я бы с неё не начинал (но советовать не стану). Поддевать аккуратно, можно сломать направляющие зубья рёбер жёсткости, что я и сделал в паре мест — особо не влияет ни на что.
Теперь консоль: около платы памяти (если не вру) справа снизу есть монтажные поверхности с обозначениями TP_IN и TP_OUT, это Rx и Tx соответственно (Рисунок 1). Землю удобно взять с нижней стороны либо с тройной монтажной площадки по центру слева, либо с нижней ноги усб-мама разъёма, как сделал я (всё прозвонить и проверить).
В качестве разъёма можно использовать хоть усб-маму, но мне удобнее было закрепить имеющийся аудиоджек-маму на резьбовом креплении. Так как места внутри мало, то на смолу сажать в случае необходимости повторного открытия разъём смысла нет (плату потом не вытащить), поэтому, желательно, чтобы всё было разборным. Соединяем аудиоджек-маму и -папу и прозваниваем контакты, чтобы потом не лопухнуться.
В качестве serial -> ttl на 3,3В использовал старый кабель для программирования siemens me45 и тому подобных (насколько вычитал, там именно такой уровень). Разъём открывается и там ровно три проводка. Паяем аудиоджек-папа земля к земле, Rx к Rx, Tx к Tx, так как разворот приёма и выдачи уже сделан под телефон. Всё соединения прозвонить, сопротивления должны быть близко к нулевым, либо пайка хреновая. Все контакты и провода заранее залудить, и лишь потом припаивать друг к другу (смазываем флюсом, прижимаем коротко припой паяльником, чтобы припой лёг на контактную площадку/провод). Время пайки желательно минимизировать. Если опыт нулевой — лучше всего заранее «потренироваться на… кошках». Разъём ставил над памятью, удалив два ребра жёсткости, да проковыряв отверстие.
При подключении сериала открываем миником или любой иной терминал. Я это делал под ubuntu на работе
$ sudo minicom -s
выставить порт ttyS0 (для реального COM1), 115200 8-IN-1, отключать ли аппаратное исправление ошибок — не уверен. Иногда отключал, иногда забывал. Теперь выйти в основное окно миникома. Появится уведомление об инициализации модема. Это не нужно для взаимодействия с роутером. Проще это сделать до включения роутера. Включаем питание роутера. У меня бежали нормальные символы с испорченными (несовпадение скорости порта?). В этот момент быстро надо набрать «tpl» и <Enter>. Диод выключится, появится строка «hornet>». У меня в этом режиме всегда испорченные символы, но это не влияет особо на работоспособность. При дальнейшей загрузке (уже после режима этого) после какого-то этапа ошибок не будет.
В общем, если символы бегут в консоли, то уже всё спаяно верно. Если не успели ввести символы режима, то reboot и снова быстро tpl в начале загрузки.
Теперь нужен сервер tftp. Я использовал atftpd. После установки я изменял /etc/default/atftpd — вырубал использование инет.д, изменял незначительно настройки (можно путь к папке указать в опциях, создать папку с правами nobody, пустой группой, открытой на запись всем — последнее требование, возможно, не обязательно — в данном случае нужно будет только читать), кинул в корень папки atftpd прошивку новую для нового загрузчика и хардвари, запустил сервер (инструкция легко гуглится). По логам у меня сервер выдавал ошибку ип-адреса, поэтому пришлось там же в опциях забиндить адрес жёстко 192.168.1.100 (который используется жёстко процедурой восстановления роутера) — это должен быть адрес компьютера вручную, роутер себе берёт 1.111 самостоятельно.
Скопировать по одной строке в миником (без хорнет):
hornet> tftpboot 0x81000000 openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin hornet> erase 0x9f020000 +0x3c0000 hornet> cp.b 0x81000000 0x9f020000 0x3c0000 hornet> bootm 9f020000
После каждой команды должно бежать немного всякого барахла. Если после первой команды идёт циклично: Loading: T T T — не включен atftpd, либо закрыт фаером, либо ип-адрес у компьютера не 1.100. Исправиться можно не прерывая процедуру загрузки — подхватит автоматом.
После последней команды наблюдаем перезагрузку роутера и проверяем доступность веб-лица по адресу http://192.168.1.1/
Отказываться от шаманства с тфтп-сервером в пользу прошивки через включение с консоли вайфая не рекомендуется категорически. Для виндоза поди и шаманства нет http://tftpd32.jounin.net/ с этим сервером.
Спасибо artko за собранные прошивки (сам всё никак инструментарий не настрою), советы по поводу serial->ttl от старых мобилок.
За рваный стиль изложения прошу прощения, постараюсь дополнить-причесать статью по мере возможности.
Hello! Enter нажимать не нужно. Если в терминале вообще никаких данных, независимо набирали tpl или нет, то что-то не так, данные терминал не получает.
Картинок уже нема