Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
ru:doc:howto:build [2018/02/20 21:17] – ↷ Links adapted because of a move operation ru:doc:howto:build [2020/06/08 12:46] – [Примеры] stokito
Line 1: Line 1:
 ====== OpenWrt Buildroot – Использование ====== ====== OpenWrt Buildroot – Использование ======
-| -> вернуться обратно к [[obtain.firmware|Получить прошивку]] или читать ->[[about:toolchain|OpenWrt Buildroot – Описание]] |+| -> вернуться обратно к [[obtain.firmware|Получить прошивку]] или читать ->[[docs:guide-developer:build-system:start|OpenWrt Buildroot – Описание]] |
  
 ===== Условия ===== ===== Условия =====
-  - **[[doc:howto:buildroot.exigence|Установите OpenWrt Buildroot]]** с необходимыми параметрами на вашу ОС.+  - **[[docs:guide-developer:build-system:install-buildsystem|Установите OpenWrt Buildroot]]** с необходимыми параметрами на вашу ОС.
  
 ===== Методика ===== ===== Методика =====
Line 12: Line 12:
     - Настройте параметры сборки.     - Настройте параметры сборки.
     - Запустите сборку. Будет произведена автоматическая компиляция набора инструментов (toolchain), кросс-компиляция исходных кодов и пакетов, и в конце будет сгенерирован образ готовый к прошивке.     - Запустите сборку. Будет произведена автоматическая компиляция набора инструментов (toolchain), кросс-компиляция исходных кодов и пакетов, и в конце будет сгенерирован образ готовый к прошивке.
-    - Приступите к [[generic.flashing|установке OpenWrt]]+    - Приступите к [[ru:docs:guide-user:installation:generic.flashing|установке OpenWrt]]
 ==== Скачивание исходных кодов ==== ==== Скачивание исходных кодов ====
 Скачайте исходные коды: Скачайте исходные коды:
Line 75: Line 75:
 make menuconfig make menuconfig
 </code> </code>
