Подтвердить что ты не робот

Openwrt buildroot build_dir и staging_dir

Я запутался в build_dir и staging_dir в openwrt buildroot. Для чего они используются?

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

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

Затем используется staging_dir для <? p >

4b9b3361

Ответ 1

Каталог 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... есть другие файлы, которые используются в основном для создания пакетов и пакетов разработки и т.д.

Извините, это немного подробный, это сложно описать более кратко.