fe58c46ead
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. |
||
---|---|---|
.. | ||
main | ||
stage1 | ||
stage2 | ||
Makefile | ||
README |
Этот каталог содержит субпрофили; содержимое затребованных (названия которых содержатся в значении переменной 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, поскольку субпрофили востребованы только дистрибутивами.