156 lines
7.2 KiB
Text
156 lines
7.2 KiB
Text
<!-- $FreeBSD$ -->
|
|
<!-- The FreeBSD Documentation Spanish Project -->
|
|
<sect>
|
|
<heading>Configuración del Kernel<label id="kernelconfig"></heading>
|
|
|
|
<sect1>
|
|
<heading>Me gustaría personalizar mi kernel. ¿Es difícil?<label id="make-kernel"></heading>
|
|
|
|
<p>No!, primero, necesitas la distribución completa de fuentes o,
|
|
por lo menos, la distribución de fuentes del kernel. De esta manera
|
|
tienes los fuentes necesarios para crearte un nuevo kernel. Al
|
|
contrario que muchos Unix comerciales, nosotros tenemos la política
|
|
de <bf/NO/ vender nuestro kernel en formato binario.
|
|
|
|
<p>La instalación de los fuentes ocupa un poco más de
|
|
espacio, pero te permite consultar los fuentes del kernel en caso de
|
|
dificultad o entender que está ocurriendo realmente en la
|
|
ejecución del sistema.
|
|
|
|
<p>Una vez tienes instalada la distribución completa de fuentes, o
|
|
por lo menos la del kernel, haz lo siguiente como root:
|
|
|
|
<enum>
|
|
<item> <tt>cd /usr/src/sys/i386/conf</tt>
|
|
<item> <tt/cp GENERIC MYKERNEL/
|
|
<item> <tt/vi MYKERNEL/
|
|
<item> <tt/config MYKERNEL/
|
|
<item> <tt>cd ../../compile/MYKERNEL</tt>
|
|
<item> <tt/make depend/
|
|
<item> <tt/make all/
|
|
<item> <tt/make install/
|
|
<item> <tt/reboot/
|
|
</enum>
|
|
|
|
<p>El paso 2 no es necesario si todavía tienes un fichero de
|
|
configuración del kernel de una release anterior de FreeBSD
|
|
2.X. - simplemente, copia el fichero antiguo y examínalo
|
|
cuidadosamente para asegurar que no haya cambiado la sintaxis
|
|
da algún driver, o haya alguno anticuado.
|
|
|
|
<p>Un buen fichero de configuración para consultar es <tt/LINT/,
|
|
el cual contiene ejemplos documentados para todas las posibles
|
|
opciones del kernel. El fichero de configuración <tt/GENERIC/ se
|
|
usa para crear el kernel "por defacto" que es el que estarás
|
|
usando si no has creado ninguno nuevo.
|
|
|
|
<p>Si no necesitas hacer ningún cambio al fichero <tt/GENERIC/,
|
|
puedes saltar al paso 3, donde personalizas el kernel para tu
|
|
sistema. El paso 8 solo debe ejecutarse si los pasos 6 y 7 se
|
|
han realizado de manera satisfactoria. Esto copiará una
|
|
imágen del nuevo kernel a <tt>/kernel</tt> y <bf/realizará
|
|
una copia del antiguo kernel en/ <tt>/kernel.old</tt>. Es muy importante
|
|
recordar esto por si el nuevo kernel falla en algun momento - puedes
|
|
seleccionar <tt>kernel.old</tt> en el prompt de arranque. Al hacer
|
|
un reboot, por defecto se cargará el nuevo kernel.
|
|
|
|
<p>Si la compilación en el paso 7 falla por alguna razón, es
|
|
recomendable que empieces desde el paso 4 substituyendo
|
|
<tt/GENERIC/ por <tt/MYKERNEL/. Si puedes generar el kernel
|
|
<tt/GENERIC/, significa que algo en tu fichero de configuración
|
|
es incorrecto (o has decubierto un bug). Si la compilación del
|
|
kernel <tt/GENERIC/ falla, posiblemente tengas los fuentes
|
|
corruptos.
|
|
|
|
<p>Finalmente, si necesitas ver los mensajes originales de arranque
|
|
del sistema para compilar un nuevo kernel, ejecuta el comando
|
|
<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?dmesg"
|
|
name="dmesg">. Este comando debe imprimir en pantalla todos los
|
|
mensajes producidos por el kernel al arrancar, los cuales te
|
|
pueden servir en la configuración de tu nuevo kernel.
|
|
|
|
<p><bf/NOTA/ Recomendamos hacer un historial fechado de los kernel
|
|
que vayas creando, de la manera <tt/kernel.YYMMDD/ una vez estén
|
|
funcionando correctamente. De esta manera, si la próxima vez que
|
|
juegues con el kernel algo no funciona, puedes arrancar desde el
|
|
último kernel correcto. Esto es especialmente importante si ahora
|
|
estás arrancando desde una controladora no soportada por el kernel
|
|
GENERIC (si, experiencia personal).
|
|
|
|
<sect1>
|
|
<heading>La compilación del kernel falla por "<tt/_hw_float/ is missing."</heading>
|
|
|
|
<p>Dejame adivinar. Has borrado <htmlurl
|
|
url="http://www.FreeBSD.org/cgi/man.cgi?npx(4)" name="npx0">
|
|
de tu fichero de configuración porque no tienes coprocesador
|
|
matemático, no? Mal hecho :-) El dispositivo <tt/npx0/ es
|
|
<bf/OBLIGATORIO/. Aunque no tengas coprocesador, debes incluir
|
|
el dispositivo <tt/npx0/
|
|
|
|
<sect1>
|
|
<heading>Conflicto de interrupciones con tarjeta serie multi-port.</heading>
|
|
|
|
<p>Cuando compilo el kernel con drivers para tarjetas serie
|
|
multipuerto, el sistema me dice que sólo el primer puerto es
|
|
testeado y el resto son obviados debido a conflictos de
|
|
interrupción. Cómo soluciono esto?
|
|
|
|
<p>El problema en este caso es que FreeBSD tiene código interno que
|
|
evita caidas del sistema por conflictos de hardware o software. La
|
|
manera de solucionar esto es dejar en blanco la entrada correspondiente
|
|
a la irq en todos los puertos excepto en uno. Aquí tienes un
|
|
ejemplo:
|
|
|
|
<verb>
|
|
#
|
|
# Multiport high-speed serial line - 16550 UARTS
|
|
#
|
|
device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
|
|
device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
|
|
device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
|
|
device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr
|
|
</verb>
|
|
|
|
<sect1>
|
|
<heading>¿Cómo activo el soporte para discos QIC-40/80?</heading>
|
|
|
|
<p>Necesitas "descomentar" la siguiente línea en el fichero
|
|
genérico de configuración (o añadirla en tu propio
|
|
fichero), añade un <tt/flags 0x1/ en la línea
|
|
<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fdc(4)" name="fdc">
|
|
y recompila.
|
|
|
|
<verb>
|
|
controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr
|
|
disk fd0 at fdc0 drive 0 ^^^^^^^^^
|
|
disk fd1 at fdc0 drive 1
|
|
#tape ft0 at fdc0 drive 2
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
</verb>
|
|
|
|
<p>A continuación, crea un nuevo dispositivo llamado
|
|
<tt>/dev/ft0</tt> entrando en el directorio <tt>/dev</tt> y ejecutando
|
|
el comando:
|
|
|
|
<verb>
|
|
sh ./MAKEDEV ft0
|
|
</verb>
|
|
|
|
<p>Para el primer dispositivo. <tt/ft1/ para el segundo y así para
|
|
todos los dispositivos de este tipo que tengas.
|
|
|
|
<p>Tendrás un dispositivo llamado <tt>/dev/ft0</tt>, al cual puedes
|
|
escribir a través de un programa especial de manejo llamado
|
|
<tt/ft/ - mira el man en <htmlurl
|
|
url="http://www.FreeBSD.org/cgi/man.cgi?ft" name="ft"> para más
|
|
detalles.
|
|
|
|
<p>Versiones anteriores a la <tt/-current/ tenían algunos problemas
|
|
al encontrase con cintas en mal estado; si tienes problemas en los
|
|
que parece que la cinta se rebovina siempre al llegar al mismo
|
|
lugar, intenta utilizar la última versión del programa
|
|
<tt/ft/ que encontrarás en <tt>/usr/src/sbin/ft</tt> en
|
|
<tt/-current/.
|
|
|
|
</sect>
|
|
|