Обновить

Как создать кастомную OpenWRT-прошивку без ImageBuilder за 1 вечер

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров7.2K
Всего голосов 15: ↑15 и ↓0+19
Комментарии13

Комментарии 13

Очень интересно было бы послушать про модификацию стоковых прошивок, либо про создание OpenWRT прошивки для не поддерживающегося(неизвестного) официально устройства. Неужели OpenWRT не проверяет никаких контрольных сумм/структур при апгрейде?

Ох хотел сейчас быстро ответить. Но там столько вариантов и развилок в создании прошивок для стоковых устройств. Сначала определяем вообще есть ли поддержка чипсета модели если нет то собрать уже будет крайней сложно, я например не справлюсь. Если есть то смотрим дальше как можно вытащить данные со стока и как потом засунуть обратно, есть ли возможность SSH, TFTP или UART в зависимости от этого действуем дальше. Получаем информацию о железе, создаем DTS файл, создаем профиль и после этого уже можно будет достаточно просто делать прошивку используя опенвертешный ImageBuilder.

И кстати да. Стоковые производители часто подписывают свои прошивки поэтому и тут тоже приходится поплясать с бубном для обхода... В общем тема большая, наверное замахнусь еще на одну статью.

Неужели OpenWRT не проверяет никаких контрольных сумм/структур при апгрейде?

Там впереди ядра есть заголовок uImage длиной 64 (вроде) байта. Там crc самого заголовка и ядра. И размер образа. Если всё это не меняется, то заголовок остаётся корректным. Правда, более новые устройства используют другой формат — fit. Там уже так просто склеить не получится

Что-то я не соображу. Если прошивки OpenWrt для этих роутеров нет как тогда поставили OpenWrt. Вы же берете роутер с уже установленным OpenWrt, правильно?

Все правильно. Производители используют OpenWrt и поставляют роутеры именно с этой операционкой но часто не спешат делать вклад в сообщество и публиковать прошивки или dst. Для них, зная какое железо используется, для популярных чипсетов, нет проблем собрать прошивку.

Подождите, что-то я совсем запутался. Зачем продавцам покупать роутер с опенврт и перепрошивать на на опенврт? И зачем покупателям покупать дороже перепрошитый с опенврт на опенврт?

продавцам хотелось бы получить какой-то упрощённый интерфейс настройки

А какой кроме люси есть упрощенный интерфейс настройки опенврт?

Зачем продавцам покупать роутер с опенврт и перепрошивать на на опенврт?

Ну как возможный вариант - существует например GL-inet'овский GL-XE300. Штатная прошивка там на базе OpenWrt но вроде 18-й (при этом до люси еще добраться надо).

Если хочется последнюю - надо шить нормальную openwrt. Но правда в случае XE300 все проще чем в статье (там нормальная поддержка есть).

У продавца задача кастомизировать OpenWrt под себя. Например, свой логотип разместить на странице настроек роутера, или сразу развернуть какой-то преднастроенный VPN.

А какой кроме люси есть упрощенный интерфейс настройки опенврт?

На таких роутерах встречается много самописных. Они с минимальной функциональностью но достаточно простые. По сути предлагают только интерфейс создания беспроводных сетей. Но наверное это как раз то что нужно широкой аудитории неподготовленных пользователей.

По сути, это склейка разделов mtd7 и mtd8 — kernel и rootfs.

Наоборот, раздел firmware виртуально разделяется на kernel и rootfs. Там в dmesg об этом даже запись есть

В остальном всё верно, но очень базово. Прежде чем пользоваться этим гайдом надо проверить, есть ли впереди ядра заголовок uImage (начинается с магического числа 0x27051956). Образ может быть в формате FIT (магическое число 0xD00DFEED). Там эти трюки не сработают.

Там и помимо этого еще может быть куча нюансов. Например, предложенный способ не подойдет для файловой системы UBIFS, а сейчас в новых китайский роутерах часто она используется. Проблема обозначится в момент анализа binwalk'ом И там sysupgrade образ уже так просто не соберешь. По-крайней мере я не знаю как. Когда было нужно просто ubi раздел перезаписывал.

И там sysupgrade образ уже так просто не соберешь. По-крайней мере я не знаю как.

Люди из интернета советуют такое

Ну да. Я как раз так и делал. Сначала монтируешь меняешь что нужно, а потом возвращаешь обратно типа как они советуютubiformat /dev/mtd0 -f image.ubi -O 2048 Но это прошивка отдельного раздела. А хотелось бы получить именно sysupgrade образ для удобства распространения.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации