Собираем дистрибутив для платформы i586 на примере CLDX (делалось на CLDX 11.12)
1 Устанавливаем утилиты
sudo emerge calculate-assemble calculate-builder
2 Скачиваем дистрибутив CLDX для платформы i686
Копируем дистрибутив в каталог /var/calculate/linux
3 cl-assemble -p desktop/CLDX/x86/binary -d /tmp/cldxbuild --source=CLDX --march=i686
-d может быть и разделом тогда -d /dev/sdb1 например
4 chroot /mnt/calculate-desktop-CLDX-x86-binary
5 Теперь все делаем в chroot !
eselect profile list
eselect profile set 17
layman -s calculate
eix-update
eix-sync
Добавить строку CALCULATE="nocompiz" в /etc/portage/make.conf
(по желанию для слабых машин)
Добавить строчки
CHOST="i586-pc-linux-gnu"
CFLAGS="-march=pentium -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
EMERGE_DEFAULT_OPTS="--autounmask=y --autounmask-write"
CONFIG_PROTECT_MASK="/etc/portage"
в /etc/portage/make.conf
Копируем конфиг ядра из
/var/lib/layman/calculate/profiles/kernel/config-desktop-i686-3.2
в например /etc/portage
Переименовываем файл config-desktop-i686-3.2
mv /etc/portage/config-desktop-i686-3.2 /etc/portage/config-desktop-pentium-3.2
Изменяем файл /etc/portage/config-desktop-pentium-3.2
Ищем в нем строку CONFIG_M686=y и комментируем ее
Надо раскоментировать (добавить) строку CONFIG_M586=y
Добавить строчки
[main]
os_linux_build = 20120120
os_arch_machine = i686
os_linux_system = Calculate Linux Desktop XFCE
os_linux_shortname = CLDX
cl_autoupdate_set = on
cl_merges = calculate-install
cl_template_path = ['/var/lib/layman/calculate/profiles/templates']
[builder]
os_builder_linux_name = Calculate Linux Desktop XFCE
os_builder_linux_shortname = CLDX
cl_kernel_config_path = /etc/portage
os_builder_arch_machine = i686
cl_kernel_config = /etc/portage/config-desktop-pentium-3.2
в /etc/calculate2.env
emerge -av1 binutils gcc glibc
gcc-config -l
[1] i586-pc-linux-gnu-4.5.3 *
gcc-config -c
i586-pc-linux-gnu-4.5.3
binutils-config -l
[1] i586-pc-linux-gnu-2.21.1 *
binutils-config -c
i586-pc-linux-gnu-2.21.1
cd /etc/env.d/
grep i586 *
увидим
05binutils:MANPATH=/usr/share/binutils-data/i586-pc-linux-gnu/2.21.1/man
05binutils:INFOPATH=/usr/share/binutils-data/i586-pc-linux-gnu/2.21.1/info
05gcc-i586-pc-linux-gnu:MANPATH="/usr/share/gcc-data/i586-pc-linux-gnu/4.5.3/man"
05gcc-i586-pc-linux-gnu:INFOPATH="/usr/share/gcc-data/i586-pc-linux-gnu/4.5.3/info"
05gcc-i586-pc-linux-gnu:LDPATH="/usr/lib/gcc/i586-pc-linux-gnu/4.5.3"
05gcc-i586-pc-linux-gnu:PATH="/usr/i586-pc-linux-gnu/gcc-bin/4.5.3"
05gcc-i586-pc-linux-gnu:ROOTPATH="/usr/i586-pc-linux-gnu/gcc-bin/4.5.3"
rm /etc/env.d/05gcc-i686-pc-linux-gnu
# cd /etc/env.d/binutils/
# ls -la
total 8
-rw-r--r-- 1 root root 15 Sep 3 13:48 config-i586-pc-linux-gnu
-rw-r--r-- 1 root root 126 Sep 3 13:48 i586-pc-linux-gnu-2.16.1
cd /etc/env.d/gcc
ls -la
cat config
rm config-i686-pc-linux-gnu
env-update && source /etc/profile
grep -r 686 /etc/env.d/
emerge libtool
/usr/share/gcc-data/i586-pc-linux-gnu/4.5.3/fix_libtool_files.sh 4.5.3 --oldarch i686-pc-linux-gnu
emerge portage portage-utils lafilefixer gentoolkit
emerge -av1 `qfile /usr/lib/perl* -Cq | sort -u`
perl-cleaner --reallyall
emerge python =python-2.7.2-r3
lafilefixer --justfixit
rm /usr/i686-pc-linux-gnu
emerge -e system
emerge -r world
emerge --depclean
revdep-rebuild
Выходим из chroot
exit
Собираем систему
cl-make -u -V
Создаем iso
cl-image --live iso
PS Просьба к разработчикам - добавьте поддержку платформ кроме i686/x86_64 в утилиты cl-image cl-make cl-builder и прочие (там есть строка но она закомментированна)
Это просто даст больше красоты - например в названии исошки можно будет указывать i586 и не надо будет править файл /etc/calculate2.env