_hw_float
is missing."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 NO vender nuestro kernel en formato binario.
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.
Una vez tienes instalada la distribución completa de fuentes, o por lo menos la del kernel, haz lo siguiente como root:
cd /usr/src/sys/i386/conf
cp GENERIC MYKERNEL
vi MYKERNEL
config MYKERNEL
cd ../../compile/MYKERNEL
make depend
make all
make install
reboot
El paso 2 no es necesario si todavía tienes un archivo de configuración del kernel de una release anterior de FreeBSD 2.X. - simplemente, copia el archivo antiguo y examínalo cuidadosamente para asegurar que no haya cambiado la sintaxis da algún driver, o haya alguno anticuado.
Un buen archivo de configuración para consultar es LINT, el cual contiene ejemplos documentados para todas las posibles opciones del kernel. El archivo de configuración GENERIC se usa para crear el kernel "por defacto" que es el que estarás usando si no has creado ninguno nuevo.
Si no necesitas hacer ningún cambio al archivo 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 /kernel y realizará una copia del antiguo kernel en /kernel.old. Es muy importante recordar esto por si el nuevo kernel falla en algun momento - puedes seleccionar kernel.old en el prompt de arranque. Al hacer un reboot, por defecto se cargará el nuevo kernel.
Si la compilación en el paso 7 falla por alguna razón, es recomendable que empieces desde el paso 4 substituyendo GENERIC por MYKERNEL. Si puedes generar el kernel GENERIC, significa que algo en tu archivo de configuración es incorrecto (o has decubierto un bug). Si la compilación del kernel GENERIC falla, posiblemente tengas los fuentes corruptos.
Finalmente, si necesitas ver los mensajes originales de arranque del sistema para compilar un nuevo kernel, ejecuta el comando 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.
NOTA Recomendamos hacer un historial fechado de los kernel que vayas creando, de la manera 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).
Dejame adivinar. Has borrado npx0 de tu archivo de configuración porque no tienes coprocesador matemático, no? Mal hecho :-) El dispositivo npx0 es OBLIGATORIO. Aunque no tengas coprocesador, debes incluir el dispositivo npx0
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?
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:
#
# 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
Necesitas "descomentar" la siguiente línea en el archivo genérico de configuración (o añadirla en tu propio archivo), añade un flags 0x1 en la línea fdc y recompila.
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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A continuación, crea un nuevo dispositivo llamado /dev/ft0 entrando en el directorio /dev y ejecutando el comando:
sh ./MAKEDEV ft0
Para el primer dispositivo. ft1 para el segundo y así para todos los dispositivos de este tipo que tengas.
Tendrás un dispositivo llamado /dev/ft0, al cual puedes escribir a través de un programa especial de manejo llamado ft - mira el man en ft para más detalles.
Versiones anteriores a la -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 ft que encontrarás en /usr/src/sbin/ft en -current
.
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista
<questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.