Время на прочтение
3 мин
Количество просмотров 339K
Роутеры лишаются своих родных прошивок по разным причинам. Желание добавить функционал, припаять USB порт или просто добавить стабильности в работу роутера.
В моём случае роутер на последней стабильной родной прошивке при 3 WiFi и 2 Ethernet потребителях подвисал 4 раза в неделю. Это не очень страшно, но и перезагружать его надоело. Хотелось стабильности. После поисков и чтения отзывов выбор пал на OpenWRT. В статье уже представлена пошаговая инструкция без ошибок, которые мне пришлось пройти.
Шаг 1, прошиваем на последнюю официальную прошивку
Первое, что стоит сделать, это обновиться и поставить последнюю родную прошивку.
Здесь вы можете найти последнюю прошивку для TL-WR741ND, для соответствующей версии оборудования.
- Переверните роутер и уточните версию железок в нём ориентируясь по наклейке на корпусе.
- Скачайте архив с последней прошивкой.
- Прошейте роутер прошивкой из архива обычным способом. Системные инструменты -> Резервная копия & Восстановление (System Tools -> Firmware Upgrade).
Шаг 2, скачиваем и устанавливаем OPENWRT
Далее необходимо выбрать версию прошивки OpenWRT.
Следует использовать именно тот файл, который согласуется с версией железа вашей модели. Не пренебрегайте этим правилом! Возможны два варианта файловой системы для загрузки: JFFS2 и SquashFS.
Прежде чем продолжить описание сборки, остановлюсь немного на том, как устроена корневая файловая система OpenWRT. Она представляет собой файловую систему mini_fo, которая прозрачно объединяет две другие файловые системы: неизменяемую SquashFS, смонтированную в /rom, и изменяемую JFFS2, смонтированную в /overlay. Все файлы, которые создаются или изменяются после установки прошивки, находятся в /overlay. При удалении файлов, изначально бывших в прошивке, mini_fo просто помечает их как удаленные, сами же файлы остаются в /rom и продолжают занимать место. Как SquashFS, так и JFFS2 используют сжатие, но SquashFS дает лучшую степень сжатия, поэтому помещение всех необходимых пакетов сразу в /rom дает прошивку меньшего размера. Исключение ненужных пакетов из прошивки также позволяет сэкономить столь драгоценное место на флешке.
alt
Слово factory в названии файла значит, что такой файл вы должны заливать на ваше устройство поверх заводской (родной) прошивки. файл со словом sysupgrade применим только для обновления OpenWRT, т.е. заливается после factory прошивки.
У нас стоит родная прошивка, значит нам нужно устанавливать прошивку с тегом factory.
Ниже представлена одна прошивка с разной аппаратной версией устройства, выбираем ту к которой принадлежит ваш роутер, для того что бы определить версию смотри Шаг 1:
- TL-WR741ND V1 Factory
- TL-WR741ND V2 Factory
- TL-WR741ND V4 Factory
Качаем factory прошивку и шьём обычным способом. Системные инструменты -> Резервная копия & Восстановление (System Tools -> Firmware Upgrade).
Шаг 3, входим в WEB интерфейс прошивки
После успешной прошивки мы получаем рабочий роутер с включенным web-интерфейсом. Поэтому заходим в настройки прошивки через браузер. Дальнейшие действия таковы:
Вводим в адресную строку адрес роутера 192.168.1.1
Нажимаем клавишу Enter и появляется web интерфейс роутера. Мы увидим то что нам предложили ввести Username и Password. В Username вводим root, поле Password оставляем пустым. Нажимаем Login.
На этом прошивка закончилась, вы попали в web интерфейс прошивки Openwrt.
Шаг 4, настраиваем интернет соединение
Нажимаем на Network -> Interfaces -> Wan -> Edit
Выбираем нужный нам протокол, в моем случаи это PPPoE. Вводим логин от интернета в строку PAP/CHAP username, а пароль в PAP/CHAP password. Нажимаем Save & Apply.
Возвращаемся обратно в Interfaces, нажимая на этот раздел, выбираем строку WAN и нажимаем connect. Интернет настроен.
Шаг 5, настраиваем Wi-Fi соединение
Настраивается оно почти так же как и интернет соединение так что расскажу кратко.
Заходим раздел Network -> Wifi -> edit(если есть) или Add(если нет созданной). В разделе General Setup меняем ESSID, это название вашей сети, потом заходим в Wireless Security. В строке Encryption выбираем WPA-PSK/WPA2-PSK Mixed Mode. В строке Key пишем пароль от wi-fi сети. Нажимаем Save & Apply.
Возвращаемся в раздел Wifi и нажимаем connect. Wi-fi настроен.
Шаг 6, русифицируем прошивку
Для того чтобы русифицировать прошивку нам надо зайти в раздел System -> Software -> и нажать на кнопку Update List.
После этого нажимаем на Available Packages, выбираем раздел L. Находим файл с именем «luci-i18n-russian» нажимаем кнопку Install. На запрос согласны ли вы, нажимаете ок.
Языковой пакет скачали, теперь его нужно применить. Открываем раздел System -> Language and Style-> Language -> Русский. После этого нажимаем кнопку Save & Apply.
Обновляем страницу(нажимаем на клавиатуре F5) и видим русский интерфейс.
Шаг 7, устанавливаем пароль на маршрутизатор
Заходим в раздел Система -> Управление. Устанавливаем Пароль маршрутизатора. Нажимаем сохранить и применить.
Шаг 8, заключительный этап
Система -> Перезагрузка -> Выполнить перезагрузку.
Беспроводной маршрутизатор серии N 300Мбит/с
Основные технические характеристики:
Примечание: TL-WR841N идентичен данной модели, но оснащен несъемными антеннами.
Примечание: v5.4, v5.2 и т.п. аппаратно идентичны v5. v7, v8, v9 аналогично. Различие минорных версий отражает лишь версию в предустановленных прошивки и загрузчика.
| Версия/Модель | Версия OpenWrt | Скачать последнюю версию | Примечание |
|---|---|---|---|
| v1 | 10.03 и новее | 15.05.1 | Добавлена поддержка |
| v3 | 10.03 и новее | 15.05.1 | Отчет |
| v5 | 10.03 и новее | 15.05.1 | Отчет |
| v7 | 12.09 и новее | 15.05.1 | Полностью функционален |
| v8 (китайская версия) | Trunk r29631(измененная) | ? | Только 2МБ встроенной памяти, требуется аппаратная модификация |
| v8 (международная) | 12.09 и новее | 18.06.2 | DB120 — IPv6 баг |
| v9 | 14.07 и новее | 15.05.1 | |
| v10 | 15.05.1 | 15.05.1 | |
| v11 | образ от v10 или trunk | ? | При сравнении плат v10 и v11 различия только во флеш памяти. Можно использовать образы v10 c sysupgrade -F, игнорируя проверку версии. Так же по сравнению с v10, антенны имеют другую форму (как на Archer C7), и WAN LED теперь двухцветный, зеленый и оранжевый. Образ 15.05.1 r49389 работает из коробки. |
| Версия | v3 | v5 | v7 | v8 | v9 | v10 | v11 |
|---|---|---|---|---|---|---|---|
| Платформа: | AP81(ar71xx) | ||||||
| Архитектура: | MIPS | ||||||
| Производитель: | Atheros | ||||||
| Загрузчик: | U-Boot | ||||||
| Системный чип: | AR9130 | AR7240 rev 2 | AR7241-AH1A | AR9341 | QCA9533-AL3A | QCA9533-BL3A | QCA9533-AL3A |
| Частота CPU: | 400 МГц | 400 МГц | 400 МГц | 535 МГц | 550 МГц | 650 МГц | |
| BogoMIPS: | 265.42 | 266.24 | 265.42 | 266.64 | 366.18 | 432.53 | |
| Flash-чип: | ST 25P32V6P | Неизвестно | cFeon F32-100HIP/SPANSION FL032PIF | Spansion FL032PIF | Spansion FL032PIF | Winbond 25Q32FVS1G | Spansion FL032PIF |
| Объем Flash: | 4 Мб | ||||||
| Чип ОЗУ: | Hynix HY5DU561622FTP-5 | Неизвестно | Zentel A3S56D40FTP-G5 | ESMT M13S2561616A-5T | Winbond W9425G6JH-5 | Zentel A3S56D40GTP-50 | Zentel A3S56D40GTP-50L |
| Объем ОЗУ: | 32 Мб | ||||||
| Радиочип: | Atheros AR9100 Rev:7 | Atheros AR9280 Rev:2 | Atheros AR9287-BL1A 2.4GHz 802.11bgn | AR9341 | QCA9533-AL3A | QCA9533-BL3A | QCA9533-AL3A |
| Свитч: | Marvell 88E6060 | Встроенный AR7240 | Встроенный AR7241 | Встроенный AR9341 | Встроенный QCA9533-AL3A | Встроенный QCA9533-BL3A | Встроенный QCA9533-AL3A |
| Порт USB: | Неизвестно | Есть | Есть | В процессе | Отсутствует в SoC | ? | |
| Последовательный порт: | Есть | Есть | Есть Ещё | Есть | Надо убрать R26 | ? | |
| JTAG: | Есть | Неизвестно | Неизвестно | Есть | ? |
-
Войдите в веб-интерфейс маршрутизатора, перейдите в раздел System Tools — Firmware Upgrade и укажите образ дистрибутива как файл обновления.
-
По завершении прошивки маршрутизатор перезагрузится и будет доступен по адресу http://192.168.1.1
Для v8,v9,v10 все значительно проще
Внимание! Данный метод не рекомендуется к использованию если вы не понимаете о чем речь и никогда подобными вещами не занимались и учиться не хотите 
Требуется консольный кабель с ttl уровнями usb-ttl, например DKU-5, или RS-232-TTL преобразователь
и tftp сервер на вашем компьютере,
Почти полностью взято отсюда https://forum.openwrt.org/viewtopic.php?id=24203, спасибо dl3daz.
-
Подключите WAN портом к своей локальной сети или напрямую к компьютеру с tftp сервером.(для 8.2 попробуйте LAN1 порт)
-
Подключите консольный кабель как описано в секции “serial console” (английская вики) и делаем “tpl” трюк (включаем роутер и сразу пишем в консоли tpl, это нужно сделать буквально за полсекунды, иначе не получится), чтобы получить нормальный доступ в консоль.
-
Теперь прописываем IP адресы для роутера и TFTP сервера (здесь названы соответственно ROUTERIP and SERVERIP, конечно же должны совпадать с реальными IP адресами (мы же не фигней маемся). Пишем в консоли:
setenv ipaddr ROUTERIP setenv serverip SERVERIP printenv
Для примера, присвойте сетевой карте своего компьютера(TFTP сервера) статичный IP 192.168.1.100, если у вас есть другие сетевые карты, то рекомендую их выключить.
В консоли пишем:
setenv ipaddr 192.168.1.111 setenv serverip 192.168.1.100
192.168.1.111 ip роутера, 192.168.1.100 ip вашего TFTP сервера.
-
Дважды проверьте что ввели нужные адреса (printenv выводит на экран адреса) Проверяем, что ваш сервер находится на 69 порту(стандартный порт). Теперь загружаем прошивку через TFTP “tftpboot 0x80000000 имя_файла_прошивки.bin ”:
ar7240> tftpboot 0x80000000 openwrt-ar71xx-tl-wr841nd-v8-squashfs-factory.bin Using eth0 device TFTP from server 192.168.1.100; our IP address is 192.168.1.111 Filename 'openwrt-ar71xx-tl-wr841nd-v5-squashfs-factory.bin'. Load address: 0x80000000 Loading: checksum bad ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ###################################################### done Bytes transferred = 3932160 (3c0000 hex) -
Значение “3c0000” в последней строке (ваше число может отличаться). Теперь выполните следующие команды, меняйте 3c0000 на свое значение, которое вы получили из tftpboot
Для TL-WR841ND v3:
1. Чистим память:
ar7100> erase 0xbf020000 +0x3c0000
First 0x2 last 0x3d sector size 0x10000
61
Erased 60 sectors
2. Копируем содержимое RAM в память:
ar7100> cp.b 0x80000000 0xbf020000 0x3c0000 Copy to Flash... write addr: bf020000 done
3. Перезагружаем
ar7100> reset
Resetting...
4. Всё.
Для TL-WR841ND v5, v7, v8, v9:
1. Чистим память:
wasp> erase 0x9f020000 +0x3c0000
2. Копируем содержимое RAM в память:
wasp> cp.b 0x80000000 0x9f020000 0x3c0000
3. устанавливаем загрузчик
wasp> bootm 0x9f020000 ## Booting image at 9f020000 ... Uncompressing Kernel Image ... OK Starting kernel ...
4. Всё.
U-Boot 1.1.4 (Apr 9 2009 - 12:29:57)
v8,v9,v10 без консольного кабеля
Как и большинство нынешних роутеров может быть восстановлен без консольного кабеля.
-
Пропишите на сетевой карте компьютера статичный ip
192.168.0.66 (у роутера он192.168.0.86) -
Закиньте factory OpenWrt образ в корень своего tftp сервера и назовите: для v8 mr3420v2_tp_recovery.bin ; для v9 wr841nv9_tp_recovery.bin ; для v10 wr841nv10_tp_recovery.bin
-
На выключенном роутере зажимаете reset, не отжимая его, включаете роутер, держите ресет пока не загорится светодиод lock(крайний правый) .
-
Ждем пока роутер перезагрузится.
подробнее
1. Скачайте оригинальный образ прошивки с сайта TP-Link(у версий 1 и 1.5 абсолютно идентичные последние прошивки), для версии 3.
2. Извлеките файл из архива и посмотрите содержит ли он в своем названии слово boot,
Данный способ подходит для моделей V1, V3, V5, V7, V8 и V9; так как бутлоадер у них одного размера.
Для примера возьмем файл со словом “boot” в названии wr841nv9_en_3_14_4_up_boot(131129).bin
Вырезаем первые 0x20200 (это 131,584 = 257*512) байт прошивки:
dd if=wr841nv9_en_3_14_4_up_boot(131129).bin of=tplink.bin skip=257 bs=512
Получаете файл tplink.bin, данную команду можно провести на компьютере с linux/unix или на самом роутере(предварительно закачав его туда с помощью web сервера или по протоколу scp)
Так же вы можете просто скачать уже модифицированные файлы без boot блока
3. Полученный файл переименуйте во что-то типа tplink.bin и можете прошить через web интерфейс, если же возможности нет, то можно через консоль, используйте протокол SCP (для windows winscp), если вы на линуксе то и сами все знаете, так же можно воспользоваться веб-сервером в локальной сети):
root@OpenWrt:~# cd /tmp root@OpenWrt:/tmp# wget http://192.168.1.110/tplink.bin
root@OpenWrt:/tmp# mtd -r write ./tplink.bin firmware
Вы так же можете попробовать уже описанный способ установки по tftp(boot часть опять же придется вырезать)
См. также Back to original firmware
При загрузке устройства, когда начинает мигать индикатор SYS (под иконкой шестеренки), нажмите и удерживайте кнопку QSS около 5-10 сек. (индикатор начнет мигать чаще).
См. также OpenWrt Failsafe
Изменение данной настройки в домах с большой плотностью wifi точек, может только ухудшить производительность вашего роутера вечером, когда соседские точки сильно загружены.
Суть в том, что по умолчанию в Openwrt соблюдаются законодательства разных стран и при присутствии других wifi роутеров, ваш роутер сбрасывает канал 40mhz до 20 mhz, дабы не загрязнять эфир и не ухудшать собственную производительность, хотя сообщает что умеет 300МБит/c и 40mhz, а так как у нас режим MIMO 2:2, то при 20mhz получаем 130 МБит/с по стандарту.
Как исправить:
Заходим по ssh(если вы еще не установили пароль, то по telnet) и вводим команды:
uci set wireless.radio0.htmode=HT40 /выставляем ширину канала 40mhz, можно и через веб интерфейс. uci set wireless.radio0.noscan=1 /запрещаем роутеру сканировать окружение. uci commit wireless /записываем наши команды в конфигурационный файл. wifi /перезагружает wifi интерфейс с новыми настройками без перезагрузки роутера.
И получаем честные 300МБит/c
Редактируем файл /etc/config/wireless
-
Под config wifi-device ‘radio0’ добавляем
option noscan '1'
-
option ‘htmode’ выставляем значение HT40 (для билдов до BARRIER BREAKER(14.07) значение принимает HT40+ или HT40-)
option htmode 'HT40'
Проверьте, что eth0/eth1 не перепутаны!
Не так давно товарищ рассказывал мне о своем только что прошитом с помощью OpenWRT роутере и о том, что поддержки 6in4 туннелирования у него не появилось несмотря на обновление до самой последней версии прошивки. Меня это очень удивило, так как последние два релиза OpenWRT пусть и не имеют встроенной поддержки IPv6-туннелирования, но достаточно просто и легко позволяют установить необходимые пакеты по одному клику в панели управления (для этого даже названия пакета знать не нужно, веб-интерфейс предложит все сам). Решил посмотреть, в чем же дело. Оказалось, что последняя версия прошивки для TP-Link TL-WR740N — Attitude Adjustment 12.09. Конечно же, это не так, но давайте разберемся в причинах.
Итак, на сайте OpenWRT мой товарищ набирал в поиске модель своего роутера и попадал на вот эту страницу официального вики. Согласно таблицы, для устройства с аппаратной ревизией v4.24 действительно последней версией является Attitude Adjustment, во что и поверил мой товарищ. Тем не менее, на самом деле с момента написания этой статьи появилось уже два других релиза, которые точно так же поддерживаются имеющимся у нас роутером, но в статье почему-то оставили устаревшую информацию. Тем не менее, достаточно только посмотреть, на какой же файл имеется ссылка в статье и запомнить его название. В соседней папке с последней на сегодняшний день версией Chaos Calmer находим что? Да, тот же самый файл, но уже с версией посвежее. Итог: не верьте информации о последних обновлениях в вики OpenWRT, проверяйте наличие обновлений самостоятельно! Далее небольшая инструкция для сомневающихся: как установить OpenWRT на свой роутер и удалить, если вдруг не понравится.
• Установка OpenWRT
На самом деле, нет ничего легче, чем установка OpenWRT. Все, что вам нужно — это знать модель своего роутера и его аппаратную ревизию, если на сайте имеется несколько вариантов прошивок. Искать можно в вики по модели роутера или прямо в репозитории, если страница в вики не оказалась достаточно информативной. Наиболее вероятно, что свою прошивку вы найдете в этой папке. После того, как нужный файл найден, заходим в меню роутера и загружаем его как обыкновенное обновление ПО.
Важно!
— Вам нужен тот файл, имя которого завершается на «factory.bin». «sysupgrade» предполагается как обновление к уже существующей установке OpenWRT.
— Никогда не работайте с прошивкой через беспроводное соединение! После перезагрузки роутера вы больше не подключитесь к нему без кабеля, так как в OpenWRT по умолчанию отключена беспроводная связь.
— После начала процесса прошивки не отключайте роутер от электропитания и ничего не нажимайте на корпусе. Процесс прошивки занимает до пяти минут, после чего ваш компьютер зарегистрируется по DHCP и вы сможете зайти в панель управления по адресу 192.168.1.1 (192.168.0.1). Если по истечении некоторого времени связь не появилась, попробуйте принудительно обновить данные DHCP (например, отключите и включите интерфейс на компьютере, с которого происходит настройка).
Последняя версия OpenWRT достаточно сильно тормозит на TP-Link TL-WR740N, но такое поведение наблюдается только при первом запуске, после нескольких перезагрузок лично у меня все нормализовалось. После того, как роутер поднимется и покажет вам страницу авторизации в панели управления, вы сможете попасть в нее без пароля. Первое дело, которое нужно сделать — установить пароль, так как без этого напоминание в верхней части экрана не исчезнет. Обратите внимание, что OpenWRT на сегодняшний день имеет русскую локализацию, так что если вам не до конца понятны англоязычные термины, вы всегда можете изменить язык в настройках.
• Мне не понравилось. Как вернуться к заводской прошивке?
Бытует мнение о том, что OpenWRT невозможно удалить. Уж не знаю, откуда люди начерпали столь сакральных знаний, но OpenWRT удаляется с роутера чуть сложнее, чем туда устанавливается. Да, вы уже не сможете просто загрузить заводскую прошивку из панели управления (нет, сможете, конечно, но после этого роутер больше не поднимется), но ведь есть и другие способы. Поскольку я пользуюсь только ОС семейства Linux, то и способ ниже подойдет для любой из них. В ОС Windows вам, по сути дела, нужно сделать то же самое, но при этом алгоритм действий и команды могут различаться, а вот насколько — не знаю.
1. Скачиваем с официального сайта производителя оригинальную прошивку, соответствующую модели и аппаратной ревизии роутера. TP-Link любит их паковать в zip-архивы, непонятно только зачем. Распечатываем.
2. Включаем во вкладке «Администрирование» веб-интерфейса роутера SSH-сервер (если он там уже, конечно, не включен).
3. Запускаем SSH-клиент на своем компьютере и пробуем подключиться к роутеру. В качестве IP-адреса указываете тот же, что и при подключении через веб-интерфейс, порт 22 (если в настройках не указывали иное), имя пользователя — root. Если клиент спрашивает пароль, значит все хорошо. Пароль, кстати, тот же, что и от веб-интерфейса. Отключаемся, так как пока у нас еще не все готово.
4. Открываем консоль. Находим, куда сохранилась заводская прошивка которую мы скачивали с официального сайта производителя, смотрим, распаковали ли мы оттуда .bin-файл. Нам нужен будет только он. Далее в консоли:
cd /home/user/downloads
dd if=original.bin of=tplink.bin skip=257 bs=512
Где «/home/user/downloads» — папка, в которой находится оригинальная прошивка, «original.bin» — имя файла оригинальной прошивки без пути (можно, что правда, и не опускать полные пути, но тогда нужно будет добавить путь и в of для большего удобства, так как в противном случае готовая прошивка будет записана в корень домашнего каталога того пользователя, от имени которого вы вызвали dd), «tplink.bin» — имя файла, в который будет записана новая прошивка (файл будет создан).
5. По сути дела, получившимся файлом tplink.bin можно прошивать роутер и через веб-интерфейс, но я так не пробовал, поэтому в данном варианте не уверен. Поступим, если хотите, по-другому: загрузим файл на роутер по SSH.
Вводим пароль, после чего заходим на роутер по SSH:
ssh 192.168.0.1 -lroot
На всякий случай проверяем, если ли у нас новый файл:
ls /tmp
Если файл tplink.bin появился, значит все в порядке.
6. Запускаем обновление:
cd /tmp
sysupgrade -v tplink.bin
Смотри в консоль до сообщения о перезагрузке, после чего ждем аналогично установке OpenWRT где-то пять минут ничего не отключая и не перезагружая вручную. Через пять минут можно будет попробовать подключиться по IP-адресу 192.168.0(1).1 и если вы увидите родную панель управления роутера — все готово. Если не увидите, попробуйте обновить данные, полученные компьютером по DHCP. Для этого можно отключить и включить интерфейс, или отключить кабель из сетевой карты и подключить обратно.
Более, чем уверен, что откат до заводской прошивки вам не пригодится, так как OpenWRT умеет намного больше, чем заводская прошивка любого популярного производителя. Кстати, все это есть и в формате видео. Там, что правда, говорится о другой модели роутера, но процесс полностью идентичен для большинства TP-Link’ов.
OpenWrt (Open Wireless RouTer) — это основанная на Linux открытая прошивка для беспроводных роутеров. В этой заметке будет рассмотрена установка OpenWrt на роутер TP-Link TL-WDR3600, также известный, как TP-Link N600. Роутер этот не новый, но довольно неплохой. К тому же, он числится среди рекомендуемых устройств для установки OpenWrt. Ставить OpenWrt на роутер интересно как минимум из соображений безопасности (в официальных прошивках часто много багов, не говоря уже о бэкдорах). Плюс к этому OpenWrt фактически превращает ваш роутер в маленький VDS, на котором можно выполнять какие-то задачи по cron’у, запустить rtorrent в screen, поднять Nginx, IRC-баунсер, и так далее.
Важно! Поисковые системы часто выдают в результатах поиска ссылки на сайт wiki.openwrt.org. Стоит иметь в виду, что на момент написания этих строк wiki.openwrt.org заморожен и может содержать устаревшие сведения. Актуальную информацию следует искать на openwrt.org.
Установка и настройка OpenWrt
Найти TP-Link TL-WDR3600 в магазине сейчас непросто, зато не составляет труда купить с рук. Так выглядит устройство, купленное мной на Avito за 1000 рублей (около 18$):
Fun fact! TP-Link TL-WDR3600, как и многие другие роутеры, основанные на SoC производства Atheros, работают на архитектуре MIPS. Здесь используется SoC AR9344, работающий на частоте 533 МГц. Характерно, что процессор является big endian, что в наши дни встречается не часто.
Прошивку качаем отсюда (если вы читаете заметку в далеком будущем, проверьте, нет ли в каталоге /releases/ более новых версий прошивки):
https://downloads.openwrt.org/releases/17.01.4/targets/ar71xx/generic/
Файл называется:
lede-17.01.4-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin
Fun fact! Эта конкретная версия прошивки на самом деле была сделана в рамках проекта LEDE (Linux Embedded Development Environment). LEDE — это форк OpenWrt, помимо прочего, предоставляющий более свежие и при этом стабильные версии прошивок. Для сравнения, последняя стабильная версия прошивки для TL-WDR3600 от OpenWrt версии 15.05.1 была выпущена два года назад, 16 марта 2016 года. Но прямо сейчас LEDE и OpenWrt снова сливаются в один проект. Этим объясняется lede- в имени прошивки, наличие у проекта OpenWrt двух форумов, и прочие странности, хотя по факту это уже один проект.
Сзади роутера зажимаем кнопку Reset, чтобы сбросить его к заводским настройкам. Затем подключаем к нему ноутбук по витой паре, заходим в веб-админку на 192.168.0.1, авторизуемся под именем admin с паролем admin. В админке находим раздел для обновления прошивки. У меня оказалась локализованная версия роутера, поэтому раздел назывался Системные инструменты → Обновление встроенного ПО. Загружаем через форму .bin файл с прошивкой OpenWrt.
После обновления новая админка будет доступа по адресу 192.168.1.1, авторизуемся под именем root с паролем root. Сразу меняем пароль в System → Administration. Там же можно сказать, на каких интерфейсах должен крутиться SSH и добавить свой id_rsa.pub. Добавление его с помощью команды ssh-copy-id почему-то не работает.
Для входа по SSH также используем имя пользователя root:
Что еще стоит настроить в веб-админке? Беспроводная сеть по умолчанию выключена. Включить ее можно в Network → WiFi. Убедитесь, что вы используете WPA2-PSK с сильным паролем. Кстати, если вы пропустили заметку Как ломают WPA/WPA2 сети с помощью aircrack-ng, ознакомиться с ней не повредит.
Вообще, должен сказать, что у OpenWrt довольно приятный веб-интерфейс. Останавливаться на нем подробно мы не будем, но вот пара скриншотов. Список сетевых интерфейсов:
Состояние беспроводной связи:
Графики, обновляемые в реальном времени, отображают объемы входящего и исходящего трафика:
Ну вот, остается только подключиться к роутеру по WiFi, воткнуть витую пару в порт Internet, и можно считать, что на этом первоначальная настройка роутера выполнена!
Управление пакетами
Управление пакетами в OpenWrt осуществляется при помощи утилиты opkg. Рассмотрим несколько примеров ее использования.
Обновляем список доступных пакетов:
Смотрим список установленных пакетов:
Список всех доступных пакетов:
Для каких пакетов есть обновления:
Обновляем пакеты:
opkg upgrade dnsmasq odhcp6c wpad-mini hostapd-common
Установка новых пакетов (не перестарайтесь, место на роутере не резиновое!):
opkg install htop tree screen rtorrent nmap tcpdump
Удаление пакета:
Подробности ищите на странице Opkg Package Manager официального сайта.
Монтирование внешних USB-носителей
Роутер имеет крайне мало дискового пространства, в связи с чем может возникнуть желание использовать внешний носитель. У меня под рукой оказалась флешка Kingston HyperX Predator на 512 Гб, вот такая:
… и я решил попробовать подключить ее.
По умолчанию OpenWrt идет без поддержки USB или каких-либо «нормальных» файловых систем, вроде FAT или Ext4. Поэтому нам понадобится установить недостающие модули ядра. При подключении данной конкретной флешки к моему ноутбуку в dmesg появляется:
usb-storage 4-3:1.0: USB Mass Storage device detected
scsi host6: usb-storage 4-3:1.0
scsi 6:0:0:0: Direct-Access Kingston DTHX Predator PMAP PQ: 0…
sd 6:0:0:0: [sdb] 988282880 512-byte logical blocks: (506 GB/471 GiB)
sd 6:0:0:0: [sdb] Write Protect is off
sd 6:0:0:0: [sdb] Mode Sense: 45 00 00 00
sd 6:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn’…
sdb: sdb1
sd 6:0:0:0: [sdb] Attached SCSI removable disk
… что как бы намекает нам, что устройство работает через слой SCSI, поддержки которого в OpenWrt из коробки, конечно же, тоже нет.
В общем, после нескольких не вполне удачных экспериментов, я выяснил, что полный список необходимых пакетов выглядит как-то так:
opkg install kmod-scsi-core kmod-scsi-generic \
kmod-usb-core kmod-usb-ohci kmod-usb-uhci kmod-usb2 kmod-usb3 \
kmod-fs-msdos kmod-fs-vfat kmod-fs-ext4 usbutils \
kmod-usb-storage kmod-usb-storage-extras block-mount
То, что все работает, как надо, можно понять по появившемуся устройству /dev/sda, и тому факту, что команда:
… успешно монтирует раздел.
Следует однако иметь в виду, что в зависимости от устройства, которое вы решите использовать, все может оказаться и не так просто. Если у вас возникнут проблемы с монтированием внешних устройств, рекомендую обратиться к разделу Storage Devices официальной документации.
Заключение
Как видите, все оказалось довольно не сложно. В рамках одного поста, впрочем, нельзя рассмотреть абсолютно все, что можно сделать с OpenWrt. Например, можно управлять фаерволом при помощи утилиты iptables, настроить на роутере VPN, поднять HTTP-сервер, и так далее. Дополнительную информацию по этим и другим вопросам, как уже отмечалось, вы найдете на сайте openwrt.org.
Дополнение: Если вы ищите недорогой роутер с предустановленным OpenWrt, тут можно порекомендовать TP-LINK TL-WR703N. Также заслуживают внимания роутеры производства GL.iNet, например, GL-AR750.
Дополнение: В продолжение темы см посты Превращаем Raspberry Pi в беспроводной роутер и Изучаем Wi-Fi сети с помощью WiFi Explorer Lite.
Метки: Linux, Беспроводная связь, Девайсы.
TL;DR: Установить не сложно, но говорят, что 5 GHz Wi-Fi работает медленнее, чем на стоковой прошивке. Делайте на свой страх и риск.
Категорически приветствую всех в своём блоге. Никого не удивлю если скажу, что я любитель ставить всякие разные прошивки на свои устройства. В этот раз таким устройством оказался мой старенький роутер — TP-Link Archer A6 v2 (RU). А в качестве прошивки я решил поставить OpenWrt.
Предыстория
Прошивка роутера на OpenWrt для меня не нова. Я уже прошивал свой древнющий TP-Link WR841ND много лет тому назад. Сначала на DD-WRT, а потом неудачно на OpenWrt. Почему неудачно? Потому что роутер окирпичился, и пришлось проделывать какие-то махинации с подпайкой к плате и загрузкой прошивки через COM. Тем не менее, по итогу я всё-таки поставил на него OpenWrt, и был доволен 🙂
В 2020 году я приобрел себе роутер TP-Link Archer A6. Никакой информации о поддержке на OpenWrt в тот момент на него я не нашёл, и долгое время сидел на стоковой прошивке. Причём стоковая прошивка была какой-то совсем плохой. Роутер после выключения и включения мог минуту «думать» и не подключаться к сети. Плюс иногда пропадал интернет и роутер почему-то в эти моменты зависал и не давал мне зайти в админку. Возможно это какой-то брак конкретно моего устройства, но, тем не менее, я пинял именно на прошивку.
Но не так давно мне понадобилось подключить компьютер к уже существующей Wi-Fi сети с интернетом. Доступа по Ethernet кабелю к этой сети нет, и Wi-Fi адаптера на компьютере тоже нет.
Казалось бы, есть Wi-Fi роутер, есть Ethernet-кабель. Сразу приходит в голову мысль построить сеть, при которой компьютер подключается посредством кабеля к роутеру, а роутер посредством Wi-Fi подключается к уже существующей точке, откуда собственно и берет «интернет» для подключенных к нему кабелем устройств.
Как вы думаете, нашел ли я такую возможность в стоковой прошивке своего TP-Link’а? Конечно же, нет. Он может быть подключен через WAN к другому роутеру, чтобы раздать интернет, но не может подключаться к другому роутеру через Wi-Fi.
При этом я помнил, что на OpenWrt такое есть из коробки. Это и побудило меня опять полезть в недра интернета, и изучить можно ли перепрошить мой роутер на эту прошивку. Спойлер — можно.
Предостережения
Всё описанное ниже проверено только на роутере TP-Link Archer A6 v2 (RU). Перепроверьте надписи на дне роутера, чтобы узнать конкретную модель. Если у вас другая версия (не v2), то инструкция вам не подойдет, так как файлы прошивок не совместимы между версиями. Если ваш роутер для другого региона (EN/US), то скорее всего тоже не подойдет, и не стоит рисковать.
Также советую сначала прочитать всю инструкцию, скачать необходимые файлы, и лишь потом начинать процесс. Иначе можете оказаться без нужных файлов и без интернета.
Для удобства, я собрал все необходимые файлы в один архив. Там установщик WinSCP, изначальная прошивка для TFTP (уже переименованная), прошивка для загрузки через WinSCP, и настроенный Tftpd64. Но если не доверяете, то в инструкции оставлены оригинальные ссылки, откуда можно скачать то же самое.
Выполняйте перепрошивку на свой страх и риск! Если в этом процессе что-то пойдет не так, то можно остаться без рабочего роутера, и тогда придется как-то восстанавливать его.
А ещё важно помнить, что с текущей прошивкой OpenWrt под этот роутер есть проблема с 5 GHz Wi-Fi. На форумах пишут, что скорость сильно падает. В моём случае это не критично, но если вы рассчитываете на скорость выше 150 мбит по 5 Ghz Wi-Fi, то возможно вы её не получите. Если для вас это важно, то не прошивайтесь.
Инструкция
В основном, я использовал информацию отсюда, но в некоторых моментах у меня возникали проблемы, поэтому я чуть дополнил инструкцию. Инструкция составлена для Windows (на Mac OS у меня не получилось заставить роутер видеть мой TFTP сервер).
Прошивка будет происходить в несколько этапов:
- Сброс текущих настроек роутера на заводские.
- Подготовка сетевого адаптера.
- Загрузка прошивки с «голым» OpenWrt через TFTP.
- Загрузка более актуальной прошивки с OpenWrt с LuCi через SSH.
Сброс текущих настроек
Включаем роутер, зажимаем кнопку Reset, и держим секунд 10. Таким образом мы сбросим текущие настройки до заводских, чтобы точно не возникло проблем. Отключаем роутер.
Подготовка сетевого адаптера
Идём в настройки нашего сетевого адаптера, который будет подключаться к роутеру. В настройках скорости мы должны поставить «100 мбит полный дуплекс», иначе роутер может не подключиться к нашему TFTP серверу на компьютере.

