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
+5 # 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
+1 # Wrtman 07.03.2018 20:03
skw92a построен на платформе MT7628. Поэтому Target System должен быть Mediatek Ralink MIPS, а Subtarget MT7628 based boards, Target Profile Default Profile.
Ответить | Ответить с цитатой | Цитировать
RAFA
-3 # 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
+2 # 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 места для установки своих пакетов прямо в прошивку.
Ответить | Ответить с цитатой | Цитировать
Иван
-4 # Иван 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
+1 # 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/
Ответить | Ответить с цитатой | Цитировать
Василий
0 # Василий 18.10.2019 10:31
А как сделать чтоб в прошивки роутера был сразу включен вайфай.
Ответить | Ответить с цитатой | Цитировать
Владимир
0 # Владимир 10.03.2020 08:54
Добрый день. Куда вложить свои файлы конфигурации: network, wireless, firewall и т.д. для сборки прошивки OpenWrt? Спасибо.
Ответить | Ответить с цитатой | Цитировать
Уставший
0 # Уставший 30.03.2020 12:13
Кто-то знает как лечить такое?

WARNING: Applying padding in /home/host/openwrt/bin/packages/mips_24kc/base/Packages to workaround usign SHA-512 bug!

4 выдачи в гугле и всё [цензура]ня. Это не серьёзно, дроч, которая не работает.
Ответить | Ответить с цитатой | Цитировать
Konstantin
0 # Konstantin 13.06.2020 14:02
Xiaomi Mi WiFi Router 3G v1. Nand сдох. Перешел на SPI(NOR)16Mb. Как при сборке учесть изменение типа/размера флешки??????????
Ответить | Ответить с цитатой | Цитировать
Иван
0 # Иван 14.06.2020 18:50
Цитирую Konstantin:
Xiaomi Mi WiFi Router 3G v1. Nand сдох. Перешел на SPI(NOR)16Mb. Как при сборке учесть изменение типа/размера флешки??????????

Отчего сдох? Стоит ли бояться всем владельцам этих роутеров.
Ответить | Ответить с цитатой | Цитировать
guemplen
0 # guemplen 31.08.2020 13:43
Всем добра!
У меня роутер Tp-Link mr3020 v1 Atheros AR9331 память заменил на 16мб.
Сидел на своей сборке 17 и решил сегодня обновиться на 19.
Получил исходники запустил выбор исходной архитектуры и не увидел Atheros (AR7XXX/AR9XXX).
Может кто подскажет где копать или что выбрать из предложенного...
На офсайте заметил что после 17 версии про мой девайс забыли :(
Ответить | Ответить с цитатой | Цитировать
Den4ik
0 # Den4ik 12.01.2021 14:46
При сборке свежих прошивок необходимо в make menuconfig указать что flash память у Вас small. make menuconfig --> target system ar72xx/ar92xx --> subtarget --> devices with small flash
Ответить | Ответить с цитатой | Цитировать
Кирилл
0 # Кирилл 17.01.2021 15:15
Здравствуйте, у вас очень интересные статьи, я не так давно пользуюсь openwrt возникают иногда вопросы, может у вас есть канал или чат в теоеграм?
Ответить | Ответить с цитатой | Цитировать
костя
+1 # костя 17.08.2021 22:57
Час висит на make[2] -C tools/cmake compile ждать нет?
Ответить | Ответить с цитатой | Цитировать
ImTaras
0 # ImTaras 07.03.2022 12:54
да.
флешки там ни в красную армию
Ответить | Ответить с цитатой | Цитировать
Organarh
0 # Organarh 30.03.2022 21:39
Всем привет. Собираю опенврт на Archer MR-200 V4 Mediatek - MT7628DAN RAM-64 MB Flash-8 MB CPU-580 MHz .Target System должен быть Mediatek Ralink MIPS, а Subtarget MT7628 based boards, ???? а где MT7628 ???
Ответить | Ответить с цитатой | Цитировать
Alex
0 # Alex 11.03.2023 01:28
Всем привет. Приобрёл ZBT WG827 (MT7621, 128RAM and 32 flash).
Как установить вместо LEDE на это роутер OpenWrt ?
Как собрать на него прошивку если такого девйса нет в списке openwrt?
Ответить | Ответить с цитатой | Цитировать
Gertie
0 # Gertie 22.05.2023 22:48
I'm really imprеssed witth your writing skills as well as with the
layout on yoսr weblog. Is this a paid theme or
did yoᥙ customize it yourself? Anywɑy keep uр the excellent quality writing, it is rare to see a nice blog lіke thiѕ one these days.


Take a look at my homepage ... website
Ответить | Ответить с цитатой | Цитировать
Joe
0 # Joe 23.05.2023 09:18
возьмем на обращать на себя внимание оформление сильно необходимых документов и доставим авто из ОАЭ под ключ

Онлайн Заявка
На Микрозайм

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



Микрозаймы На Карту Круглосуточно Без
Проверок


america-dubai-auto.com
Ответить | Ответить с цитатой | Цитировать
Debora
0 # Debora 24.05.2023 20:27
Pretty portion of ϲontent. I just stumbled upon your weblog and iin accessiⲟn capitaⅼ tto assert that I ցet in fact enjoyed acϲount your blokg posts.
Anyway I will be subscribіng to your feeds and even Ӏ ɑchievement yoս get entry to consistently quickly.


my site :: site
Ответить | Ответить с цитатой | Цитировать
Rachel
0 # Rachel 26.05.2023 00:47
I pаy a qujiсk visit aily some web sites and information sitees to read posts, but this bⅼog
presentѕ feature basеd content.

Feel free to surf to mү web-site; site (caidendԝofv.wikipowell.com)
Ответить | Ответить с цитатой | Цитировать

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

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