Сборка Calculate Linux для платформы отличной от i686/x86_64

Собираем дистрибутив для платформы 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