10.2. Ahora, ¿Qué Debo Hacer?

Lo primero es, editar el fichero sys/conf/options (o bien sys/<arch>/conf/options. <arch>, por ejemplo; /sys/i386/conf/options.i386), y seleccionar un fichero opt_foo.h que mejor describa la nueva opción, para su inclusión.

Si ya existiese alguno, que se acerce al propósito de la nueva opción, debe elegir ese. Por ejemplo, opciones que modifiquen el comportamiento global del subsistema SCSI, pueden incluirse en opt_scsi.h. Por default, con el simple hecho de mencionar una opción en el fichero apropiado, digamos FOO, implica que el valor correspondiente a esta opción se localiza en el fichero correspondiente opt_foo.h. Por otro lado, esto puede modificarse al especificar el nombre de otro fichero.

Si el fichero opt_foo.h para la nueva opción no existiera, invente un nuevo nombre. Creelo de manera que sea intuitivo, con significado, y comente la nueva sección en el fichero options[.<arch>]. En la ejecución de config(8), este automágicamente reconocerá los cambios, y creará ese fichero, la próxima vez que se ejecute. La mayoría de las opciones deberán incluirse como encabezados por si mismos..

El hecho de incluir muchas opciones, dentro de un solo fichero opt_foo.h, tendrá como resultado la creación de un buen numero de ficheros del kernel, durante la compilación, cuando sólo se haya realizado un cambio en alguna de las opciones del fichero de configuración del kernel, por esta razón es conveniente conservar cada opción en su propio fichero opt_.

Finalmente, averigue las dependencias que existen para la nueva opción. A menos que la nueva opción sea de nueva creación, y no exista en ninguna parte, la siguiente alternativa es su amiga, para efecto de encontrar dependencias:

% 
      find /usr/src/sys -type f | xargs fgrep NUEVA_OPCION
     

El comando anterior dará como resultado un listado de ficheros que tienen dependecia, dirijase a todos esos ficheros y añada lo siguiente, en la parte superior (como encabezado), antes de todo lo que se refiere a #include <xxx.h>.

#include "opt_foo.h"

El seguir este orden es de suma importancia, en virtud de que las opciones pueden modificar el comportamiento, por omisión, de los ficheros normales del tipo “#include” (N de T: librerís de encabezado), si estos son del tipo:

 #ifndef NUEVA_OPCION #define NUEVA_OPCION (algo)
    #endif

El añadir una opción que substituye algún encabezado, en ficheros del sistema (por ejemplo; un fichero que se localiza en /usr/include/sys/) da como resultado casi siempre un error. El fichero opt_foo .h no puede ser incluido en esos ficheros, en virtud de que generaran un conflicto más serio, con sus propios encabezados, pero si no son incluidos, al momento de que se deseen utilizar, se puede obtener un valor inconsistente para esta opción. Si, existen antecedentes de esto en este momento, pero eso no lo hace más correcto.

Éste y otros documentos pueden obtenerse en ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para preguntas acerca de FreeBSD, leer la documentación antes de contactar con la lista <questions@FreeBSD.org>.
Para preguntas acerca de esta documentación, e-mail a <doc@FreeBSD.org>.