Также в настройках сетевого адаптера нам нужно убрать автоматическое назначение IP адреса, и выставить конкретный — 192.168.0.66. Именно по этому IP адресу роутер будет«стучаться» в поисках TFTP сервера.

Если у вас включен Windows Defender (Брандмауэр Windows), либо любой другой firewall, то отключаем его на время, иначе он может заблокировать входящие запросы от роутера к TFTP.
Настройка и запуск TFTP сервера
Скачиваем TFTP сервер tftpd64 отсюда. Распаковываем куда-нибудь, но на всякий случай без киррилических символов в пути.
Затем берём прошивку с OpenWrt. Я использовал вот эту, так как именно её упоминали в оригинальной инструкции. Если я правильно понял, в ней модифицирован один файл, чтобы прошивка считала наш роутер поддерживаемым. Этот bin файл нужно закинуть в ту же папку, куда распаковали tftpd64. Также необходимо переименовать файл в ArcherC6v2_tp_recovery.bin.
Запускаем tftpd64. Заходим в настройки и на вкладке GLOBAL отключаем всё кроме TFTP сервер.

На вкладке TFTP ставим TFTP Security на None, а в дополнительных настройках оставляем галочки только на Show Progress bar, Translate Unix file names, Bind TFTP to this address (здесь нужно будет выбрать IP 192.168.0.66).

