Пример установки OpenWrt на роутер Xiaomi Redmi AX6000 из под Linux
Приветствую!
В этой заметке расскажу, как я выбирал роутер и устанавливал на него основанную на Linux прошивку – OpenWrt🧑💻. Все действия выполнялись в среде дистрибутива LMDE6 (Debian 12).
Подписывайтесь на наш телеграм @r4ven_me📱, чтобы не пропустить новые публикации на сайте😉. А если есть вопросы или желание пообщаться по тематике – заглядывайте в Вороний чат @r4ven_me_chat🧐.
⚠️Обращаю ваше внимание, что данная статья — это мой частный пример установки OpenWrt на роутер. При установке кастомных прошивок, всегда есть вероятность получить “кирпич” вместо устройства. Помните, что любые действия, основанные на информации из статьи, вы осуществляете на собственный риск и ответственность. Спасибо за понимание.
Предисловие
Недавно у меня возникла необходимость в замене роутера, т.к. старый не удовлетворял потребности в плане функциональности. Одна из таких – возможность подключения роутера к защищенной сети по протоколу OpenConnect. Мне было известно, что такой функционал имеется у прошивки OpenWrt😎.
OpenWrt — это open source операционная система на базе Linux, разработанная для работы на роутерах и других встраиваемых устройствах. В отличие от стандартных прошивок, OpenWrt предоставляет полноценную файловую систему с возможностью установки и управления пакетами, что позволяет изменять и расширять функциональность устройства.
openwrt.org
Основная причина выбора данной прошивки — конечно же Linux под капотом🔥.
Что касается выбора роутера для OpenWrt, то тут я сильно не заморачивался. Быстрый поиск в гугле привел меня на статью с Habr, где приводится перечень устройств с подробным описанием, которые умеют работать с этой прошивкой. Выбор пал на роутер от Xiaomi: Redmi AX6000, т.к. это топ за свои деньги разумное соотношение цены и производительности🚀.
Вот некоторые его характеристики:
Model | Redmi AX6000 |
CPU | MediaTek MT7986A |
CPU MHz | 2000 |
CPU Cores_numcores | 4 |
Flash MB | 128 |
RAM MB | 512 |
WLAN Hardware | MediaTek MT7976GN, MediaTek MT7976AN |
Ethernet 1Gbit ports | 4 |
Покупал я роутер на одном из маркетплейсов несколько месяцев назад за 7400 р. Сейчас его ценник несколько подрос (в районе 9000 р.), тем не менее эта модель остается хорошим выбором в своем сегменте.
Из минусов: роутер выпускался для Китайского рынка, соответственного его родная прошивка на китайском языке🤯. А еще продавец может не положить вам адаптер для европейской розетки, его придется докупить💰:
Адрес веб интерфейса роутера по умолчанию:
http://192.168.31.1
Найти какие-либо пункты мне было проблематично🤕.
Подготовка
Установку OpenWrt на купленный роутер я выполнял с помощью скриптов проекта на GitHub – XMiR-Patcher. Данный проект предназначен для прошивки роутеров от Xiaomi альтернативной прошивкой, такой как OpenWrt.
Коротко про основные скрипты из репозитория:
install_bl.py
— отвечает за установку загрузчика (bootloader) на роутер. В зависимости от модели устройства, скрипт выбирает соответствующий загрузчик и записывает его в нужный раздел памяти;install_fw.py
— выполняет установку новой прошивки на устройство;create_backup.py
— создает резервную копию текущей прошивки роутера;install_ssh.py
— активирует доступ по SSH на устройстве для удаленного управления;read_info.py
— собирает информацию об устройстве, такую как модель, версия прошивки и другие технические детали;- и др.
Если что, то XMiR-Patcher работает как на Linux, так и MacOS с Windows. Требуется интерпретатор языка Python🐍 версии 3.8 и выше.
Приступаем к подготовке. Открываем терминал и устанавливаем систему контроля версий git
и модуль python
для работы с виртуальным окружением:
sudo apt install git python3-venv
Теперь клонируем файлы репозитория xmir-patcher и выполняем настройку виртуального окружения (venv):
git clone https://github.com/openwrt-xiaomi/xmir-patcher
cd xmir-patcher
python3 -m venv venv
source ./venv/bin/activate
python3 -m pip install -r requirements.txt
git clone https://github.com/openwrt-xiaomi/xmir-patcher
— клонирует репозиторийxmir-patcher
с GitHub в текущую папку;cd xmir-patcher
— переходит в каталог с клонированным проектом;python3 -m venv venv
— создает виртуальное окружение Python (изолированную среду для зависимостей) в папкеvenv
;source ./venv/bin/activate
— активирует виртуальное окружение, после этого все установленные пакеты будут храниться вvenv
, а не в основной системе;python3 -m pip install -r requirements.txt
— устанавливает все зависимости, указанные в файлеrequirements
(необходимы для работы скриптов прошивки).
Если все прошло гладко, выходим из venv
командой:
deactivate
Теперь необходимо определить последнюю версию OpenWrt, поддерживаемую роутером. В случае с Redmi AX6000, переходим на страницу роутера на сайте OpenWrt и находим строку “Supported Current Rel“. На момент написания статьи это версия OpenWrt 23.05.4:
Узнав версию переходим в раздел загрузок, на страницу нужного релиза:
Тут нас интересует flogic — mediatek:
Если что, вот нужная страница для версии 23.05.4.
На этой странице нам нужна ссылка на файл с именем xiaomi_redmi-router-ax6000-stock-initramfs-factory.ubi:
Скачиваем нужный файл в директорию firmware родительской директории xmir-patcher
с помощью curl
:
curl -fLO https://archive.openwrt.org/releases/23.05.4/targets/mediatek/filogic/openwrt-23.05.4-mediatek-filogic-xiaomi_redmi-router-ax6000-stock-initramfs-factory.ubi \
--output-dir ./firmware/
Подготовка завершена, переходим непосредственно к прошивке⬇️.
Установка OpenWrt
Находясь в директории ./xmir-patcher
запускаем скрипт run.sh
, который должен вызвать интерактивное меню:
./run.sh
Выбираем пункт 1
. Тут нас попросят ввести IP адрес роутера:
1
# адрес по умолчанию
192.168.31.1
Далее выбираем 2
для подключения к устройству и установки эксплойта😱:
2
Скрипт попросит ввести пароль от веб интерфейса роутера, вводим:
Далее скрипт должен активировать SSH сервер на роутере для его дальнейшей настройки:
Возможно стоит выполнить полный бэкап (пункт 4), но я его если честно не делал🫣.
После завершения предыдущего шага переходим к установке файла прошивки из директории firmware, которую мы скачали ранее с помощью curl
. Выбираем пункт 7
:
7
⚠️Ни в коем случае не отключайте питание роутера в момент обновления!
В конце вывода команды вы должны увидеть “The firmware has been successfully flashed” и сообщение об отправке команды перезагрузки роутера через SSH:
В моем случае скрипт вывел сообщение о таймауте ожидания ответа команды перезапуска:
Но роутер успешно перезагрузился и при переходе в веб браузере по адресу роутера (адрес изменился) я увидел уже знакомый интерфейс Luci😌:
http://192.168.1.1
Успешный успех, в моем случае. Не забываем задать пароль администратора.
Установка системных обновлений
Следующим шагом будет установка системных обновления OpenWrt. Для этого переходим страницу, где мы ранее брали прошивку и скачиваем в веб браузере файл с именем xiaomi_redmi-router-ax6000-stock-squashfs-sysupgrade.bin:
Или копируем ссылку и скачиваем через терминал:
curl -fLO https://archive.openwrt.org/releases/23.05.4/targets/mediatek/filogic/openwrt-23.05.4-mediatek-filogic-xiaomi_redmi-router-ax6000-stock-squashfs-sysupgrade.bin
Далее переходим в веб роутера, вот сюда: http://192.168.1.1/cgi-bin/luci/admin/system/flash:
И загружаем файл с обновлениями в разделе Flash new firmware image:
Подтверждаем:
❗️Ни в коем случае не отключайте питание роутера в момент обновления!
Готово:
Установка OpenWrt завершена😌.
Послесловие
Я ожидал более сложного процесса прошивки роутера, а оказалось все довольно просто, ведь бОльшую часть работы сделали скрипты проекта xmir-patcher. После установки OpenWrt я успешно настроил клиентское подключение роутера к серверу OpenConnect, который разворачивал в docker в одной из прошлых статей. Возможно сделаю заметку по этой теме, чтобы самому не забыть. Также настроил выборочную маршрутизацию через OpenConnect по-заданному списку DNS адресов… но это уже другая история😎.
Спасибо, что читаете. Добавляйтесь в телегу✈️, дабы не пропустить новые материалы на сайте📝.
Всех благ!