mkimage-profiles/sub.in
Michael Shigorin fe58c46ead stage2: tunable squashfs compression
The existing implementation would handle kernel differences
just fine but a bit too automatically: if it sees xz support,
that's what will end up being used (and if there's -Xbcj binary
compression filter available for the target platform, it will
be applied unequivocally either).

It's perfectly suitabe for getting fine-tuned release images
but is also a bit too resource-consuming while developing the
image configuration which has no business with its compression.

The one and only knob is SQUASHFS (see doc/variables.txt);
to give an idea of the differences, here are some numbers
for a mostly-binary (43% as per 99-elf-stats) webkiosk livecd
and a rather less so (18%) flightgear one on a dual quad-core
X5570 node (each mksquashfs run used up all the cores):

SQUASHFS | live-webkiosk.iso | live-flightgear.iso
---------+-------------------+---------------------
fast     | 3:30 / 130M       | 5:11 / 852M
normal * | 3:37 / 100M       | 5:35 / 688M
tight    | 3:50 / 98M        | 6:47 / 683M

Thus if the knob isn't fiddled with, the defaults will allow
for a reasonably fast build of a pretty slim image; if one is
building a release or if a particular image is very sensitive
being close to the media capacity then just add SQUASHFS=tight
and see it a percent or two down on size.

Please note that lzo/gzip-compressed images are also quicker
to uncompress thus further helping with test iterations.

Thanks to led@ and glebfm@ for helpful hints and questions.
2012-04-09 22:03:29 +03:00
..
main docs update 2012-04-02 18:13:14 +03:00
stage1 stage2: tunable squashfs compression 2012-04-09 22:03:29 +03:00
stage2 stage2: 99-elf-stats for squashfs tuning 2012-04-09 22:03:29 +03:00
Makefile avoid "nothing to commit" in build.log 2011-11-04 16:54:41 +02:00
README subprofiles: minor docs extension 2011-12-16 15:28:41 +02:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Этот каталог содержит субпрофили; содержимое затребованных
(названия которых содержатся в значении переменной SUBPROFILES,
которую заполняют цели sub/* -- см. ../lib/distro.mk) будет
скопировано в корневой каталог формируемого профиля.

Просьба ответственно относиться к изменению существующих субпрофилей
и вдумчиво -- к созданию новых; возможно, достаточно всего лишь
оформить нужное новой фичей (см. ../features.in/).

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

Краткое описание существующих вариантов:

- stage1: propagator и загрузчик (совместно с фичей syslinux);
  типично требуется для инсталяторов, live- и rescue-образов,
  но может использоваться без добавления таковых в образ,
  обеспечивая сетевую загрузку второй стадии

- stage2: наиболее сложный технологически субпрофиль, поскольку
  он является только базовым для получения ряда итоговых частей
  дистрибутива (install2, live, rescue); задействуется для этого
  только опосредованно через use/stage2/* и модифицирует stage1
  в силу наличия связи между ними (в stage1 попадает образ ядра
  и firmware, в stage2 -- соответствующие модули)

- main: пакетная база, укладываемая на образ (NB: поскольку рабочий
  чрут в этом случае не содержит ничего, кроме пакетов, добавлять
  image-scripts.d/* смысла нет, только scripts.d/*)

Шаблонное правило сейчас определено в ../lib/distro.mk,
поскольку субпрофили востребованы только дистрибутивами.