Перезапускаем Tftpd64, в Server interfaces выставляем 192.168.0.66. Оставляем его включенным.

Первая прошивка через TFTP
Подключаем компьютер к роутеру напрямую в разъем LAN1 (в WAN работать не будет), если еще не подключили. Отключаем роутер (через кнопку сзади), на всякий случай вытаскиваем кабель питания на несколько секунд, и затем возвращаем обратно.
Затем зажимаем кнопку Reset и одновременно с этим включаем роутер. Далее кнопку включения можно отпустить, но Reset держим пока не загорится индикатор с WPS (обычно это секунды 3-4). После этого отпускаем Reset.
Если в Tftpd64 в этот момент появился лог, что был передан файл ArcherC6v2_tp_recovery.bin, то значит всё прошло успешно. Если нет, то пробуем повторять снова выключение и включение роутера с кнопкой Reset.
После того, как файл передан, ждем минуты 2, чтобы роутер закончил все процессы. В этот момент идем в настройки сетевого адаптера и возвращаем автоматическое назначение IP адреса.
Спустя пару минут идем в сведения о сетевом подключении, и смотрим IP адрес основного шлюза. У меня это был 192.168.1.1, но у вас может быть 192.168.0.1. Запоминаем адрес.
На данном этапе в роутере уже будет установлена OpenWrt, но так как по умолчанию в ней нету веб-интерфейса, вы не сможете зайти в админку, как делали это на стоковой прошивке. Перед этим нужно установить поверх еще одну прошивку с OpenWrt, где установлен веб-интерфейс LuCi.
Вторая прошивка через WinSCP
Скачиваем WinSCP отсюда. Он нужен для того, чтобы закинуть файл с прошивкой сразу в файловую систему роутера, и оттуда же запустить процесс установки прошивки.
Устанавливаем WinSCP, запускаем, и подключаемся к 192.168.1.1 (или к другому, если у вас основной шлюз отличался). В качестве логина и пароля будет root. File protocol указываем SCP.

