Я пытаюсь собрать ядро для 32-битной одноядерной машины Intel Atom. Излишне говорить, что компиляция занимает слишком много времени. Это продолжается в течение 2 часов, и это все еще только на полпути через модули драйвера.
Компиляция ядра на моем главном рабочем столе занимает всего 15 минут, но это 64-битная машина. Могу ли я выполнить кросс-компиляцию для генерации 32-битного пакета ядра с лучшей машины?
Ответы:
Хотя ядро может быть кросс-скомпилировано, самый простой способ - создать 32-битный (i386) chroot и встроить его в него.
Установить
ubuntu-dev-tools
:Создайте chroot для i386:
(Вам, вероятно, придется выполнить это дважды. В первый раз он устанавливает
schroot
и т. Д. И настраиваетсяmk-sbuild
)Затем введите chroot:
И соберите ядро, как обычно.
источник
Afaik, в gcc вы можете установить
-m32
флаг, чтобы он мог компилировать исходники linux в 32-битные исполняемые файлы. Я не очень разбираюсь в Makefiles, но вы можете настроить их.edit: я хотел добавить вопрос из stackoverflow , в котором сказано установить cflags:
А из репозитория linux в учетной записи Торвальдса на github я обнаружил следующий раздел основного make-файла, который может оказаться полезным, поскольку он говорит о том, что вы можете установить целевую архитектуру, установив переменную окружения. Прочитайте комментарии, в настоящее время эти строки из этого файла , между строками 174-196 :
источник