El formato de un fichero de configuración es
bastante simple. Cada línea contiene una palabra
clave con uno o más argumentos. Para simplificar,
hay muchas líneas que solamente contienen un
argumento. Cualquier cosa detrás de un
#
se considerará un comentario y
en consecuencia será ignorado. Las siguientes
secciones describen todas las palabras clave en el orden
en el que aparecen en
GENERIC
.
Si quiere una lista exhaustiva de
de opciones dependientes de arquitectura y de dispositivos
puede consultar el fichero NOTES
en el mismo directorio donde está el fichero
GENERIC
. Si quiere ver las
opciones independientes de arquitectura consulte
/usr/src/sys/conf/NOTES
.
Puede generar un fichero que contenga todas las opciones
disponibles en un kernel. Esto es algo que solamente se
usa para hacer pruebas. Si quiere generarlo ejecute, como
root
, lo siguiente:
#
cd /usr/src/sys/i386
/conf && make LINT
A continuación veremos un ejemplo de fichero de
configuración de un kernel GENERIC
al que se han añadido comentarios adicionales donde se
ha visto que era necesario abundar un poco para mayor
claridad. Este ejemplo es igual (o, en el
peor de los casos, casi igual) que la copia del mismo
que tiene usted en
/usr/src/sys/
.
i386
/conf/GENERIC
Esta es la arquitectura de la máquina. Debe ser
alpha
, amd64
,
i386
, ia64
,
pc98
, powerpc
o
sparc64
.
Las opciones anteriores definen el tipo de CPU que
haya en su sistema. Puede dejar varias líneas
de CPU (si, por ejemplo, no está seguro de usar
I586_CPU
o I686_CPU
),
pero si está personalizando su kernel es mucho mejor
que solamente ponga la CPU que tenga. Si no está
seguro de la CPU que tiene busque en los mensajes de arranque
que se guardan en
/var/run/dmesg.boot
.
Este es el identificador del kernel. Modifíquelo
para que cuadre con el nombre que le haya dado a su kernel,
es decir,
si ha seguido los ejemplos anteriores. El valor que asigne
a la cadena MIKERNEL
ident
será el que
se muestre cuando arranque con su kernel, así que
es útil darle a su kernel un nombre distintivo que
permita distinguirlo fácilmente de otros, por ejemplo,
si está compilando un kernel experimental.
device.hints(5) se usa para configurar opciones
de controladores de dispositivo. La ubicación por
defecto en la que loader(8) buscará durante
el arranque es /boot/device.hints
. Si usa
la opción hints
puede compilar el
contenido de device.hints
en su kernel,
lo que hará innecesario crear ese fichero en
/boot
.
El proceso normal de compilación en FreeBSD
incluye información de depuración de
errores si se compila un kernel con la opción
-g
, que activa la información
de depuración de errores al pasar a
gcc(1).
El planificador de tareas tradicional y por omisión de FreeBSD. Déjelo como está.
Permite que hilos que están en el kernel puedan asociarse con hilos cuya prioridad sea más alta. Ayuda con la interactividad y permite que los hilos interrumpidos puedan ejecutarse antes en lugar de tener que esperar.
Networking. Deje esto como está, incluso si no tiene en mente conectar la máquina a una red. Muchos programas necesitan al menos disponer de lo que se llama «loopback networking» (esto es, poder efectuar conexiones de red con su propia máquina) así que tener esto es obligatorio.
Activa los protocolos de comunicación IPv6.
El sistema de ficheros básico para discos duros. Debe dejarlo como está si pretende poder arrancar desde disco duro.
Activa Soft Updates en el kernel, lo que acelerará
los accesos de escritura a sus discos. Esta funcionalidad
la facilita el kernel, pero debe activarse para cada disco
de forma específica. Revise la salida de
mount(8) y verá si Soft Updates está
activado en los discos de su sistema. Si no aparece la
opción soft-updates
actívela
mediante tunefs(8) (para sistemas de ficheros ya
existentes) o newfs(8) (en el caso de sistemas
de ficheros nuevos).
Esta opción activa en el kernel las listas de control de acceso. Consiste en el uso de atributos extendidos y UFS2 junto con las características que se describen detalladamente en la Sección 14.12, “Listas de control de acceso a sistemas de ficheros”. Las ACL por omisión están activadas, y no deben desactivarse del kernel una vez que hayan sido usadas en un sistema de ficheros puesto que eliminará las listas de control de acceso y el modo en el que se protegen esos ficheros de un modo totalmente fuera de control.
This option includes functionality to speed up disk operations on large directories, at the expense of using additional memory. You would normally keep this for a large server, or interactive workstation, and remove it if you are using FreeBSD on a smaller system where memory is at a premium and disk access speed is less important, such as a firewall.
Esta opción permite que la partición raíz esté en un disco virtual basado en memoria.
NFS, el sistema de ficheros en red. Salvo que tenga intención de montar particiones de sistemas de ficheros UNIX® de un servidor a través de TCP/IP puede comentar estas opciones.
El sistema de ficheros MS-DOS®. Salvo que tenga en mente
montar particiones de disco duro con formato DOS durante el
arranque puede comentar esta opción. En caso de
necesidad esta funcionalidad se cargará
automáticamente. También tiene a su
emulators/mtools
,
que le permitirá acceder a disquetes DOS sin tener
que montarlos y desmontarlos (y ni siquiera requiere
MSDOSFS
).
El sistema de ficheros ISO 9660 para CDROM. Coméntelo si no tiene unidad CDROM o solamente monta CD muy de vez en cuando; cuando lo necesite el sistema lo cargará dinámicamente. Los CD de sonido no utilizan este sistema de ficheros.
El sistema de ficheros de procesos. Es un sistema
de ficheros “simulado” que se monta en
/proc
y permite a programas como
ps(1) suministrar más información
sobre qué procesos están
ejecutándose. En la mayoaría de los casos
no es necesario usar PROCFS
,
puesto que la mayoría de las herramientas de
monitorización y depuración han sido
adaptadas para que funcionen sin
PROCFS
. De hecho aunque lo instale
el sistema no lo montará por omisión.
Los kernel 6.X pueden usar PSEUDOFS
al utilizar PROCFS
.
Con esta opción se puede tener una gran cantidad de particiones en un único disco.
Compatibilidad con 4.3BSD. Déjelo como está; ciertos programas pueden comportarse de formas muy extrañas si comenta esta opción.
FreeBSD 5.X en sistemas i386™ y Alpha necesita esta opción para poder usar aplicaciones compiladas en versiones antiguas de FreeBSD que utilizan, por tanto, llamadas al sistema más antiguas. Esta opción no es necesaria en plataformas en las que funciona FreeBSD desde 5.X, como ia64 y Sparc64®.
Esta opción hace falta en sistemas FreeBSD 6.X y versiones posteriores para poder ejecutar aplicaciones compiladas en FreeBSD 5.X, que usan interfaces de llamada al sistema FreeBSD 5.X.
Hace que el kernel haga una pausa de 5 segundos antes de probar los dispositivos SCSI del sistema. Si solamente tiene discos IDE puede ignorar esta opción, o también puede asignarle un valor menos para evitar el retardo en el arranque. Si lo hace y FreeBSD tiene problemas para reconocer dispositivos SCSI en el sistema es obvio que tendrá que incrementar el valor.
Activa las trazas en el kernel, algo muy útil para la depuración de errores.
Facilita memoria compartida System V. El uso más habitual es la extensión XSHM de X, que utiliza la mayoría de programas que hacen uso intensivo de los gráficos para incrementar la velocidad. Si usa X es casi seguro que le vendrá bien esta opción.
Mensajes System V. Esta opción añade solamente unos cuantos bytes al kernel.
Semáforos System V. No es demasiado frecuente que se utilicen, pero solamente añaden unos cuantos cientos de bytes al kernel.
La opción -p
de ipcs(1)
le mostrará una lista de procesos que estén
utilizando características
System V.
Extensiones en tiempo real añadidas en 1993 POSIX®. Ciertas aplicaciones de la Colección de Ports las utilizan, por ejemplo StarOffice™.
This option is required to allow the creation of keyboard device
nodes in /dev
.
Giant es un mecanismo de exclusión mutua
(«sleep mutex») que protege un gran conjunto
de recursos del kernel. Hoy en dia no es asumible tener
un cuello de botella así por el impacto que tiene
en el rendimiento, así que está siendo
reemplazado por bloqueos que protegen los recursos de
manera individual. ADAPTIVE_GIANT
hace que Giant sea incluido en un conjunto de
«mutextes» que va rotando
Esto es, cuando un hilo quiere
bloquear el Giant mutex (pero ya está bloqueado
por un hilo de otra CPU) el primer hilo seguirá
ejecutándose a la espera de que se libere el
bloqueo. Generalmente el hilo volverá al estado
de reposo y esperará hasta que aparezca otra
oportunidad de ejecutarse. Si no está seguro de
lo que está haciendo es mejor que deje esta
opción tal y como está.
Tenga en cuenta que en FreeBSD 8.0-CURRENT y
versiones siguientes todos los «mutexes»
son adaptables por omisión, salvo que se use
la opción
NO_ADAPTIVE_MUTEXES
. El resultado
evidente que es Giant es adaptable por omisión,
así que la opción
ADAPTIVE_GIANT
ha sido eliminada de
la configuración.
El dispositivo apic activa la E/S APIC en la entrega
de interrupciones. El dispositivo apic puede usarse tanto en
kernels para un procesador (UP) como para sistemas
multiprocesador (SMP). Si añada
options SMP
funcionará en
sistemas multiprocesador.
El dispositivo apic existe solamente en la arquitectura i386, de modo que no debe usarse esta línea en otras arquitecturas.
Use esta opción si tiene una placa base EISA. Activa la detección automática y permite la configuración de todos los dispositivos que estén en el bus EISA.
Use esta opción si tiene una placa PCI. Permite la detección automática de tarjetas PCI y permite la configuración entre el bus ISA y el PCI.
Este dispositivo es el controlador de la unidad de disquetes.
Este controlador permite utilizar dispositivos ATA
y ATAPI. Si añade al kernel
one device ata
éste detectará
cualquier dispositivo ATA/ATAPI PCI que conecte a una
máquina moderna.
Si usa device ata
tendrá que
añadir también esto para poder usar unidades
de disco ATA.
Si usa device ata
tendrá que
añadir también esto para poder usar unidades
de disco ATA RAID.
Si usa device ata
tendrá que
añadir también esto para poder usar unidades
ATAPI CDROM.
Si usa device ata
tendrá que
añadir también esto para poder usar unidades
de disquete ATAPI.
Si usa device ata
tendrá que
añadir también esto para poder usar unidades
de cinta ATAPI.
Con esta opción hace que el número de controladores sea estático; si no se usa los números de dispositivo se asignan dinámicamente.
Controladoras SCSI. Coméntelas si no las tiene
en su sistema. Si en su sistema tiene solamente unidades IDE
puede borrarlas todas.
Las líneas *_REG_PRETTY_PRINT
son
opciones de depuración de errores de sus
respectivos controladores de dispositivo.
Periféricos SCSI. Estos también puede borrarlos sin problemas si no los tiene en su sistema o si solamente tiene hardware IDE.
El controlador USB umass(4) (y unos cuantos controladores más) utilizan el subsistema SCSI aunque no sean dispositivos SCSI reales. No elimine el subsistema SCSI del kernel si va a utilizar cualquiera de estos controladores.
Controladoras RAID que pueden utilizarse en FreeBSD. Si no las tiene en su sistema puede borrarlas.
El controlador de teclado (atkbdc
)
ofrece servicios de E/S con teclados AT y ratones PS/2. El
controlador de teclado
(atkbd
) y el controlador de ratón PS/2
(psm
) necesitan este dispositivo.
El controlador atkbd
, junto con el
controlador atkbdc
, permiten utilizar el
teclado AT 84 u otros tipos de teclados AT mejorados que se
conecten mediante el controlador de teclado AT.
Utilice este dispositivo si conecta su ratón en el puerto PS/2.
Funcionalidad básica para múltiples teclados. Si no tiene en mente usar más de un teclado en el sistema puede borrar esta línea sin mayor problema.
El controlador de la tarjeta gráfica.
«Splash screen» en el arranque. Los salvapantallas necesitan este dispositivo.
sc
por omisión es el controlador
de dispositivo de la consola; se parece mucho a una consola de
SCO. Dado que muchos programas de pantalla completa acceden
a la consola a través de la biblioteca de bases de datos
de terminal
termcap
no tiene demasiada importancia si
usa vt
, el controlador de consola compatible
VT220
. Cuando acceda al sistema asigne a
su variable TERM
el valor
scoansi
si los programas a pantalla completa
tienen algún problema para acceder a la consola.
El controlador de dispositivo VT220-compatible;
es compatible con VT100/102, anterior a él. Funciona
bien en ciertos sistemas portátiles que adolecen de
incompatibilidad de harware con
sc
. Asigne a su variable de entorno
TERM
el valor vt100
o
vt220
cuando acceda al sistema. Este
controlador le puede ser de utilidad si tiene que acceder
a gran cantidad de máquinas a través de una
red, una situación en la que suele suceder que
termcap
o
terminfo
no están ahí
para que las use sc
.
vt100
, por el contrario, debería
aparecer en práticamente cualquier
plataforma.
Utilice esta opción si tiene en el sistema una tarjeta AGP. Activará AGP y también AGP GART si su tarjeta puede usarla.
Gestión avanzada de la energía. Muy
útil en sistemas portátiles. Viene
desactivada por omisión en el kernel
GENERIC
.
Controlador del reloj para eventos de gestión de la energía, como APM y ACPI.
Dispositivos PCMCIA. Si el sistema es portátil necesita tener esto activado.
Estos son los puertos serie a los que se conoce como
puertos COM
en entornos
MS-DOS®/Windows®.
Si tiene un módem interno en
COM4
un puerto serie en
COM2
tendrá que
asignar a la IRQ del módem el 2 (por razones
técnicas ignotas IRQ2 = IRQ 9) para que pueda
acceder al dispositivo desde FreeBSD. Si tiene una tarjeta
serie multipuerto consulte la página de manual de
sio(4) si quiere más detalles sobre los
valores que debe añadir a
/boot/device.hints
. Algunas tarjetas
gráficas (sobre todo las que usan chips S3) utilizan
direcciones IO del tipo
0x*2e8
y dado que muchas tarjetas serie
de baja calidad no decodifican correctamente el espacio de
direcciones de 16 bits chocan con estas tarjetas, haciendo
que el puerto COM4
sea
prácticamente inútil.
Es necesario que cada puerto serie tenga una IRQ
única (salvo que use una tarjeta multipuerto que
permita compartir interrupciones), así que las
IRQ de COM3
y de
COM4
no se pueden
utilizar.
El interfaz del puerto paralelo de bus ISA.
El bus del puerto paralelo.
Permite usar el puerto paralelo para conectar impresoras.
Necesitará disponer de los tres anteriores para poder utilizar impresoras mediante el puerto paralelo.
Este controlador es para la interfaz de red a través del puerto paralelo.
La E/S de propósito general (conocida también como “puerto geek”) + E/S IEEE1284.
Este dispositivo se usa con unidades Iomega Zip. Necesita
scbus
y da
. El mejor
rendimiento se alcanza con el uso de los puertos en modo
EPP 1.9.
Puede utilizar este dispositivo si tiene una tarjeta PCI “tonta” (por puerto serie o paralelo) que funcione mediante el controlador puc(4).
Diversos controladores para tarjetas de red PCI. Puede borrar todas las que no estén en su sistema.
El poder utilizar bus MII es necesario para ciertas tarjetas
Ethernet PCI 10/100, más concretamente las que usan
transceptores compatibles con MII o implementan interfaces
de control de transceptores que funcionan como si fueran
MII. Si incluye device miibus
al kernel
dispondrá de la API miibus genérica y todos los
controladores PHY, incluyendo uno que hará funcionar
hardware que, siendo del tipo PHY, no está bajo ninguno
de los controladores PHY específicos.
Controladores que utilizan el código del controlador de bus MII.
Controladores Ethernet ISA. Consulte
/usr/src/sys/
para más detalles sobre qué tarjetas hace funcionar
qué controlador.i386
/conf/NOTES
802.11 genérico. Necesitará esta línea si va a usar redes inalámbricas.
Criptografía en dispositivos 802.11. Necesita estas líneas si quiere utilizar criptografía y protocolos de seguridad 802.11.
Diversas tarjetas inalámbricas.
El dispositivo de «loopback» para
TCP/IP. Si accede por telnet o FTP
or FTP to localhost
también
conocido como 127.0.0.1
) lo hará a
través de este dispositivo. Es
imprescindible tenerlo en el
sistema.
Generador de números criptográficamente seguro.
ether
solo es necesario si tiene
alguna tarjeta Ethernet. Incluye código
genérico del protocolo Ethernet.
sl
permite utilizar SLIP. Ha sido
sustituido casi totalmente por PPP, que es más
fácil de usar, está mejor capacitado para
la conexión de módem a módem y es,
en general, claramente mejor.
Este dispositivo incluye en el kernel la capacidad de
gestionar conexiones de llamada entrante
«dial-up». Hay también una versión
de PPP implementada como aplicación de usuario; utiliza
tun
y ofrece más flexibilidad y
características como la llamada bajo
petición.
Este dispositivo lo usa el software PPP de usuario. Consulte la sección sobre PPP de este mismo libro.
Este dispositivo es una “pseudoterminal”,
o un puerto de entrada al sistema simulado. Se usa en
sesiones entrantes de telnet
y
rlogin
; también lo usan
xterm y otras aplicaciones, entre
las que encontramos a Emacs.
Pseudodispositivos de disco basados en memoria.
Este dispositivo implementa túneles de IPv6
sobre IPv4, IPv4 sobre IPv6, IPv4 sobre IPv4 e
IPv6 sobre IPv6. El dispositivo
gif
se puede clonar a sí mismo,
así que los nodos de dispositivo se van creando a
medida que van haciendo falta.
Este pseudodispositivo captura paquetes que se le hayan enviado y los dirige hacia el dæmon de traducción IPv4/IPv6.
El filtro de paquetes de Berkeley. Este pseudodispositivo permite poner interfaces de red en modo promíscuo, lo que significa que capturan todos los paquetes que circulen por una red broadcast (por ejemplo una Ethernet). Dichos paquetes pueden guardarse en disco para su posterior examen mediante tcpdump(1) (el análisis con tcpdump(1) no puede hacerse directamente también).
El dispositivo bpf(4) también lo usa dhclient(8) para obtener direcciones IP del encaminador (gateway) por omisión. Si usa DHCP deje esta opción como está.
Diversos dispositivos USB.
Diversos dispositivos Firewire.
Tiene más información y una lista
con más dispositivos que funcionan en FreeBSD
consulte
/usr/src/sys/
.i386
/conf/NOTES
Las máquinas que tienen configuraciones con grandes cantidades de memoria necesitan acceder a más de 4 gigabytes de espacio de direcciones KVA (User+Kernel Virtual Address). Debido a esta limitación Intel añadió a las CPU Pentium® Pro y modelos posteriores la posibilidad de acceso al espacio de direcciones físicas de 36 bits.
PAE (Physical Address Extension)
a las CPU Intel® Pentium® Pro y los modelos posteriores
configuraciones de memoria de hasta 64 gigabytes.
Para poder aprovechar esto en FreeBSD existe la
opción del kernel
PAE
, disponible en todas las versiones
modernas de FreeBSD. A causa de esta limitación de
memoria en los Intel no hay nada que distinga de
algún modo la memoria situada por debajo del
límite de los 4 gigabytes. La memoria que
esté por encima de los 4 gigabytes se coloca
en el «pool» de memoria disponible.
Si quiere activar PAE en el kernel tiene que añadir la siguiente liínea al fichero de configuración del kernel:
En FreeBSD PAE solamente existe en procesadores Intel® IA-32. Hemos de advertirle de que PAE no ha sido probado todo lo necesario, así que debe considerarse de calidad beta, sobre todo si se le compara con otras características de FreeBSD.
PAE en FreeBSD tiene varias limitaciones:
Un solo proceso no puede acceder a más de 4 gigabytes de espacio VM.
No puede cargar módulos KLD en un kernel que tenga PAE activado debido a las diferencias existentes entre el «framework» de compilación del módulo y el del kernel mismo.
Los controladores de dispositivo que utilizan
el interfaz bus_dma(9) pueden provocar
corrupción de datos en un kernel con
PAE activado, una excelente
razón para no utilizarlos. Esta es
la razón de que FreeBSD incorpore un fichero
de configuración de un kernel
PAE
del que se han
extraído todos los módulos que
se sabe que no funcionan en un kernel con
PAE activado.
Algunos «system tunables» determinan el
uso de recursos de memoria basándose en la
memoria física disponible. Estos «tunables»
pueden asignar más memoria de la que realmente
debieran debido a que el sistema PAE
está íntimamente ligado a cantidades
bastante importantes de memoria. Un ejemplo de esto
es la sysctl kern.maxvnodes
, que
controla el número máximo de vnodes
permitidos en el kernel. Le recomendamos que
ajuste este y otros tunables dentro valores
razonables.
Es posible que tenga que aumentar el espacio virtual
de direcciones del kernel (el KVA)
o reducir la cantidad de recursos exclusivos del kernel
que se utilicen exhaustivamente (ver más
arriba) para evitar que KVA literalmente
se ahogue. La opción del kernel
KVA_PAGES
permite incrementar el
espacio KVA.
Si quiere saber más sobre la estabilidad del sistema consulte la página de manual de tuning(7). La página de manual de pae(4) contiene información actualizada sobre PAE y FreeBSD.
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Si tiene dudas sobre FreeBSD consulte la
documentación antes de escribir a la lista
<questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a
<doc@FreeBSD.org>.