2014-09-25 2 views
13

Я смущен насчет build_dir и staging_dir в openwrt buildroot. Для чего они предназначены?openwrt buildroot build_dir и staging_dir

В openwrt есть feeds. Я хотел бы создать образ. Вы выберете пакеты, которые вы хотите, в menuconfig и используйте make для его создания.

Пакеты взяты с feeds, а затем скомпилированы в build_dir?

Тогда что такое staging_dir?

+0

Очень хороший вопрос и ответы.+1 – Haswell

ответ

27

Каталог build_dir используется для распаковки всех исходных архивов и скомпилировать их.

Каталог staging_dir используется для «установки» все скомпилированные программы в, готовые либо для использования в строительстве дополнительных пакетов, или для подготовки изображения прошивки.

Есть три области под build_dir:

  • build_dir/host, для компиляции все инструменты, которые работают на хост-компьютере (OpenWRT строит свою собственную версию sed и многие другие инструменты от источника). Эта область будет использоваться для компиляции программ, которые запускаются только на вашем хосте.
  • build_dir/toolchain... для компиляции кросс-C и стандартных компонентов библиотеки C, которые будут использоваться для сборки пакетов. Эта область будет использоваться для компиляции программ, которые запускаются только на вашем хосте (например, компилятор Cross C), а также библиотеки, предназначенные для запуска на целевой стороне, связанной с - например. uClibc, libm, Pthreads и т.д.
  • build_dir/target... для составления фактические пакеты, а ядро ​​Linux, для целевой системы

Под постановкой, есть также три области:

  • staging_dir/host является мини-корень Linux с собственными bin/, lib/ и т. д., в которые установлены инструменты хоста; остальная система сборки затем префикс PATH с каталогами в этой области
  • staging_dir/toolchain... - это мини-корень Linux с собственными bin/, lib/ и т. д., который содержит компилятор Cross C, используемый для сборки остальной прошивки. Вы можете использовать это для компиляции простых программ на C вне OpenWRT, которые могут быть загружены в прошивку. Компилятор C может выглядеть примерно так: staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mips-openwrt-linux-uclibc-gcc. Вы можете увидеть версию CPU, библиотеки C и gcc, закодированных в ней; это позволяет одновременно создавать несколько объектов в одной и той же области.
  • staging_dir/target.../root-... содержит «установленная» версию каждого целевого пакета снова договорилась с bin/, lib/, это станет фактическим корневым каталогом, который с некоторой настройкой будет получать застежку в образ прошивки, что-то вроде root-ar71xx. Есть некоторые другие файлы в staging_dir/target... используется в основном для создания пакетов и пакетов развития, и т.д.

К сожалению его немного многословный, это трудно описать более лаконично.

+0

Вы правы на деньги! Спасибо! – dudeking

+0

было бы очень полезно упомянуть также соответствующие переменные Makefile для каждого типа пути. благодаря –

Смежные вопросы