Mkimage/Desktop

Материал из ALT Linux Wiki
< Mkimage
Версия от 09:58, 16 ноября 2009; MichaelShigorin (обсуждение | вклад) (+5.1/branch и предупреждение об использовании старых бранчей)

Сборка дистрибутивов с помощью mkimage-profiles-desktop

42px-Wikitext-ru.svg.png
Эту статью следует викифицировать.


Предполагается использование бранчей 4.0, 4.1, 5.0, 5.1 либо текущего Sisyphus. При сборке на старых бранчах могут потребоваться модификации или откат профиля до соответствующего периода. Над этим потихоньку работаем.

Может понадобиться организовать отдельный apt.conf, хотя проблема с altlinux-release и хак с pkgpriorities неактуальны при использовании IMAGE_INIT_LIST из mkimage-0.0.8 в свежих снапшотах профиля (исправлено в конце июля 2008).

Далее (поправьте boyarsh на используемый логин! проверьте глазами получившееся):

mkdir -p ~/git
cd ~/git
git clone git://git.altlinux.org/people/boyarsh/packages/mkimage-profiles-desktop
mkdir -p ~/mkimage
cp -a mkimage-profiles-desktop ~/mkimage
cd ~/mkimage/mkimage-profiles-desktop
autoconf
./configure --with-aptconf=/home/boyarsh/apt/apt.conf.M40+boyarsh
make rescue.cd


x86_64

В mkimage-profiles-desktop по умолчанию даже при сборке на архитектуре x86_64 выставляется i586[1]; посему для сборки 64-битного варианта требуется передать configure-скрипту ключик --with-arch=x86_64, а также убедиться, что в sources.list, упомянутом в --with-aptconf=/где/тут/apt.conf (по умолчанию /etc/apt/apt.conf и соответственно /etc/apt/sources.list) — упомянуты репозитории x86_64 и noarch.

./configure --with-aptconf=/etc/apt/apt.conf.M41 --with-arch=x86_64
make rescue.cd

ALTSP5

Если есть желание или необходимость сделать модификацию ALT Linux 4.0 Terminal — начинать стоит с:

apt-get install etersoft-build-utils
$EDITOR /etc/apt/sources.list.M40
git clone git://git.altlinux.org/people/mike/packages/mkimage-profiles-desktop
cd mkimage-profiles-desktop
git fetch git://git.altlinux.org/people/mike/packages/mkimage-profiles-desktop terminal-4.0.0:terminal-4.0.0
git checkout terminal-4.0.0
autoconf
./configure --with-aptconf=/etc/apt/apt.conf.M40 --with-distro=terminal --with-version=4.0 \
--with-design=terminal --with-license=terminal --with-release=terminal --with-language=ru_RU \
--with-kernel=std-smp
nice time make ltsp-kde.cd

NB: для ветки 4.1 сборка не проверялась, известна пара не очень существенных проблем; на ветке 5.0 по состоянию на лето 2009 выпущены альфа-бета, известна пара регрессий, но уже можно собираться (ветка master у mike@ или boyarsh@).

Модификация

Загляните в README.

Изучение существующих примеров удобней начинать с корневого Makefile.in и далее по profiles/*/Makefile.in и profiles/packages-lists/*. Стоит обратить внимание, что IMAGE_PACKAGES в профильном мэйкфайле может содержать как включаемые файлы-списки, так и имена пакетов (если как файлы они не будут найдены).

Хуки и скрипты

Q: чем различаются install2/{image-scripts.d, scripts.d}/?

A: image-scripts выполняются в chroot собранной стадии. scripts — в инструментальном chroot-е после установки пакетов и до архивации результата, что позволяет копировать файлы из/в chroot

Проблемы

Использование своего apt.conf

При использовании своего apt.conf была замечена такая проблема - при сборке дистрибутива apt проверял репозиторий, указанный в своем apt.conf, а затем обновлял списки пакетов из текущего системного репозитория. Чтобы заставить apt проверять только свой репозиторий и не смотреть в сторону /etc/apt/apt.conf необходимо в свой apt.conf добавить следующее

Dir::Etc::SourceParts "/var/empty";

Старые грабли

Вынесены отдельной страницей. Могут понадобиться при сборке образов на базе бранчей 4.0/4.1 из профилей соответствующих веток/времён.

Сообщения об ошибке в части установки firmware для wi-fi адаптеров

при сборке под конец возможны такие сообщения

mkmodpack: warning: Firmware file "tehuti/firmware.bin" for module "tehuti" not found
mkmodpack: warning: Firmware file "i2400m-fw-sdio-1.3.sbcf" for module "i2400m-sdio" not found
mkmodpack: warning: Firmware file "i2400m-fw-usb-1.3.sbcf" for module "i2400m-usb" not found
mkmodpack: warning: Firmware file "i2400m-fw-usb-1.4.sbcf" for module "i2400m-usb" not found
mkmodpack: warning: Firmware file "ar9170-2.fw" for module "ar9170usb" not found
mkmodpack: warning: Firmware file "ar9170-1.fw" for module "ar9170usb" not found
mkmodpack: warning: Firmware file "FW13" for module "b43" not found
mkmodpack: warning: Firmware file "FW10" for module "b43legacy" not found
mkmodpack: warning: Firmware file "iwlwifi-3945-2.ucode" for module "iwl3945" not found
mkmodpack: warning: Firmware file "iwlwifi-4965-2.ucode" for module "iwlagn" not found
mkmodpack: warning: Firmware file "iwlwifi-5150-2.ucode" for module "iwlagn" not found
mkmodpack: warning: Firmware file "iwlwifi-5000-2.ucode" for module "iwlagn" not found
mkmodpack: warning: Firmware file "iwlwifi-6050-2.ucode" for module "iwlagn" not found

Это нормально. Поддержки wifi в propagator всё равно нет.

Ссылки

  1. в конце концов, десктоп сейчас обычно 32-битный, а вот сборочный сервер — 64-битный… хотя после ветки 4.1 и официального выпуска 64-битного десктопа это соображение может быть и пересмотрено