Пример установки OpenWrt на роутер Xiaomi Redmi AX6000 из под Linux

Пример установки 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, т.к. это топ за свои деньги разумное соотношение цены и производительности🚀.

Вот некоторые его характеристики:

ModelRedmi AX6000
CPUMediaTek MT7986A
CPU MHz2000
CPU Cores_numcores4
Flash MB128
RAM MB512
WLAN HardwareMediaTek MT7976GN, MediaTek MT7976AN
Ethernet 1Gbit ports4
Источник

Покупал я роутер на одном из маркетплейсов несколько месяцев назад за 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 адресов… но это уже другая история😎.

Спасибо, что читаете. Добавляйтесь в телегу✈️, дабы не пропустить новые материалы на сайте📝.

Всех благ!

Используемые материалы

Подписаться
Уведомить о
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии