OpenWRT.su

Open.Wireless.Super and LEDE

Сборка своей прошивки LEDE из исходников

Сборка своей прошивки LEDE из исходников

Во многих случаях решить поставленную задачу можно только путем сборки прошивки LEDE из исходников со включенными под ваши требования пакетами. Особо остро данная необходимость проявляется, когда вы пытаетесь запихнуть новую версию прошивки в свой старый роутер с 4 мб rom памяти. О том, как собрать свою прошивку LEDE OpenWRT из исходных кодов под ваше устройство, а также как исключить из сборки ненужные вам пакеты и будет эта статья. Мы разделим весь процесс на несколько этапов, чтобы вы всегда знали на каком именно у вас возникает проблема и требуется совет. 

1. Подготовка операционной системы

Для того, чтобы собрать LEDE из исходников нужна Linux машина. Ну или хотя-бы виртуальная, если под рукой нет настоящей. Oracle VM VirtualBox идеально подойдет для этих требований, устанавливайте виртуальную машину хоть в Windows 10, скачивайте любимый Linux дистрибутив и устанавливайте в нее. Далее нужно установить необходимые средства компиляции, которые потребуются для корректной сборки прошивки Lede. Я собираю прошивки в Ubuntu64 из под Oracle VM VirtualBox. Для 64 битной Ubuntu команда устанавливающая набор инструментов выглядит так:

sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev 

Для других дистрибутивов Linux список необходимых к установке инструментов системы для последующей сборки прошивки LEDE перечислен здесь

2. Получение исходных кодов LEDE

git clone https://github.com/openwrt/openwrt.git

Или скачайте архив с исходными кодами по адресу https://github.com/openwrt/openwrt нажав на кнопку  Download ZIP и разархивируйте его в вашу в домашнюю папку. 

Сборка своей прошивки LEDE из исходников

3. Обновление и получение списка доступных пакетов LEDE

Переходим в папку с исходными кодами. Запускаем терминал. Сначала обновляем весь список доступных пакетов 

./scripts/feeds update -a

Показать корректный вывод команды make ./scripts/feeds update -a

Подготавливаем все пакеты к возможности их выбора и установки

./scripts/feeds install -a

Показать вывод команды make ./scripts/feeds install -a

4. Выбираем исходную архитектуру, модель и версию железа роутера

make menuconfig

В пункте Target System выбираем архитектуру на которой построен ваш роутер. 

Сборка своей прошивки LEDE из исходников

В пункте Target Profile ищем и выбираем названием вашего роутера с аппаратной версией железа в нем. Могут быть версии V1, V2 и т.д.

Сборка своей прошивки LEDE из исходников

После чего сохраняем текущую конфигурацию Save и выходим Exit. Далее пробегаемся по зависимостям пакетов от архитектуры железа:

make defconfig

Сборка своей прошивки LEDE из исходников

Конфигурация автоматически сохранится. Можно переходить к следующему шагу. 

5. Установка и компиляция инструментов сборки

Для сборки прошивки OpenWRT/LEDE также нужны свои встроенные в исходный код инструменты компиляции. Как правило они собираются и устанавливаются один раз, после чего сборка прошивок с разными пакетами происходит гораздо быстрее. Вводим команду и ждем результата:

make tools/install

Показать примерный корректный вывод команды make tools/install

make toolchain/install 

Показать примерный корректный вывод команды make toolchain/install

6. Выбор пакетов входящих в состав прошивки

Ну теперь можно перейти и к так называемой кастомизации. 

make menuconfig

В OpenWRT/LEDE расширения есть обязательные - это которые включены в базовый набор и являются основопологающими. Вырезать и отключить такие как правило стандартными средствами нельзя. В меню они помечены звездочкой между тире -*-. Их надо принять как должное и не заморачиваться

Встроенные пакеты LEDE

В случае, когда нужно встроить какой-нибудь пакет в вашу прошивку, нужно поменить его звездочкой используя клавишу пробел или Select. Пакет будет установлен в саму прошивку роутера и будет доступен в OpenWRT/LEDE сразу после прошивки.

Пакет LEDE будет установлен в прошивку

Вы также можете собрать расширение как отдельный пакет, чтобы установить его позже через менеджер OPKG. Такой пакет надо поменить в меню как "M"

собрать расширение как отдельный пакет, чтобы установить его позже

После того, как состав пакетов выбран - сохраняем текущую конфигурацию Save и выходим Exit

7. Сборка прошивки

Если вы любите смотреть как все происходит в режиме реального времени, то для вас команда:

make  V=s

Она будет выводить абсолютно весь ход компиляции. Глаза устанут пытаться что-то уловить. Более понятный вывод результата сборки доступен по команде:

make  V=S

Если у вас многоядерный процессор, то сам процесс сборки можно ускорить таким образом:

make  -jN V=S

Где N - количество ядер вашего процессора + 1 поток. 3,5 и т.д. Процесс займет времени достаточно, чтобы успеть сходить выпить кофе или поиграть с котом.

После успешной сборки прошивки, в папке исходныекоды/bin/ вы сможете найти готовые файлы для последующей заливки на ваш маршрутизатор. Файл со словом factory предназначен для прошивки роутера, на котором еще стоит стандартная прошивка производителя, а файл содержащий sysupgrade может быть залит на роутер, на котором уже установлена OpenWRT / LEDE операционная система. 

Сборка своей прошивки LEDE из исходников

Надеюсь данное руководство помогло вам собрать свою первую прошивку OpenWRT LEDE для вашего роутера.

Комментарии  

Minih
+1 # Minih 16.02.2018 21:59
делаю все по инструкции, нету моего роутера mr3240 в списке как у вас
Ответить | Ответить с цитатой | Цитировать
Wrtman
+4 # Wrtman 17.02.2018 20:00
В последних trunk версиях LEDE/OPENWRT для выбора роутера с маленьким объемом памяти нужно в меню Subtarget выбрать пункт With small hand flash чтобы затем он появился в Target Profile
Ответить | Ответить с цитатой | Цитировать
алексей
0 # алексей 07.03.2018 18:31
делаю по инструкции но моего модуля skw92a нет,прошивал его другими прошивками других роутеров но оперативную память 512 мегабайт ни одна неувидела флешка spi 64 мегабайта,подскажите как выйти из положения.что делать как быть?
Ответить | Ответить с цитатой | Цитировать
Linux_Addict
0 # Linux_Addict 07.03.2018 19:54
че за skw92a? Китайская NoName балалайка?
Ответить | Ответить с цитатой | Цитировать
Wrtman
+2 # Wrtman 07.03.2018 20:03
skw92a построен на платформе MT7628. Поэтому Target System должен быть Mediatek Ralink MIPS, а Subtarget MT7628 based boards, Target Profile Default Profile.
Ответить | Ответить с цитатой | Цитировать
RAFA
-1 # RAFA 09.03.2018 18:22
Спасибо, за тему
И хотел спросить как вырезать firewall из luci
Или по умолчанию выкл его
А так в менюконфиг она убирается буквой (n) но при добавлении luci (y) становится не изменяемым __
Ответить | Ответить с цитатой | Цитировать
Wrtman
+1 # Wrtman 09.03.2018 19:49
Luci-app-firewall встроен в базовую часть Luci, таким образом он не может быть исключен из сборки, если вы хотите поставить Luci. Как вариант, Собирайте прошивку без Luci и без базового пакета firewall. Потом устаналивайте из репозитария Luci игнорируя доустановку зависимых пакетов
Ответить | Ответить с цитатой | Цитировать
Wrtman
+1 # Wrtman 09.03.2018 19:52
Менюконфиг даст возможность выпилить firewall только если не будите ставить Luci, которая за собой пытается тянуть Luci-app-firewall, которая не работает без пакета base-system -> firewall
Ответить | Ответить с цитатой | Цитировать
RAFA
0 # RAFA 10.03.2018 18:12
Спасибо, а что бы ты вырезал с прошивки еще?
Ответить | Ответить с цитатой | Цитировать
Wrtman
+1 # Wrtman 10.03.2018 18:23
поддержку IPv6 если не нужна, если не планируешь доустанавливать больше никакие пакеты то можно отказаться от менеджера пакетов opkg, в зависимости от способа выхода в интернет вырезать ненужные модули ядра kmod-ppp-*. Все зависит под какие нужны сборка
Ответить | Ответить с цитатой | Цитировать
RAFA
+1 # RAFA 10.03.2018 18:31
Еще можно удалить:
Отключение Debug-инфо и DebugFS
Данные инструменты абсолютно бесполезны большинству пользователей, а существует для разработчиков ПО.

Kernel modules
wireless drivers
[*] kmod-mac80211
[ ] export mac80211 internal in DebugDS
Global build settings
[ ] Compile the kernel with Debug FileSystem enabled
[ ] Compile the kernel with debug information

Теперь после сборки освободится еще 64 kb места для установки своих пакетов прямо в прошивку.
Ответить | Ответить с цитатой | Цитировать
Иван
-3 # Иван 20.04.2018 15:22
Если роутера нет в списке, попробуйте при скачивании исходных кодов слить последнюю версию
git clone git://github.com/openwrt/openwrt.git -b v17.01.4
Ответить | Ответить с цитатой | Цитировать
Тёма
0 # Тёма 06.05.2018 08:37
А как сделать прошивку под роутер которого еще нет? :sigh:
Ответить | Ответить с цитатой | Цитировать
Иван
0 # Иван 06.05.2018 21:30
никак, должна быть включена поддержка разработчиками... Хотя бывают случаи когда прошивка от одного роутера подходит к другому, если они на одном железе сделаны.
Ответить | Ответить с цитатой | Цитировать
NinjaNEt
0 # NinjaNEt 27.06.2018 23:46
Нет поддержки TP-LINK MR3020 с версией 3.0. Как собрать свою прошивку под его начинку? От предыдущих версий отличается железкой полностью
Ответить | Ответить с цитатой | Цитировать
Wrtman
0 # Wrtman 28.06.2018 22:57
Есть альтернатива от ребят из pulpstone pulpstone.pw/beta-tester/ramips-mt76x8/
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий

Если вы хотите получать сообщения c ответами на ваши комментарии - то укажите свой настоящий e-mail. Если же вы тут проездом, чтобы оставить комментарий укажите в поле email no@openwrt.su