doc/es_ES.ISO8859-1/FAQ/kernelconfig.sgml
1999-09-06 06:53:43 +00:00

156 lines
7.2 KiB
Text

<!-- $FreeBSD$ -->
<!-- The FreeBSD Documentation Spanish Project -->
<sect>
<heading>Configuraci&oacute;n del Kernel<label id="kernelconfig"></heading>
<sect1>
<heading>Me gustar&iacute;a personalizar mi kernel. &iquest;Es dif&iacute;cil?<label id="make-kernel"></heading>
<p>No!, primero, necesitas la distribuci&oacute;n completa de fuentes o,
por lo menos, la distribuci&oacute;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&iacute;tica
de <bf/NO/ vender nuestro kernel en formato binario.
<p>La instalaci&oacute;n de los fuentes ocupa un poco m&aacute;s de
espacio, pero te permite consultar los fuentes del kernel en caso de
dificultad o entender que est&aacute; ocurriendo realmente en la
ejecuci&oacute;n del sistema.
<p>Una vez tienes instalada la distribuci&oacute;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&iacute;a tienes un fichero de
configuraci&oacute;n del kernel de una release anterior de FreeBSD
2.X. - simplemente, copia el fichero antiguo y exam&iacute;nalo
cuidadosamente para asegurar que no haya cambiado la sintaxis
da alg&uacute;n driver, o haya alguno anticuado.
<p>Un buen fichero de configuraci&oacute;n para consultar es <tt/LINT/,
el cual contiene ejemplos documentados para todas las posibles
opciones del kernel. El fichero de configuraci&oacute;n <tt/GENERIC/ se
usa para crear el kernel "por defacto" que es el que estar&aacute;s
usando si no has creado ninguno nuevo.
<p>Si no necesitas hacer ning&uacute;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&aacute; una
im&aacute;gen del nuevo kernel a <tt>/kernel</tt> y <bf/realizar&aacute;
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&aacute; el nuevo kernel.
<p>Si la compilaci&oacute;n en el paso 7 falla por alguna raz&oacute;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&oacute;n
es incorrecto (o has decubierto un bug). Si la compilaci&oacute;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&oacute;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&eacute;n
funcionando correctamente. De esta manera, si la pr&oacute;xima vez que
juegues con el kernel algo no funciona, puedes arrancar desde el
&uacute;ltimo kernel correcto. Esto es especialmente importante si ahora
est&aacute;s arrancando desde una controladora no soportada por el kernel
GENERIC (si, experiencia personal).
<sect1>
<heading>La compilaci&oacute;n 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 configuraci&oacute;n porque no tienes coprocesador
matem&aacute;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&oacute;lo el primer puerto es
testeado y el resto son obviados debido a conflictos de
interrupci&oacute;n. C&oacute;mo soluciono esto?
<p>El problema en este caso es que FreeBSD tiene c&oacute;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&iacute; 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>&iquest;C&oacute;mo activo el soporte para discos QIC-40/80?</heading>
<p>Necesitas "descomentar" la siguiente l&iacute;nea en el fichero
gen&eacute;rico de configuraci&oacute;n (o a&ntilde;adirla en tu propio
fichero), a&ntilde;ade un <tt/flags 0x1/ en la l&iacute;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&oacute;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&iacute; para
todos los dispositivos de este tipo que tengas.
<p>Tendr&aacute;s un dispositivo llamado <tt>/dev/ft0</tt>, al cual puedes
escribir a trav&eacute;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&aacute;s
detalles.
<p>Versiones anteriores a la <tt/-current/ ten&iacute;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 &uacute;ltima versi&oacute;n del programa
<tt/ft/ que encontrar&aacute;s en <tt>/usr/src/sbin/ft</tt> en
<tt/-current/.
</sect>