Когда подключились, выходим в корень файловой системы, и заходим в папку /tmp. Перекидываем туда файл с полной прошивкой, который можно взять здесь (из архива берем только файл openwrt-ath79-generic-tplink_archer-c6-v2-squashfs-sysupgrade.bin, его и кидаем на роутер).
Когда файл будет загружен, нам нужно открыть терминал в WinSCP через Commands -> Open Terminal, и выполнить в нём следующую команду:
mtd -r write /tmp/openwrt-ath79-generic-tplink_archer-c6-v2-squashfs-sysupgrade.bin firmware

После выполнения команды ждем минуты 2-3, и пробуем зайти в веб-интерфейс по адресу http://192.168.1.1 (опять же, подставить другой IP, если отличается). Если всё получилось, то вас встретит веб-интерфейс Luci.

Вместо заключения
Готово, вы восхитительны!
С OpenWrt у роутера появляется гораздо больше функционала (установка блокировщика рекламы, VPN, ретрансляция и прочие крутые штуки). Но нужно быть аккуратным, так как OpenWrt не защитит вас от кривых настроек, и вполне можно что-то сломать вплоть до потери доступа к админке.
А если кто-то еще помнит с чего я начал запись, мне нужно было подключить роутер по Wi-Fi к уже существующей сети, и «раздать» с неё интернет по Ethernet кабелю. Собственно, с OpenWrt я смог решить данную задачу. Для тех, кому интересно, делал по этой инструкции.

















