Xiaomi Router 3G: прошивка LEDE/OpenWrt (+возврат на stock через Breed)

Xiaomi Router 3G: прошивка LEDE/OpenWrt (+возврат на stock через Breed)

JustACat


Все, что вы делаете, вы делаете на свой страх и риск.
Я никакой ответственности за ваши действия не несу!


0.Новости

02.01.2018 (по крайне мере новость на сайте появилась в этот день) LEDE решили объединиться с OpenWrt. Если кто не в курсе, LEDE - это fork OpenWrt, то есть ее ответвление. Долгое время LEDE существовала как самостоятельный проект. Но руководством было принято решение о слиянии. Чем это грозит, хорошо это или плохо - я судить не возьмусь. Можете сами почитать подробнее по ссылке выше.
Суть в том, что с этого момента упоминания LEDE и OpenWrt можно считать равнозначными.


1.Подготовка

По ходу этого руководства я буду ссылаться на предыдущее "прошивка PandoraBox". Для начала ознакомьтесь с п.1 из него. А лучше прочтите полностью. Если что-то будет не ясно в этом руководстве, скорее всего об этом упоминается в предыдущем.

Если вы только получили роутер и ничего с ним не делали, делаем пункт 2.a из этого руководства. И затем сразу переходим на пункт 3 (пункт 2.b пропускаем).

Если у вас уже было установлено что-то, отличное от стока, вам придется сначала вернуться на сток developer. По крайней мере только так мне удалось прошить LEDE полностью (чтобы она работала без ошибок). Делаем пункт 2.b из этого руководства (пункт 2.a пропускаем), если у вас был прошит Breed. Если же Breed вы не прошивали, то вам придется самостоятельно вернуться на сток (developer версию с ssh доступом) другими способами. Поискать информацию можно в теме на 4pda. После возврата на сток dev, переходим к пункту 3 из этого руководства.


2.a.Начальная настройка и проверка роутера

Вам нужно обязательно выполнить пункты с 2 по 4 включительно.

Дополнительно я советую прошить загрузчик Breed (пункт 6 и, по желанию, пункт 7). Хотя для прошивки LEDE это не обязательно. Но с ним, мне кажется, безопаснее в плане восстановления в случае кирпича.


2.b.Возврат на сток через Breed:

  • Ищем файл stock developer прошивки, который вы качали, чтобы получить SSH доступ (либо качаем его заново), в моем случае это был файл:
    miwifi_r3g_firmware_c2175_2.25.122.bin (отсюда).
  • Грузимся в Breed.
  • Если на ПК есть интернет, включаем перевод на английский (хотя можно и без перевода тыкнуть).
  • Тыкаем в левом меню второй сверху пункт.
  • На открывшейся страничке первая из двух закладка.
  • На ней отмечаем среднюю из трех галочек и рядом с ней выбираем скачанный ранее .bin файл, в общем, в соответствии с картинкой (прошивка во второй раздел, без перезагрузки):
  • Жмем кнопку "Upload" (или как там она по-китайски), попадаем на такую страничку:
  • Вместо "PandoraBox-ra..." будет имя вашего .bin файла, например, "miwifi_r3g_firmware_c2175_2.25.122.bin". Ну и MD5 сумма тоже должна совпадать с таковой у вашего .bin файла.
    Проверяем, если все верно - жмем единственную кнопку нижнюю. Начинается процесс прошивки:
  • Когда ползунок прошивки дойдет до конца, роутер должен будет вернуться обратно в Breed, т.к. мы в нем не ставили галочку напротив автоперезагрузки.
  • Теперь нам надо повторно прошить прошивку но в первый раздел.
    Тыкаем в левом меню второй сверху пункт.
  • На открывшейся страничке первая из двух закладка.
  • На ней отмечаем среднюю из трех галочек и рядом с ней выбираем скачанный ранее .bin файл, в общем, в соответствии с картинкой (прошивка в первый раздел, с перезагрузкой):
  • Жмем кнопку "Upload" (или как там она по-китайски), попадаем на такую страничку:
  • Вместо "PandoraBox-ra..." будет имя вашего .bin файла, например, "miwifi_r3g_firmware_c2175_2.25.122.bin". Ну и MD5 сумма тоже должна совпадать с таковой у вашего .bin файла.
    Проверяем, если все верно - жмем единственную кнопку нижнюю. Начинается процесс прошивки:
  • Когда ползунок прошивки дойдет до конца, нужно еще немного подождать.
  • Роутер перезагрузится. И должна будет загрузиться стоковая dev прошивка. Заходим с ПК через браузер в настройку роутера http://192.168.31.1 - и проходим начальную настройку (пункт 2).

После этого у вас должен остаться SSH доступ (если вы его получали) с тем же паролем, что у вас был (или тем, что вы сами ставили), когда получали SSH доступ.


3.Прошивка LEDE

