Estoy tratando de compilar un kernel para una máquina Intel Atom de núcleo único de 32 bits. No hace falta decir que la compilación está tomando demasiado tiempo. Ha estado funcionando durante 2 horas y todavía está a la mitad de los módulos del controlador.
Compilar un kernel en mi escritorio principal solo toma 15 minutos, pero es una máquina de 64 bits. ¿Puedo realizar una compilación cruzada para generar un paquete de kernel de 32 bits desde la mejor máquina?
Respuestas:
Si bien el núcleo se puede compilar de forma cruzada, la forma más fácil es crear un chroot de 32 bits (i386) y construirlo allí.
Instalar
ubuntu-dev-tools
:Crea un chroot i386:
(Probablemente tendrá que ejecutar eso dos veces. La primera vez, se instala,
schroot
etc. y se configuramk-sbuild
)Luego ingrese el chroot:
Y construya el núcleo, como lo haría normalmente.
fuente
Afaik, en gcc, puede establecer un
-m32
indicador para permitirle compilar fuentes de Linux en ejecutables de 32 bits. No tengo un amplio conocimiento sobre Makefiles, pero puedes modificarlos.editar: quería agregar una pregunta de stackoverflow aquí, en la que se me dice que establezca cflags:
Y desde el repositorio de Linux en la cuenta github de Torvalds , encontré la siguiente sección en el archivo MAKE principal que puede serle útil, ya que le dice que puede establecer una arquitectura de destino configurando una variable de entorno. Lea los comentarios, actualmente, estas líneas son de este archivo , entre las líneas 174-196 :
fuente