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>
 | 
						|
 |