-| Как и в конфигурации ядра Linux, почти каждая опция имеет 3 значения: **y** / **m** / **n** ,которые представлены следующим образом:\\   * (нажав `y`) Этот пакет будет включен в образ прошивки\\  * (нажав `m`) Этот пакет будет скомпилирован (и может быть установлен с помощью ''[[docs:user-guide:additional-software:opkg]]'' после [[docs:user-guide:installation:generic.flashing|прошивки OpenWrt]]), но **не** будет включен в образ прошивки \\  * (нажав `n`) Этот пакет не будет скомпилирован\\  \\  Когда вы сохраняете конфигурацию создается файл ''~/openwrt/trunk/.config'' содержащий параметры сборки. \\ \\ Разработчики предлагают такой файл для OpenWrt 'Backfire' 10.03.1-RC5,\\ например [[http://downloads.openwrt.org/backfire/10.03.1-rc5/ar71xx/config|для ar71xx]].  |+| Как и в конфигурации ядра Linux, почти каждая опция имеет 3 значения: **y** / **m** / **n** ,которые представлены следующим образом:\\   * (нажав `y`) Этот пакет будет включен в образ прошивки\\  * (нажав `m`) Этот пакет будет скомпилирован (и может быть установлен с помощью ''[[docs:guide-user:additional-software:opkg]]'' после [[docs:guide-user:installation:generic.flashing|прошивки OpenWrt]]), но **не** будет включен в образ прошивки \\  * (нажав `n`) Этот пакет не будет скомпилирован\\  \\  Когда вы сохраняете конфигурацию создается файл ''~/openwrt/trunk/.config'' содержащий параметры сборки. \\ \\ Разработчики предлагают такой файл для OpenWrt 'Backfire' 10.03.1-RC5,\\ например [[http://downloads.openwrt.org/backfire/10.03.1-rc5/ar71xx/config|для ar71xx]].  |
  
   * Это меню позволяет выбрать платформу, версию набора инструментов (toolchain), которую вы хотите использовать для сборки и пакеты, которые вы хотите включить в образ прошивки.     * Это меню позволяет выбрать платформу, версию набора инструментов (toolchain), которую вы хотите использовать для сборки и пакеты, которые вы хотите включить в образ прошивки.  
Line 167: Line 167:
   - потом кросс-компиляция исходных кодов с этим инструментарием   - потом кросс-компиляция исходных кодов с этим инструментарием
   - создание opkg-пакетов   - создание opkg-пакетов
-  - создание образа прошивки, готового к [[generic.flashing|прошивке]].+  - создание образа прошивки, готового к [[ru:docs:guide-user:installation:generic.flashing|прошивке]].
  
 ==== Последовательность работы make ==== ==== Последовательность работы make ====
Line 213: Line 213:
  
 Процесс сборки можно ускорить запустив несколько параллельных задания с использованием параметра ''-j'': Процесс сборки можно ускорить запустив несколько параллельных задания с использованием параметра ''-j'':
-<code>+<code bash>
 make -j 3 make -j 3
 </code> </code>
 +
   * Используйте стандартную формулу ''<количество процессоров + 1>''   * Используйте стандартную формулу ''<количество процессоров + 1>''
   * Если это приводит к случайным ошибкам сборки запустите компиляцию еще раз, но без параметра ''-j''   * Если это приводит к случайным ошибкам сборки запустите компиляцию еще раз, но без параметра ''-j''
Line 222: Line 223:
 Если вы собираетесь использовать вашу систему во время процесса сборки, вы можете выполнять сборку используя только простой ввода/вывода и мощности процессора, например так (двухъядерный процессор): Если вы собираетесь использовать вашу систему во время процесса сборки, вы можете выполнять сборку используя только простой ввода/вывода и мощности процессора, например так (двухъядерный процессор):
  
-<code>+<code bash>
 ionice -c 3 nice -n 20 make -j 2 ionice -c 3 nice -n 20 make -j 2
 </code> </code>
Line 229: Line 230:
 При разработке или создании пакетов для OpenWrt удобно иметь возможность сборки только нужного пакета (пример с пакетом ''cups''): При разработке или создании пакетов для OpenWrt удобно иметь возможность сборки только нужного пакета (пример с пакетом ''cups''):
  
-<code>+<code bash>
 make package/cups/compile V=99 make package/cups/compile V=99
 </code> </code>
Line 237: Line 238:
 Если по какой-то причине сборка не удается, то самый простой способ определить ошибки это: Если по какой-то причине сборка не удается, то самый простой способ определить ошибки это:
  
-<code>+<code bash>
 make V=99 2>&1 | tee build.log | grep -i error make V=99 2>&1 | tee build.log | grep -i error
 </code> </code>
Line 245: Line 246:
 Другой пример: Другой пример:
  
-<code>+<code bash>
 ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 | tee build.log | egrep -i '(warn|error)' ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 | tee build.log | egrep -i '(warn|error)'
 </code> </code>
Line 259: Line 260:
 В зависимости от вашего процессора этот процесс займет некоторое время или дольше. Если вы хотите включить звуковые уведомления можете использовать ''echo -e '\a''': В зависимости от вашего процессора этот процесс займет некоторое время или дольше. Если вы хотите включить звуковые уведомления можете использовать ''echo -e '\a''':
  
-<code>+<code bash>
 make V=99 ; echo -e '\a' make V=99 ; echo -e '\a'
 </code> </code>
Line 301: Line 302:
  
 ===== Примеры ===== ===== Примеры =====
 +  * https://github.com/mwarning/openwrt-examples
   * https://forum.openwrt.org/viewtopic.php?pid=129319#p129319   * https://forum.openwrt.org/viewtopic.php?pid=129319#p129319
   * https://forum.openwrt.org/viewtopic.php?id=28267   * https://forum.openwrt.org/viewtopic.php?id=28267
  • Last modified: 2021/10/15 09:06
  • by bobafetthotmail