Как прошить LEDE, как с LEDE вернуться на сток.

Преамбула

Раздел nand флеш памяти ubi имеет разное разбиение на разделы (volumes) на стоковой прошивки и в lede. Поэтому переходы между прошивками немного сложнее, чем для других роутеров.

Прошивка LEDE

Более подробную и дополнительную информацию о прошивках читайте на форуме 4pda.

Внимание!

До сборки 1283 файлы с прошивками назывались lede-rt-.... Начиная со сборки 1283 файлы называются openwrt-r...... Откат с прошивок openwrt на lede описан ниже и осуществляется специальным способом.

Вариант 1 (выполняем два этапа в ручном режиме)

(1) Скачайте с http://lede-ac58u.zyxmon.org/firmware/ две прошивки: openwrt-r...-factory.trx (для первого этапа) и openwrt-r...-sysupgrade.tar (для второго этапа). Прошейте ...factory.trx через web интерфейс заводской прошивки стандартным способом. Теперь нам нужно зайти по ssh на роутер (ip после прошивки 192.168.1.1, пользователь root, пароля нет) и удалить раздел (ubi volume) с именем jffs2. В сессии ssh проверьте не смонтирован ли этот раздел, т.к. это может помешать удалению jssf2. Если команда mount содержит строку с /dev/ubi0_5 on /mnt/ubi0_5... размонтируйте раздел командой umount /mnt/ubi0_5. Удалите раздел jffs2 командой ubirmvol /dev/ubi0 -N jffs2. Команда должна быь выполнена без ошибок. Если раздел jffs2 останется, прошивка lede не сможет сохранять настройки. Проверить наличие раздела jffs2 можно командой ubinfo -a.
(2) Зайдите на роутер по http (ip 192.168.1.1, пользователь root, пароля нет) и обновите через раздел меню Система прошивку. Установите openwrt-r...-sysupgrade.tar. После перезагрузки у Вас будет роутер с последней прошивкой LEDE. Периодически проверяйте папку с прошивкой по ссылке и используйте файл openwrt-r...-sysupgrade.tar для обновления.

Вариант 2 (автоматический переход в один этап с последующим обновлением)

Скачайте прошивку stock2lede.trx (идею создания такой прошивки принадлежит dullish с форума 4pda.ru). Эта прошивка автоматически выполнит операции, описанные в предыдущем варианте, но прошивка не будет последней. Время прошивки до 6-10 минут (два этапа, два раза прошивается автоматически). После прошивки зайдите на роутер по http (ip 192.168.1.1, пользователь root, пароля нет) и обновите через раздел меню Система прошивку. Установите openwrt-r...-sysupgrade.tar с http://lede-ac58u.zyxmon.org/firmware/. После перезагрузки у Вас будет роутер с последней прошивкой LEDE/OpenWrt. Периодически проверяйте папку с прошивкой и используйте файл openwrt-r...-sysupgrade.tarдля обновления.

Вариант 3 (с использованием кабеля USB-UART)

Этот вариант для профессионалов. Потребуется разобрать роутер и подключить его к компьютеру с помощью (usb-uart). Потребуется файл с расширением itb. Подробности на форуме 4pda.

Откат с прошивок openwrt на lede.

Откат со сборки 1283 (и последующих) на сборки до 1283 (Откат с прошивок openwrt... на lede...) можно сделать только через консоль ssh (putty). Для этого переименуйте файл lede.....sysupgrade.tar в lede.tar (нужно имя покороче, любое). Закиньте этот файл в папку tmp на роутере. Зайдите по ssh на роутер и выполните sysupgrade -F /tmp/lede.tar. Флаг -F (force) нужен, т.к. в проекте OpenWrt ,был изменен способ board detection и новая прошивка считает старую сделанной для другого роутера. Все остальные прошивки: openwrt->openwrt, lede->openwrt можно делать через web (морду). Вот пример скачивания (сразу переименовываем) и отката прошивки через ssh

      
root@LEDE:~# wget http://lede-ac58u.zyxmon.org/archive/lede-rt-ac58u-r1057-ed83357-ipq806x-RT-AC58U-squashfs-sysupgrade.tar -O /tmp/lede.tar
Connecting to lede-ac58u.zyxmon.org (87.239.250.123:80)
lede.tar             100% |*****************************************************************|  6680k  0:00:00 ETA
root@LEDE:~# syspgrade -F /tmp/lede.tar
      
    

Небольшое заключение.

(1) Для последней прошивки создан дополнительный репозиторий с модулями ядра. Если требуемые Вам пакеты opkg включают эти модули kmod*.ipk, то их можно будет установить только на последнюю версию.
(2) С помощью usb-uart можно восстановить роутер практически из любого состояния, если вы ошибетесь с операциями по прошивке.


Возврат на сток (на заводскую прошивку)


Для возврата на заводскую прошивку нам необходимо удалить разделы (ubi volumes) на флеше, которые отличаются по размеру (или названию) от заводской прошивки. После перезагрузки загрузчик (бутлоадер) U-Boot автоматически пересоздаст разделы для заводской прошивки и переведет роутер в режим восстановления. Для удаления разделов можно написать специальный скрипт, но делать это лень. Воспользуемся системным скриптом sysupgade с флагом -F (force), но вместо прошивки передадим скрипту произвольный файл (мусор). В этом случае sysupgrade удалит три раздела linux, rootfs и rootfs_data. Поскольку в качестве параметра вместо прошивки задан "мусор", требуемые размеры под новое ядро (размер раздела linux) и файловую систему (rootfs) определить нельзя, скрипт sysupgrade новые разделы не создает и перезагружает роутер. Для того, чтобы избежать bootloop (циклическую перезагрузку), удалим еще и раздел linux2 с копией ядра lede. Итак в консоли (ssh) неободимо выполнить две команды: (1) ubirmvol /dev/ubi0 -N linux2 (удаляем раздел с копией) и  (2) sysupgrade -F /bin/busybox (в качестве мусора выбрали бинарник busybox). После этого роутер перезагрузится и перейдет в режим восстановления. Восстановите роутер с помощью асусовской утилиты rescue или же с помощью tftp клиента. Назначьте на компе с утилитой или tftp клиентом ip 192.168.1.70. Если восстановление не проходит, попробуйте выключить и включить роутер. Или поменять компьютер. В режиме восстановления драйвер ethernet роутера не очень надежен, не всегда поднимает линк и может быть несовместим с некоторыми сетевыми картами компов.