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