doc/es_ES.ISO8859-1/FAQ/kernelconfig.sgml

153 lines
6.8 KiB
Text
Raw Normal View History

<!-- $Id: kernelconfig.sgml,v 1.3 1998-11-26 22:33:33 nik Exp $ -->
<!-- The FreeBSD Documentation Spanish Project -->
<sect>
<heading>Configuracion del Kernel<label id="kernelconfig"></heading>
<sect1>
<heading>Me gustaria personalizar mi kernel. Es dificil?<label id="make-kernel"></heading>
<p>No!, primero, necesitas la distribucion completa de fuentes o,
por lo menos, la distribucion 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 politica
de <bf/NO/ vender nuestro kernel en formato binario.
<p>La instalacion de los fuentes ocupa un poco mas de espacio, pero
te permite consultar los fuentes del kernel en caso de dificultad
o entender que esta ocurriendo realmente en la ejecucion del sistema.
<p>Una vez tienes instalada la distribucion 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 todavia tienes un fichero de
configuracion del kernel de una release anterior de FreeBSD
2.X. - simplemente, copia el fichero antiguo y examinalo
cuidadosamente para asegurar que no haya cambiado la sintaxis
de algun driver, o haya alguno anticuado.
<p>Un buen fichero de configuracion para consultar es <tt/LINT/,
el cual contiene ejemplos documentados para todas las posibles
opciones del kernel. El fichero de configuracion <tt/GENERIC/ se
usa para crear el kernel "por defacto" que es el que estaras
usando si no has creado ninguno nuevo.
<p>Si no necesitas hacer ningun 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 copiara una imagen
del nuevo kernel a <tt>/kernel</tt> y <bf/realizara 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 cargara el nuevo kernel.
<p>Si la compilacion en el paso 7 falla por alguna razon, 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 configuracion
es incorrecto (o has decubierto un bug). Si la compilacion 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 configuracion 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 esten
funcionando correctamente. De esta manera, si la proxima vez que
juegues con el kernel algo no funciona, puedes arrancar desde el
ultimo kernel correcto. Esto es especialmente importante si ahora
estas arrancando desde una controladora no soportada por el kernel
GENERIC (si, experiencia personal).
<sect1>
<heading>La compilacion del kernel falla por "<tt/&lowbar;hw&lowbar;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 configuracion porque no tienes coprocesador
matematico, 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 solo el primer puerto es
testeado y el resto son obviados debido a conflictos de interrupcion.
Como soluciono esto?
<p>El problema en este caso es que FreeBSD tiene codigo 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. Aqui 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>Como activo el soporte para discos QIC-40/80?</heading>
<p>Necesitas "descomentar" la siguiente linea en el fichero generico
de configuracion (o anyadirla en ti propio fichero), anyade un
<tt/flags 0x1/ en la linea
<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 continuacion, 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 asi para
todos los dispositivos de este tipo que tengas.
<p>Tendras un dispositivo llamado <tt>/dev/ft0</tt>, al cual puedes
escribir a traves 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 mas
detalles.
<p>Versiones anteriores a la <tt/-current/ tenian 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 ultima version del programa <tt/ft/ que
encontraras en <tt>/usr/src/sbin/ft</tt> en <tt/-current/.
</sect>