by admin • • 0 Comments
AliExpress, Компьютерные комплектующие и перифирия, Опыт применения или доработки
Перешивка китайской версии роутера TP-Link TL-WR703N в OpenWRT
Для роутеров, кроме оригинальных (заводских) прошивок, существует множество альтернативных. Все они делаются на базе Linux и над ними работают огромные сообщества людей, которые стараются улучшить работу и расширить функционал «железа» и это у них получается (часто лучше чем у команды программистов производителя). Роутеры TP-LINK очень популярны в среде разработчиков и к ним выпускается множество прошивок: DD-WRT (уже мертвый проект, только для старых роутеров), OpenWRT (похоже тоже скоро умрет, хоть и жаль), LEDE (приемник OpenWRT), CyberWRT (заточена под «умный дом» и IoT), Gargoyle (с «человеческим» интерфейсом но далеко не для всех моделей), GoldenOrb (заточена под работу с 3G/4G) и. т.п. и это далеко не все прошивки, а только наиболее известные. Есть еще Padavan, Tomato, RouterTech, Wive-NG и много других. Не секрет, что производители роутеров в недорогих часто программным методом отключают некоторые функции, которые делают доступными в более дорогих моделях, хотя «железо»у них практически одно и то же. Альтернативные прошивки позволяют программным методом у недорогого роутера получить функционал, которыей есть у гораздо более дорогого устройства, что делает бессмысленным покупку некоторых моделей, внутри аналогичных дешевым. Кроме того, иногда альтернативные прошивки позволяют увеличить мощность Wi-Fi, которая искусственно занижена прошивкой специальных калибровочных значений Wi-Fi модулей.
Производители, конечно, об этом знают и стараются всячески помешать перешивке своих устройств альтернативными прошивками. Они берут на работу наиболее ключевых программистов из сообществ разработсиков, усложняют сами прошивки. С 2016 года производители роутеров делают загрузчики с проверкой аутентичности прошивки и кучу других уловок.
Кроме того, изделия для внутреннего рынка делаются только с китайским интерфейсом и в загрузчике заблокирована возможность перешить их прошивками с английским языком через WEB-панель. Как пример, изветсный и очень популярный роутер TP-Link TL-WR703N.
Понятно, что китайские стоят дешевле, хотя внутри они полностью идентичные. Раньше, роутеры первых версий, без проблем перешивались английской прошивкой, но начиная с версии 1.6 эта возможность была исключена.
Мне в руки попал роутер версии 1.7. WEB-панель выглядит примерно так:
Прелестно, не правда ли? И перешить в английскую версию просто так не получится.
Самый простой метод — найти дамп флэшки с английской прошивкой и перешить. Но поиски в интернет не привели меня к успеху. Дампа для TL-WR703N я не нашел. Тем не менее, есть много подтверждений, что перешивка китайской версии в OpenWRT прошла успешно. Ладно, будем шить в OpenWRT. Как это сделать есть несколько способов, я пойду самым простым путем.
Для начала я скачал образ OpenWRT для TL-WR703N с разблокированным загрузчиком и ART-разделом. Разблокированный загрузчик мне нужен для того, чтобы была возможность потом прошиваться любыми альтернативными прошивками из WEB-панели. Затем я скачал модифицированный U-BOOT от от pepe2k. В нем встроен recоvery-сервер для восстановления прошивки в аварийных случаях. Ссылки на прошивку и u-boot дам в конце статьи.
Следующий этап — распайка порта UART. Для этого придется открыть корпус. Корпус сделан так, что не сразу поймешь как его открыть. В итоге, оказалось что верхняя цветная крышка держится на трех защелках+небольшое ушко в углу (см. фото) .
Плата содержит все то же, что и любой другой роутер. Вот только LAN-порт всего один, к сожалению. Эх, еще бы один порт, который мог бы быть WANом, цены бы не было этому роутеру… А так имеет то что имеем.
Вот, нашел фото платы с расписанными контактами. Может кому пригодится.
Нам нужны контакт Rx, TX и GND.
Вот крупнее, а то лого наехало на нужную информацию. Пятачки на фото кажутся большими и с первого взгляда можно подумать что подпаяться к ним будет легко. Но это не так — они микроскопические и при подпайке к ним проводов велика вероятность их перегреть или просто оторвать. Поэтому проводки нужно брать максимально тонкие и сразу после пайки фиксировать их термоклеем, например как на этом фото из интернета, хотя можно сделать и получше.
Отлично. Дальше все стандартно. Запускаю Putty, включаю питание. В окне консоли появилось:
U-Boot 1.1.4...
Нужно дождаться слов: «Autobooting in 1 seconds» и быстро нажать на клавитуре tpl.
Загрузка должна остановиться и в консоли должно появиться:
hornet>
Если с первого раза не получилось, выключаем питание, включаем и начинаем сначала. Повторяем до тех пор пока не получится. У меня получилось с первого раза. Но я шью уже не первый роутер… и даже не десятый.
Итак, мы видим «hornet>».
Всё, мы зашли в бутлоадер.
После вводим в консоли:
printenv
Видим информацию, которую нам предоставил роутер. Нас интересуют две строчки:
ipaddr=192.168.1.111 – сетевой адрес роутера.
serverip=192.168.1.100 – адрес компьютера на котором должен быть tftp сервер и именно по этому адресу роутер будет искать прошивку.
Выcтавляем на компьютере статический IP адрес 192.168.1.100. Запускаем TFTP-сервер. Я использовал TFTP32. Можно любой другой, это не имеет особого значения. Переименовываю скачанную прошивку в firmware.bin и кладу ее в папку TFTP-сервера.
В консоли ввожу:
tftpboot 0x81000000 firmware.bin erase 0x9f020000 +0x3c0000 cp.b 0x81000000 0x9f020000 0x3c0000
После можно ввести команду (это не обязательно):
bootm 9f020000
Роутер стартует с адреса 9а020000. В консоли мы видим лог загрузки. Если все в порядке, можно перегрузить роутер командой:
reboot
Все, в роутере OpenWRT (или та прошивка, которую вы в него залили).
Но это не все. Загрузчик-то остался прежний, китайский. В таком состоянии не получится перешить роутер другой прошивкой, возможно не получится сбросить настройки и т.п. и легко «окирпичить» роутер и свеси на нет все труды. Нужно поменять u-boot.
В скачанный модифицированный U-BOOT от от pepe2k перед прошивкой этого u-boot нужно прописать родной MAC адрес Вашего роутера.
Для этого потребуется любой hex редактор.
MAC адрес во всех роутерах начинается с адреса 0х1FC00 под него выделено 6 байт.
Модель роутера начинается с адреса 0х1FD00, в приложенном u-boot прописана модель роутера wr703n
Hex редактором отредатируйте MAC адрес (выделено красным цветом). Мак нужно менять обязательно, иначе могут возникнуть проблемы в сети с устройствами у которых одинаковый MAC-адрес.
При помощи winscp копируем U-BOOT в папку /tmp роутера (надеюсь вы знаете что такое winscp и как им пользоваться? Если нет — Гугл в помощь).
Прошиваем U-BOOT.
cd /tmp mtd -e u-boot -r write full_uboot_wr703n.bin u-boot
Вот и все. Теперь если при включении питания держать 3 секуды (именно 3 секунды, если держать 5- будет другой вариант загрузки, 7- третий и recovery-сервер не запустится) нажатой кнопку ресет, роутер поднимет recovery-сервер по адресу 192.168.1.1
С его помощью можно прошить любую свежую прошивку, подходящую для TP-Link TL-WR703N Ver.1. Возможность прошивки теперь разблокирована и можно шить абсолютно любую. Обращаю внимание, что прошивка должна быть без загрузчика, в названии должно присутствовать «sysupgrade», т.е. прошивка для апгрейда уже установленной прошивки на базе Linux. Прошивки «factory» предназначены для начальной прошивки устройств с заводской прошивкой.
Собираем роутер обратно в корпус.
Провода Rx и Tx порта UART отпаивать не стал. Просто обрезал их, может когда-либо пригодятся — будут уже готовые.
Специально писал не очень подробно, только главные моменты. Люди с хоть каким минимальным опытом поймут, а если опыта нет совсем, лучше доверить это более опытным товарищам, дешевле выйдет.
Как и обещал ссылки:
openwrt_unlock_703_squashfs_factory
Купить сам роутер можно здесь: ССЫЛКА