В начало → Сборка на другом компьютере |
Существует много методов добиться этого, но мы используем самый удобный — тот, что работает с портежами.
Другие методы могут быть более подходящими для других ситуаций, когда главная проблема не только медленный процессор и долгое время сборки, например, если надо перенести Gentoo на систему, которая не может загружаться с CD или сети.
Скомпилировать Gentoo для старых систем x86 (например, Pentium Pro 200MHz с небольшим количеством RAM) можно на x86_64-системе с работающей Gentoo. Обратный трюк, собрать 64-битную систему на 32-битном компьютере, невозможен.
Я собирал систему в chroot-окружении согласно Gentoo-handbook, используя мою 64bit-Gentoo вместо "живого" CD:
# mkdir /your/new/gentoo
# tar xjvpf stage3-x86-*.tar.bz2 -C /your/new/gentoo
Отредактируйте переменные CHOST и CFLAGS, соответствующие вашей целевой системе (не изменяйте CHOST, если используете стадию 2 или 3 — возмите стадию для соответствующей платформы). У меня было:
# CHOST="i686-pc-linux-gnu"
# CFLAGS="-march=pentiumpro -Os -momit-frame-pointer -pipe"
# CXXFLAGS="$CFLAGS"
Далее переходим в chroot-окружение и выполняем все шаги, описанные в Руководстве Gentoo по установке.
Чтобы собрать ядро для i386 на x86_64-машине добавьте ARCH=i386 при конфигурации и компиляции ядра.
# make menuconfig ARCH=i386
# make clean dep modules modules_install bzImage ARCH=i386
# cp arch/i386/boot/bzImage /boot/vmlinuz
Размечать диск и создавать файловые системы на старом компьютере вам придется с помощью "живого" CD или другой системы Linux.
Переносим готовую систему на старый компьютер:
# cd /your/new/gentoo
# echo "/sys/*" >> tar_exclusions
# echo "/var/run/*" >> tar_exclusions
# echo "/tmp/*" >> tar_exclusions
# echo "/proc/*" >> tar_exclusions
#
# tar -C /your/new/gentoo -X tar_exclusions --preserve -cf ../gentoo.tar .
## можете добавить -v для подробного вывода или -j / -z для компрессии
# scp [-P ssh_port] ../gentoo.tar user@dest_pc:
На старой машине подготавливаем диски и распаковываем систему:
# tar -C /your/new/system --preserve -xf ~user/gentoo.tar
Теперь вы можете войти в chroot-окружение. Сконфигурируйте системный загрузчик и перегрузитесь. Теперь вы находитесь в новой, с иголочки, Gentoo.
Система теперь должна работать, но я заметил проблему — я не могу ничего скомпилировать. Похоже, что не работает ни C-препроцессор, ни gcc (обычно configure говорит, что /lib/cpp fails sanity check). Не знаю почему, но копирование /usr/include из chroot-каталога с исходной машины на старый компьютер эту проблему решило.
Удачи!
Оригинал на http://gentoo-wiki.com/HOWTO_Compile_on_another_computer
Перевод Poor Fred
В начало → Сборка на другом компьютере |