Handbook:MIPS/Blocks/Kernel/es

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:MIPS/Blocks/Kernel and the translation is 85% complete.
Outdated translations are marked like this.


Preparar la configuración

Importante
En las máquinas Origin 200/2000, Indigo2 Impact (R10000), Octane/Octane2 y O2, se necesita un núcleo de 64 bits para arrancar el sistema. En estas máquinas, hacer emerge de sys-devel/kgcc64 para crear un compilador cruzado con el que construir núcleos de 64 bits.

En muchos de los sistemas soportados se dispone de .configs ocultos entre los fuentes del núcleo. No todos los sistemas tienen estas configuraciones distribuidas así. Aquéllos que los tienen se pueden configurar mediante las órdenes descritas en la tabla de abajo.

Sistema Orden de configuración
Servidores Cobalt make cobalt_defconfig
Indy, Indigo2 (R4k), Challenge S make ip22_defconfig
Origin 200/2000 make ip27_defconfig
Indigo2 Impact (R10k) make ip28_defconfig
O2 make ip32_defconfig

Todas las imágenes de instalación de Gentoo ofrecen una opción de configuración del núcleo que es parte de la propia imagen y accesible a través de /proc/config.gz. Esto se puede utilizar en muchos casos. Es mejor si se consulta la misma que la del núcleo que está corriendo en ese momento. Para extraerla, simplemente lanzarla a través de zcat como se muestra abajo.

root #zcat /proc/config.gz > .config
Importante
Esta configuración del núcleo está preparada para una imagen de arranque por red. Esto es, espera encontrar una imagen de sistema de archivos raíz en algún lugar cercano como un directorio para initramfs o un dispositivo de bucle para initrd. Cuando se lance make menuconfig, no se debe olvidar entrar en la configuración general (General Setup) y deshabilitar las opciones para initramfs.

Personalizar la configuración

Una vez se encuentra una configuración, descargarla en el directorio de fuentes del núcleo y renombrarla a .config. Una vez hecho esto, lanzar make oldconfig para poner todo al día conforme a las instrucciones de arriba y personalizar la configuración antes de compilar.

root #cd /usr/src/linux
root #cp /ruta/a/config-ejemplo .config
root #make oldconfig

Por ahora, sólo aprete la tecla ENTER (o Return) en cada pregunta para aceptar las opciones predeterminadas...

root #make menuconfig
Importante
En la sección de hacking del núcleo existe una opción titulada "Are You Using A Cross Compiler?". Esto le indica a los ficheros Makefile del núcleo que antepongan "mips-linux-" (o mipsel-linux ... etc) a las órdenes gcc y as cuando se construya el núcleo. Esta opción se debería deshabilitar incluso si se está realizando una compilación cruzada. En lugar de esto, si se necesita realizar una compilación cruzada, especificar el prefijo utilizando la variable CROSS_COMPILE tal y como se muestra en la siguiente sección.
Importante
Existe un problema conocido con JFS y ALSA en sistemas Octane systems en los que ALSA no funciona. Dada la naturaleza experimental de JFS en MIPS, se recomienda no utilizar JFS en este momento.

Compilar e instalar

Ahora que el núcleo está configurado, es hora de compilarlo e instalarlo. Salga de la configuración e inicie el proceso de compilación:

Nota
En las máquinas de 64 bits, especificar CROSS_COMPILE=mips64-unknown-linux-gnu- (o mips64el-... si se trata de un sistema little-endian) para utilizar el compilador de 64 bits.

Para compilar de forma nativa:

root #make vmlinux modules modules_install

Para compilar de forma cruzada en la máquina destino, ajustar mips64-unknown-linux-gnu- de la forma adecuada:

root #make vmlinux modules modules_install CROSS_COMPILE=mips64-unknown-linux-gnu-

Cuando se compile en otra máquina como una x86, utilizar las siguientes órdenes para compilar el núcleo e instalar los módulos en un directorio específica que se va a transferir a la máquina destino.

root #make vmlinux modules CROSS_COMPILE=mips64-unknown-linux-gnu-
root #make modules_install INSTALL_MOD_PATH=/algúnlugar
Importante
Cuando se compile un núcleo de 64 bits para el Indy, Indigo2 (R4k), Challenge S u O2, utilizar el objetivo vmlinux.32 en lugar de vmlinux, de lo contrario, la máquina no arrancará. Esto se hace para saltarse la PROM que no reconoce el formato ELF64.
root #make vmlinux.32
Nota
Es posible habilitar compilaciones en paralelo usando make -jX, siendo X el número de compilaciones paralelas que se permite que lance el proceso. Es similar a las instrucciones anteriores sobre /etc/portage/make.conf con la variable MAKEOPTS.

Lo de arriba creará vmlinux.32, que es el núcleo final.

Cuando se ha terminado de compilar el núcleo, copiar la imagen a /boot/.

Nota
En los servidores Cobalt, el cargador de arranque espera ver una imagen de núcleo comprimida. Recuerde hacer gzip -9 al fichero una vez está en /boot/.
root #cp vmlinux /boot/kernel-6.6.21-gentoo

Para lo servidores Cobalt, comprimir la imagen del núcleo:

root #gzip -9v /boot/kernel-6.6.21-gentoo