К данному пункту у вас на роутере должен стоять stock developer и должен быть получен (должен работать) ssh доступ. Breed + бэкапы - по желанию, но настоятельно рекомендую!

Важно: роутер должен иметь доступ в интернет на WAN порту по DHCP - то есть без настроек дополнительных. Проще всего этого добиться, подключив WAN порт Xiaomi роутера к одному из LAN портов вашего старого роутера (который конечно же должен все еще работать и раздавать интернет). Если у вас на старом роутере настроена привязка или фильтрация по MAC, ее лучше отключить, хотя бы на время.
Это необходимо, т.к. мы будем ставить LEDE из снапшотов, она не имеет в себе LuCI (web-интерфейс) и по-умолчанию настроена получать интернет по DHCP. Подробнее почитать про это можно вот тут: https://lede-project.org/docs/guide-quick-start/developmentinstallation#installing_lede_development_snapshots - совсем немного.

Так же рекомендую ознакомиться со страничкой по Router 3G на проекте LEDE: https://git.lede-project.org/?p=source.git;a=commit;h=6e283cdc0da25928f8148805ebef7f8f2b769ee8

Приступим:

  • Если вы все еще в Breed - вам нужно перезагрузить роутер, чтобы он загрузился в сток-девел.
  • Скачиваем отсюда: http://downloads.lede-project.org/snapshots/targets/ramips/mt7621/ - файлы "mir3g-squashfs-kernel1.bin" и "mir3g-squashfs-rootfs0.bin".
    Файлы могут скачаться под другими названиями, тогда их необходимо переименовать, либо изменить их имена в команде ниже. В общем, проверьте соответствие имен скачанных файлов путям в команде "mtd write".
  • Кладем скачанные файлы в корень чистой флешки (fat32), советую проверить хэш-сумму скачанного файла и сравнить с указанной в столбике sha256sum.
  • Флешку в роутер.
  • Заходим на роутер по ssh (на стоке: 192.168.31.1:22).
  • Выполняем по очереди четыре команды:
mtd write /extdisks/sda1/mir3g-squashfs-kernel1.bin kernel1
mtd write /extdisks/sda1/mir3g-squashfs-rootfs0.bin rootfs0
mtd erase kernel0
reboot
  • После этого роутер перезагрузится и на нем будет работать LEDE.
    Переходим к следующему пункту данного руководства.


4.Начальная настройка LEDE после установки из снапшотов

Еще раз обращу внимание, что первоисточник информации здесь.

  • Подключаемся к роутеру по SSH.
    Он будет доступен по IP 192.168.1.1. Логин root без пароля.
  • Первым делом я рекомендую установить достаточно сложный пароль для root (будьте аккуратны, в linux пароли не видны на экране, когда их набираешь). Это делается с помощью команды:
passwd
  • Далее я рекомендую перезагрузить роутер (команда reboot) и снова зайти на него по ssh, чтобы проверить, установился ли новый пароль.
  • Далее выполняем по очереди следующие две команды (источник):
opkg update
opkg install luci

Или (если хотим LuCI с поддержкой ssl):

opkg update
opkg install luci-ssl

Чтобы браузер не ругался на сертификат, при подключении к LuCI по SSL, можно сделать то, что описано в этой статье (проверял, работает).

  • Если все прошло удачно, то после их выполнения на роутере появится web-панель управления LuCI. Открываем ее через браузер: http://192.168.1.1
    Логин - root, пароль - который вы установили командой passwd.

Далее все настройки можно осуществлять через web-панель. Руководствуйтесь при этом документацией от самой LEDE: https://lede-project.org/docs/user-guide/start#newbee_section - а так же любыми руководствами из сети по запросам "LEDE" или "OpenWrt".

NB: если у вас будут проблемы с WiFi на LEDE, попробуйте в настройках WiFi жестко задать канал. По-умолчанию стоит "auto", т.е. канал должен выбираться автоматически. Но в этом механизме все равно ничего хорошего нет.
Лучше поставить на телефон программу вроде WiFi Analyzer, с помощью нее проверить обстановку вокруг и выбрать наименее загруженный соседскими сетями канал.

Еще могу порекомендовать убавить мощность WiFi передатчика до такой, которой будет достаточно для покрытия всей площади, на которой вы пользуетесь WiFi. Это справедливо для любых роутеров и с любыми прошивками.

После прошивки LEDE разметка приняла следующий вид:

dev:  size  erasesize name
mtd0: 00080000 00020000 "Bootloader"
mtd1: 00040000 00020000 "Config"
mtd2: 00040000 00020000 "Bdata"
mtd3: 00040000 00020000 "Factory"
mtd4: 00040000 00020000 "crash"
mtd5: 00040000 00020000 "crash_syslog"
mtd6: 00040000 00020000 "reserved0"
mtd7: 00400000 00020000 "kernel_stock"
mtd8: 00400000 00020000 "kernel"
mtd9: 07580000 00020000 "ubi"


*.Дополнительные материалы:


Всем бобра и успешных перепрошивок!