[OpenBSD]

5.0 - Configuración del núcleo del sistema (``Kernel'')



5.1 - ¿Para qué necesita un núcleo personalizado?

Existen varias razones, aunque esta práctica, por regla general, está dirigida hacia usuarios expertos con un conocimiento amplio y profundo del sistema.

En la mayoría de los casos NO es necesario compilar un nuevo núcleo. El núcleo GENERIC que se instala por definición es todo lo que necesitará. De hecho, existen varias razones para no crear un nuevo núcleo. La prinicipal razón es la facilidad para aplicar cambios que parezcan lógicos pero que no funcionen, a la configuración del núcleo. Si algo no funciona correctamente, por favor pruebe con el núcleo GENERIC antes de enviar un informe sobre el error.

5.2 - Opciones de configuración del núcleo

Las opciones de configuración del núcleo son opciones que pueden ser añadidas a la configuración del núcleo y que implementan varias funcionalidades en éste. Esto le permite tener el tipo de soporte exacto que desea, sin que tenga que mantener el soporte para dispositivos que no son necesarios o de los que no dispone. Existe una gran cantidad de opciones que le permiten personalizar su núcleo. En este documento veremos sólo unas cuantas, aquéllas que se usan con más frecuencia. Si quiere ver una lista más completa de opciones, mire la página de manual options(4). También puede verificar los ficheros de configuración de ejemplo que estén disponibles para su arquitectura.

La compatibilidad entre distintas opciones no ha sido comprobada para todas las opciones del núcleo. ¡No añada una opción en su núcleo a menos que tenga una buena razón para hacerlo! La configuración del núcleo que más comprobaciones tiene es la del núcleo GENERIC. Generalmente este núcleo es una combinación de las opciones en /usr/src/sys/arch/<arq>/conf/GENERIC (en donde <arq> se debe substituir por el nombre de la arquitectura correspondiente) y /usr/src/sys/conf/GENERIC.

Mire esos ficheros con atención y podrá ver una línea como la siguiente:

include "../../../conf/GENERIC"
Esto significa que hace referencia a otro fichero distinto de configuración. Este fichero almacena opciones que no dependen de ninguna arquitectura, por lo que al crear su fichero de configuración del núcleo debe asegurarse de mirar en /sys/conf/GENERIC y ver qué opciones le interesan. ALGUNAS de las opciones que ahí se encuentran son NECESARIAS.

Todas las opciones que aparecen en la lista de más abajo deberían incluirse en el fichero de configuración de su núcleo, en el siguiente formato:

option      OPTION

Por ejemplo, para incluir la opción debug en el núcleo, añada una línea como ésta:

option	    DEBUG

Las opciones del núcleo de OpenBSD se traducen en opciones de preprocesador del compilador, por tanto una opción como DEBUG tendría el código fuente compilado con la opción -DDEBUG. Esto es equivalente a hacer un #define DEBUG en todo el núcleo.

OpenBSD dispone de varias opciones de compatibilidad muy útiles que le permitirán usar binarios de otros sistemas operativos. No todas se encuentran disponibles para cada arquitectura, por lo que debe leer las páginas de manual para cada opción para comprobar si está soportada en su arquitectura.

Poder depurar problemas en el núcleo del sistema es siempre de gran ayuda, pero muchos usuarios no añaden estas opciones en sus núcleos porque incrementan el tamaño del núcleo. Sin embargo, estas opciones son extremadamente útiles para casos en los que pudiera existir un error de programación. De este modo ayudaría a los desarrolladores a descubrir la fuente de sus problemas de un modo mucho más rápido. En la siguiente lista aparecen opciones de depurado bien conocidas que puede añadir a su núcleo.

Opciones para el sistema de archivos:

Opciones misceláneas:

Opciones de redes
Mire también el capítulo «Redes» o la sección sobre redes del capítulo «Afinar el rendimiento» de las Preguntas Frecuentes.

Opciones para PCVT (sólo válidas en la arquitectura i386)

Opciones del subsistema SCSI

5.3 - Compilación del núcleo

La página de manual afterboot(8) contiene instrucciones completas sobre cómo crear un núcleo personalizado.

Para compilar su propio núcleo desde el cdrom, antes que nada necesita disponer del código fuente. Sólo necesita los fuentes de núcleo para la compilación de éste, y los podrá encontrar en el CD. A continuación puede ver un ejemplo de cómo copiar los fuentes desde el CD. En este ejemplo se asume que el CD 1 está montado en /mnt.

Para crear su propio núcleo es más fácil comenzar con el núcleo GENERIC. Éste se encuentra ubicado en /usr/src/sys/arch/${arch}/conf/GENERIC, en donde ${arch} es la arquitectura de su máquina. En es directorio también puede encontrar otros ejemplos de configuraciones. Aquí mostraremos dos ejemplos de cómo compilar su núcleo. En el primer ejemplo se compilará el núcleo en un árbol de fuentes con permisos de sólo lectura. En el segundo, en un árbol de fuentes con permisos para escritura.

Para compilar un núcleo desde un árbol de fuentes con permisos de escritura, siga los pasos que vienen a continuación:

En donde $ARCH es la arquitectura de su máquina (v.g. i386). También puede ejecutar make depend para compilar las dependencias para la próxima vez que compile su núcleo.

Para copiar su núcleo a su directorio.

Para volver a su viejo núcleo durante el arranque, sólo debe hacer

y cargará su viejo núcleo en lugar de /bsd.

A veces, cuando compile un núcleo nuevo, se le requerirá que instale nuevos bloques de arranque. Para ello lea la sección 14.8 sobre el «gestor de arranque» de OpenBSD, que le dará una idea de cómo usar este gestor de arranque.

5.4 - Configuración del arranque

Algunas veces, al arrancar el sistema, es posible que note que el núcleo encuentra su dispositivo pero en el IRQ equivocado. Y puede que necesite usar este dispositivo enseguida. Bien, Vd. puede usar la configuración del núcleo de arranque de OpenBSD sin tener que recompilar su núcleo. De este modo tan sólo corregirá su problema por una vez. Si reinicia el sistema tendrá que repetir este procedimiento, por lo tanto ésta es sólo una solución temporal, y debería solucionar el problema mediante una recompilación de su núcleo. Si embargo, su núcleo necesita option BOOT_CONFIG compilada en el núcleo, y el núcleo GENERIC la tiene.

La mayor parte de lo que aquí se explica se puede encontrar en la página de manual boot_config(8).

Para iniciar en el modo "User Kernel Config" («Configuración del Núcleo del Usuario»), o UKC, en el momento del arranque use la opción -c.

O cualquier otro núcleo que desee arrancar. Al hacer esto le llevará al punto de pedido de UKC, desde donde podrá enviar órdenes directamente al núcleo, especificando los dispositivos que quiera cambiar o desactivar, o incluso activar.

He aquí una lista de órdenes comunes en UKC.

add device - Añadir un dispositivo copiando otro

change devno | device - Modifificar uno o más dispositivos

disable devno | device - Desactivar uno o más dispositivos

enable devno | device - Activar uno o más dispositivos

find devno | device - Encontrar uno o más dispositivos

help - Breve sumario de estas órdenes

list - Mostrar una lista de TODOS los dispositivos conocidos

exit/quit - Continuar el proceso de arranque

show [attr [val]] - Mostrar dispositivos con un atributo y, de forma opcional, con un valor especificado

Una vez que haya configurado su dispositivo, use quit o exit y continúe con el proceso de arranque. Después de esto debe corregir la configuración de su núcleo y compilar un nuevo núcleo. Vuelva a la sección 5.3 para obtener ayuda al respecto.

5.5 - Obtener una salida con más información durante el arranque

Los mensajes con más verbosidad durante el arranque pueden ayudar mucho al intentar depurar problemas de arranque. Si tiene un problema en el que su disquete de arranque no funciona y necesita más información, simplemente reinicie. Cuando llegue al punto de pedido "boot>", arranque con boot -c. Esto le llevará al punto de pedido UKC>, desde donde:

A continuación obtendrá unos mensajes con mucha verbosidad en el arranque.

5.6 - Usar config(8) para cambiar el núcleo

A partir de la versión 2.6 se introdujeron las opciones -e y -u en config(8). Estas opciones pueden llegar a ser de gran ayuda y ahorrar tiempo malgastado en la compilación del núcleo. El indicador -e le permite entrar en UKC en un sistema en funcionamiento. Los cambios que se apliquen comenzarán a funcionar a partir del siguiente reinicio del sistema. El indicador -u comprueba si se ha efectuado algún cambio al núcleo en funcionamiento durante el arranque. O sea, si ha usado boot -c para entrar en UKC mientras arrancaba su sistema.

El siguiente ejemplo muestra cómo desactivar los dispositivos ep* del núcleo. Por motivos de seguridad debería usar la opción -o, que guarda los cambios efectuados en el fichero que se le especifique. Por ejemplo: config -e -o bsd.new /bsd guardará los cambios en bsd.new. El ejemplo a continuación no usa la opción -o, por lo tanto los cambios se ignorarán y no se guardarán en el binario del núcleo. Para más información con respecto a los mensajes de errores y de avisos, lea la página de manual de config(8).

En el anterior ejemplo, todos los dispositivos ep* han sido eliminados del núcleo y no serán comprobados. En algunas situaciones en las que haya usado UKC durante el arranque, por medio de boot -c, necesitará que esos cambios se guarden permanentemente. Para ello necesitará usar la opción -u. En el siguiente ejemplo, la máquina se arrancó en UKC y el dispositivo wi(4) fue eliminado. Ya que los cambios efectuados con boot -c NO son permanentes, estos cambios deben ser guardados. En este ejemplo los cambios hechos con boot -c se guardan en un nuevo núcleo binario, bsd.new.

[Volver al índice principal] [Capítulo 4.0 - Guía de instalación] [Capítulo 6.0 - Redes]


[índice] www@openbsd.org
Originally [OpenBSD: faq5.html,v 1.45 2000/09/17 19:56:18 ericj Exp ]
$Translation: faq5.html,v 1.12 2000/09/26 21:56:11 horacio Exp $
$OpenBSD: faq5.html,v 1.8 2000/11/27 19:59:21 mickey Exp $