Перепрошивка роутера TP-Link TL-WR842ND v2 на OpenWRT из-под Linux конечно же
2016-11-24 05:25:10

   Как водится, немного истории: домашние роутеры, как несложно догадаться, глючили не только у меня но и у всех остальных людей тоже. Среди них нашлись умельцы поглавней меня и парни решили прикрутить настоящий linux к одной из линеек тогдашнепопулярных роутеров. Это не так просто сделать, ведь объем памяти в таких устройствах мизерный, а память нужна. Ну, парни, который изобретали linux тоже не дураки были и изобрели его довольно гибким, в том числе и под такие задачи, что дало возможность другим неглупым парням таки линукс загнать в необходимые рамки.

   Но они на этом не остановились: они (правда не без помощи сообщества, ну так на то и опенсорс же) расширили список поддерживаемых устройств практически до всех современных и не очень домашних маршрутизаторов, а так же, дополнительно к крутейшей консоли (линукс же) привинтили веб-интерфейс, систему пакетов и поддержку практически всех известных технологий в области связи и не только. Резюмируя, линукс на домашнем роутере — весь спектр сетевых возможностей линукса + стабильность.

   Для того чтоб перепрошить роутер иногда достаточно через стандартный веб-интерфейс залить новый файл прошивки и все, но иногда приходится и повозиться. Но, я как человек измученный нарзаном уже успевший поэксплуатировать перепрошитые роутеры, скажу — оно того стоит. Приступим.

   Один мой коллега уже давно жаловался на нестабильность работы домашнего роутера. Вплоть до слета настроек. Я, сдуру, обмолвился, что можно перепрошить на OpenWRT и все проблемы пропадут. И как он пристал... оспади, не дай вам Бог таких приставучих коллег. Но, раз обещал, приходится делать. С чего начинается Родина? Перво-наперво нужно взять роутер в руки и внимательно посмотреть ему в зад! Нас интересует модель и версия. В нашем случае Tplink TL-WR842ND v2.

   Теперь идем на сайт OpenWRT и смотрим спиську поддерживаемых устройств. В первый раз я долго тупил и не мог найти ссылку чтоб посмотреть этот самый список поддерживаемых устройств, поэтому, чтоб ты не чувствовал себя болваном (как я), я приведу картинку и ссылку сразу на нужную страницу. Толковый читатель уже догадался, что на эту страницу мы идем с тем чтоб посмотреть входит ли наше устройство в список поддерживаемых устройств. Крутим колесико (можно использовать Ctrl+F) и дивимся. Ага! Нашелся! и кликаем по ссылочке, которая в этой же строчке таблицы, что и наш маршрутизатор.

   На этой странице нас ждет много интересного килограмм технических деталей о внутреннем устройстве маршрутизатора, параметрах, вплоть до распиновки GPIO и карты распределения памяти. Как по мне, нам оно, для нашей задачи нужно не сильно не нужно совсем. Однако, здесь имеется ссылочка на файл прошивки, который нам нужен, чтоб, как несложно догадаться, прошить роутер. Скачиваем именно установочный образ (install image), а не обновлятельский, потому что мы (сюрприз!) хотим установить OpenWRT, а не обновить! (не промажь, шнайпер! следи за номером версии устройства, v2 в данном случае) вот ссылка на файл прошивки (для TP-Link TL-WR842ND v2 и никакого другого!), если ты, как положено, ленивый парень :)

   Пока прошивка качается (8Мб в наш век, насмешил), нам пришла пора пожамкать, наконец, нашего красавца руками если вы понимаете о чем я! Кладем роутер на стол пред собой, втыкаем в розетку и наблюдаем как загорается начинает светиться светодиод, обозначающий питание. Потом жмем и не отпускаем кнопочку RESET (черненькая, как мои мысли про винду, на задней панели). Удерживаем до тех пор пока устройство не моргнет всеми светодиодами разом (я успел досчитать до 23 :) после чего отпускаем. Это мы выполнили сброс на заводские настройки.

   Далее соединяем наш компьютер (с линуксом, как ты помнишь, хотя это пока не принципиально) Ethernet-кабелем с LAN-гнездом (желтенькое) маршрутизатора и снова смотрим на жопу заднюю часть за инструкцией. Смотрим и охереваем изумляемся: в качестве адреса, на который предлогается заходить, указан http://tplinklogin.net! это что еще такое? не-не-не! мне так не нравится! Открываем консольку (вот зачем нам линукс!) заходим как суперпользователь и командуем:

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
10.8.0.0        10.8.0.5        255.255.255.0   UG    0      0        0 tun0
10.8.0.5        *               255.255.255.255 UH    0      0        0 tun0
25.0.0.0        *               255.0.0.0       U     0      0        0 ham0
localnet        *               255.255.255.0   U     0      0        0 eth0
192.168.57.0    *               255.255.255.0   U     0      0        0 vboxnet1

   Это мы смотрим таблицу маршрутизации ядра и нам четко видно, что адрес маршрутизатора по умолчанию — 192.168.0.1 — этот адрес и забиваем в браузер, а-то иш! выдумали! через какие-то левые сайты ходить!

   (на самом деле, это все совсем не обязательно, обычно хватает тупо попробовать адреса http://192.168.0.1 и http://192.168.1.1 — и один из них в 90% случаев — то шо трэба)

   При попытке зайти в браузере на нужный адрес (можешь тупо перейти по этой ссылке) браузер запрашивает логин и пароль (в хроме выглядит как на картинке рядом) вводим имя пользователя — admin и пароль пять звездочек тоже admin. И попадаем уже в веб-интерфейс маршрутизатора, который выглядит как-то так.

   Веб-интрерфейс, кстати, у ТПЛинка приятный: мне всегда нравился. И справка справа на русском — тоже приятно. Однако мы пришли сюда избавляться от этой прошивки, поэтому нечего слезы лить по этому интерфейсу: нам не красота нужна, а возможности и, главное — стабильность.

   В меню слева выбираем пункт "системные инструменты", "обновление системного ПО" далее нажимаем на кнопочку выбрать файл и указываем путь к файлу прошивки, который к этому времени должен уже докачаться. В моем случае сей файл назывался openwrt-15.05.1-ar71xx-generic-tl-wr842n-v2-squashfs-factory.bin, нажимаем на кнопку "обновить ПО" и получаем странное сообщение, мол укажите файл прошивки! че за... я ведь видел, что файл он даже не загружал к себе! А как веб страница может определить, что файл ей не нравится? Только по имени файла, подумал Штирлиц!

   Тут мне явилось решение: скачать настоящую прошивку для этой модели роутера, потом переименовать файл OpenWRT-шной прошивки так, будто это оригинальная и скормить веб-интерфейсу! Идем на сайт TPLink-а и находим страницу нужного нам маршрутизатора. Вот, если что, прям ссылка на саму прошивку. Она немного в зипе, но опытного линуксятника это не остановит, тем более, что нам все равно от нее только имя нужно! А! Так я ж его могу прям тут написать, держи: TL-WR842ND_V2_140922_RU.bin переименуем OpenWRT-шный файлик:

   

mv openwrt-15.05.1-ar71xx-generic-tl-wr842n-v2-squashfs-factory.bin TL-WR842ND_V2_140922_RU.bin

   после чего снова попытаемся скормить его веб-интерфейсу маршрутизатора. И получилось ведь! Отвечаем утвердительно и несколько секунд наслаждаемся: именно в эти секунды происходит перепрошивка нашего TPLink-а, к которой мы так долго шли.

   После завершения загрузки прошивки, страница попытается обновиться и выдаст ошибку: оно и понятно — кода, который раньше генерировал эту страницу, больше в маршрутизаторе нет, мы заменили его новым, OpenWRT-шным.

   Продолжим. Теперь на устройстве все другое! В том числе и адрес. Переподключимся и получим от маршрутизатора новый адрес

#/etc/init.d/networking restart

   теперь выясним новый основной шлюз

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         OpenWrt.lan     0.0.0.0         UG    0      0        0 eth0
10.8.0.0        10.8.0.5        255.255.255.0   UG    0      0        0 tun0
10.8.0.5        *               255.255.255.255 UH    0      0        0 tun0
25.0.0.0        *               255.0.0.0       U     0      0        0 ham0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
192.168.57.0    *               255.255.255.0   U     0      0        0 vboxnet1

   странное имя шлюза... обычно IP-шник.. ну нам никто не мешает выяснить и IP-шник, хоть это и совсем не обязательно

# ping OpenWrt.lan
PING OpenWrt.lan (192.168.1.1) 56(84) bytes of data.
64 bytes from OpenWrt.lan (192.168.1.1): icmp_seq=1 ttl=64 time=0.264 ms
64 bytes from OpenWrt.lan (192.168.1.1): icmp_seq=2 ttl=64 time=0.356 ms

   ага! попался! щас мы на тебя зайдем!

#telnet 192.168.1.1

   И.. OpenWRT нас приветствует! Ура! Получилось! Мы его не окирпичили!

   Собственно, перепрошивка на этом — все. Дальше уже настройка. Настройку OpenWRT я решил вынести в отдельную статью, так как планирую не один роутер перепрошить, а настройка для всех будет одинаковая: так будет удобнее. Всем пинга!

    Чтоб доказать что Вы не робот причините вред человеку или своим бездействием допустите, чтоб ему был причинен вред решите сложнейший пример:
    3 + 8 =
    Регистрация