User Tools

Site Tools


ru:about:toolchain

BoZaR translate.google.com 2017/08/12 01:12

Система сборки OpenWrt - О

Система сборки OpenWrt представляет собой набор Makefiles и patches, который позволяет пользователям легко создавать как cross-compilation toolchain и root filesystem для встроенные системы. Комбинация кросс-компиляции использует musl, крошечную библиотеку C.

Компиляция toolchain - это набор инструментов, используемых для компиляции кода для вашей системы. Это состоит из:   * Компилятор (в нашем случае, gcc / deb: gcc)   * Двоичные утилиты, такие как сборщик и компоновщик (в нашем случае, binutils / deb: binutils)   * A стандартная библиотека wp> C (например, GNU Libc, musl-libc, uClibc или dietlibc).

Используя ПК, toolchain компиляции работает на процессоре x86 и генерирует код для процессора x86. В большинстве Linux-систем инструментальная цепочка компиляции использует GNU libc как стандартную библиотеку C. Он называется «компиляцией компиляции хоста», а машина, на которой она запущена, называется «хост-системой». Компиляция toolchain обеспечивается дистрибутивом и не имеет ничего общего с системой сборки OpenWrt.

Встраиваемые системы используют другой процессор и требуют кросс-компиляции toolchain - инструментальной цепочки компиляции, которая работает в главной системе, но которая генерирует код для целевой системы (и целевой набор processor (ЭТО)). Например, если ваша хост-система использует x86, а ваша целевая система использует MIPS32, регулярная компоновка компиляции вашего хоста работает на x86 и генерирует код для x86, а инструментальная цепочка кросс-компиляции работает на x86 и генерирует код для MIPS32.

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

В то время как система сборки OpenWrt была разработана для разработчиков, неопытные пользователи могут также использовать ее, чтобы легко создавать собственную прошивку!

OpenWrt Makefile имеет свой собственный синтаксис, отличный от обычного Makefile of Linux make tool. Файл OpenWrt Makefile определяет метаинформацию пакета, где загружать пакет, как скомпилировать, где устанавливать скомпилированные двоичные файлы и т. Д. Подробнее см. «Как создать пакет приложений OpenWrt».

Система сборки OpenWrt - Особенности

  • Упрощает перенос программного обеспечения
  • Использует kconfig (меню Linux Kernel menuconfig) для настройки функций
  • Обеспечивает интегрированную кросс-компилятор toolchain (gcc, ld, …)
  • Обеспечивает абстракцию для autotools (automake, autoconf), cmake, scons
  • Обрабатывает стандартный процесс загрузки, исправления, настройки, компиляции и упаковки
  • Предоставляет ряд общих исправлений для плохо работающих пакетов

Система сборки OpenWrt - Сделать цели

  • Предлагает ряд высокоуровневых целей для стандартных рабочих процессов пакета
  • Цели всегда в формате «компонент / имя / действие», например. "Toolchain / gdb / compile" или "package / mtd / install"
  • Подготовьте дерево исходного кода пакета: package / foo / prepare
  • Скомпилировать пакет: package / foo / compile
  • Очистите пакет: package / foo / clean

Система сборки OpenWrt - последовательность сборки

  1. tools - automake, autoconf, sed, cmake
  2. toolchain / binutils - as, ld, …
  3. toolchain / gcc - gcc, g ++, cpp, …
  4. target / linux - модули ядра
  5. package - основные и кормовые пакеты
  6. target / linux - образ ядра
  7. target / linux / image - создание образа файла прошивки

Управление исправлениями

  • Многие пакеты не будут работать как есть и нуждаются в исправлениях для работы с целью или даже для компиляции
  • Система сборки OpenWrt объединяет quilt для легкого управления исправлениями
  • Поверните пакетные патчи в стеганые серии: сделайте пакет / foo / подготовьте QUILT = 1
  • Обновление патчей из измененной серии: make package / foo / update
  • Автоматическое обновление патчей после обновления: make package / foo / refresh

Вопросы упаковки

  • Unordered List Item
  • Основная цель - небольшая память и размер
  • Особенности, которые не имеют смысла для встроенных систем, отключаются через configure или исправлены
  • Пакеты должны быть скомпилированы независимо от хост-системы, должны быть автономными
  • Отправленные скрипты «configure» часто являются ошибочными или непригодными для использования в настройке кросс-компиляции, для автоматического исправления или исправления
  • Варианты сборки и kconfig включают настраиваемые параметры времени компиляции
  • Нет стандартного способа переноса программного обеспечения, во многих случаях он «просто работает», но часто процесс сборки пакета требует настроек

Документация

История

ru/about/toolchain.txt · Last modified: 2017/08/12 01:30 by BoZaR