Mkimage-profiles/howto: различия между версиями
(init (thx drool@)) |
м (distcfg.mk и компания) |
||
Строка 6: | Строка 6: | ||
= Проверка = | = Проверка = | ||
Возьмём для примера live-icewm.iso — простой самогруз с лёгким оконным менеджером IceWM, хорошо подходящим как для небыстрого оборудования, так и для полукиосков заданной функциональности. Его сборка должна пройти успешно в течение нескольких минут (до получаса на сколь-нибудь современном процессоре) после | Возьмём для примера live-icewm.iso — простой самогруз с лёгким оконным менеджером IceWM, хорошо подходящим как для небыстрого оборудования, так и для полукиосков заданной функциональности. Его сборка должна пройти успешно в течение нескольких минут (до получаса на сколь-нибудь современном процессоре) после команды<ref>подразумевается, что мы работаем со свежей копией mkimage-profiles.git, находясь в соответствующем каталоге</ref>: | ||
make live-icewm.iso | make live-icewm.iso | ||
По умолчанию сборка производится под «родную» архитектуру хоста с использованием системной конфигурации [[apt]]. Если что-то произойдёт не так — например, отсутствует {{pkg|mkimage}}, не настроен {{pkg|hasher}} или автонаходилка не нашла места для сборки — должна быть выдана относительно внятная диагностика | По умолчанию сборка производится под «родную» архитектуру хоста с использованием системной конфигурации [[apt]]. Если что-то произойдёт не так — например, отсутствует {{pkg|mkimage}}, не настроен {{pkg|hasher}} или автонаходилка не нашла места для сборки — должна быть выдана относительно внятная диагностика. | ||
В случае успешной сборки должна появиться строчка, указывающая путь к собранному образу и его размер: | В случае успешной сборки должна появиться строчка, указывающая путь к собранному образу и его размер: | ||
** image: ~/out/live-icewm-20120717-i586.iso [173M] | ** image: ~/out/live-icewm-20120717-i586.iso [173M] | ||
Этот образ можно проверить в виртуальной машине, указав его в качестве загрузочного носителя для VirtualBox либо воспользовавшись kvm<ref>требует {{cmd|modprobe kvm_intel}} или {{cmd|modprobe kvm_amd}} сообразно процессору, а также группу <tt>vmusers</tt> для доступа к {{path|/dev/kvm}}</ref> или qemu: | |||
$ kvm -cdrom ~/out/live-icewm-20120717-i586.iso | |||
Загрузился? Неужто :) | |||
Также при этом в каталоге {{path|mkimage-profiles}} появится ссылка {{path|build}}, указывающая на сборочный каталог со сгенерированным минимальным профилем, который должно быть проще осмотреть целиком. Рассмотрим его подробней: | Также при этом в каталоге {{path|mkimage-profiles}} появится ссылка {{path|build}}, указывающая на сборочный каталог со сгенерированным минимальным профилем, который должно быть проще осмотреть целиком. Рассмотрим его подробней: | ||
Строка 18: | Строка 23: | ||
$ ls -F1 build/ | $ ls -F1 build/ | ||
build.log -- журнал сборки | build.log -- журнал сборки | ||
distcfg.mk -- конфигурационный | distcfg.mk -- конфигурационный файл — его и правим | ||
files/ -- содержимое копируется в корень образа | files/ -- содержимое копируется в корень образа | ||
functions.mk -- полезности | functions.mk -- полезности | ||
image-scripts.d/ -- см. документацию mkimage | image-scripts.d/ -- см. документацию mkimage | ||
lib/ -- содержимое включается в Makefile | lib/ -- содержимое включается в Makefile | ||
live/ -- субпрофиль для сборки | live/ -- субпрофиль для сборки LiveCD — нам сюда | ||
Makefile -- основной файл для сборки | Makefile -- основной файл для сборки | ||
out@ -- ссылка на каталог с результатом | out@ -- ссылка на каталог с результатом | ||
pkg/ -- списки пакетов, файлы | pkg/ -- списки пакетов, файлы групп — ...и сюда | ||
README -- стоит глянуть, там немного :) | README -- стоит глянуть, там немного :) | ||
scripts.d/ -- см. документацию mkimage | scripts.d/ -- см. документацию mkimage | ||
Строка 34: | Строка 39: | ||
vars.mk -- вспомогательный makefile для дампа переменных | vars.mk -- вспомогательный makefile для дампа переменных | ||
</pre> | </pre> | ||
Во включаемом в {{path|build/live/Makefile}} файле {{path|build/live/stage2cfg.mk}} заметно, какие переменные влияют на состав пакетной базы формирующего LiveCD субпрофиля; из них наиболее употребимы <tt>THE_PACKAGES</tt> и <tt>THE_LISTS</tt>. | |||
Заполняются эти переменные в {{path|build/distcfg.mk}}, а посмотреть окончательные значения, принятые в сборку — можно в {{path|build/build.log}} после её завершения<ref>для тестового прогона можно добавить опцию <tt>CHECK=1</tt>, см. {{path|doc/params.txt}}</ref>. Пакаджлисты трактуются как имена файлов со списками имён пакетов, расположенных ниже {{path|build/pkg/lists}}. | |||
[to be continued] | [to be continued] |
Версия от 23:56, 17 июля 2012
Зачем и для кого?
Это руководство по созданию производных дистрибутивов может оказаться полезно тем, кого почти устраивают уже существующие и при этом есть свои замечания или пожелания — начиная с обоев по умолчанию и добавления своих пакетов. :)
Для начала
Перед внесением правок стоит удостовериться, что mkimage установлен, а выбранный базовый дистрибутив им собирается и после этого работает; пожалуйста, не пропустите страничку с примерами, чтоб не тратить впустую время на экспериментальное выяснение уже описанного там и в QUICKSTART.
Проверка
Возьмём для примера live-icewm.iso — простой самогруз с лёгким оконным менеджером IceWM, хорошо подходящим как для небыстрого оборудования, так и для полукиосков заданной функциональности. Его сборка должна пройти успешно в течение нескольких минут (до получаса на сколь-нибудь современном процессоре) после команды[1]:
make live-icewm.iso
По умолчанию сборка производится под «родную» архитектуру хоста с использованием системной конфигурации apt. Если что-то произойдёт не так — например, отсутствует mkimage, не настроен hasher или автонаходилка не нашла места для сборки — должна быть выдана относительно внятная диагностика.
В случае успешной сборки должна появиться строчка, указывающая путь к собранному образу и его размер:
** image: ~/out/live-icewm-20120717-i586.iso [173M]
Этот образ можно проверить в виртуальной машине, указав его в качестве загрузочного носителя для VirtualBox либо воспользовавшись kvm[2] или qemu:
$ kvm -cdrom ~/out/live-icewm-20120717-i586.iso
Загрузился? Неужто :)
Также при этом в каталоге mkimage-profiles появится ссылка build, указывающая на сборочный каталог со сгенерированным минимальным профилем, который должно быть проще осмотреть целиком. Рассмотрим его подробней:
$ ls -F1 build/ build.log -- журнал сборки distcfg.mk -- конфигурационный файл — его и правим files/ -- содержимое копируется в корень образа functions.mk -- полезности image-scripts.d/ -- см. документацию mkimage lib/ -- содержимое включается в Makefile live/ -- субпрофиль для сборки LiveCD — нам сюда Makefile -- основной файл для сборки out@ -- ссылка на каталог с результатом pkg/ -- списки пакетов, файлы групп — ...и сюда README -- стоит глянуть, там немного :) scripts.d/ -- см. документацию mkimage sources.list -- создаётся метапрофилем для архива squashcfg.mk -- передаваемые между stage1/2 данные stage1/ -- субпрофиль с загрузчиками ядра и второй стадии vars.mk -- вспомогательный makefile для дампа переменных
Во включаемом в build/live/Makefile файле build/live/stage2cfg.mk заметно, какие переменные влияют на состав пакетной базы формирующего LiveCD субпрофиля; из них наиболее употребимы THE_PACKAGES и THE_LISTS.
Заполняются эти переменные в build/distcfg.mk, а посмотреть окончательные значения, принятые в сборку — можно в build/build.log после её завершения[3]. Пакаджлисты трактуются как имена файлов со списками имён пакетов, расположенных ниже build/pkg/lists.
[to be continued]
Примечания
- ↑ подразумевается, что мы работаем со свежей копией mkimage-profiles.git, находясь в соответствующем каталоге
- ↑ требует modprobe kvm_intel или modprobe kvm_amd сообразно процессору, а также группу vmusers для доступа к /dev/kvm
- ↑ для тестового прогона можно добавить опцию CHECK=1, см. doc/params.txt