martes, 21 de agosto de 2007

Compilando Kernel de FreeBSD

Hay quien usa FreeBSD como un sistema de escritorio y no solo como un servidor, incluso hasta podemos tenerla en un portatil. Una de las cosas que casi con toda seguridad toca es la de compilar el kernel. Antes de seguir ni que decir que con la distribución que más se puede aprender sigue siendo la "Slacky" es decir la Slackware. En FreeBSD aparte de usar los ports es casi "imprescindible" recompilar el kernel.

Basicamente se necesita añadir:

  • Soporte para la tarjeta de sonido sin tener que cargar el driver en /etc/rc.conf
  • Soporte para altas resoluciones en la consola
  • Especificar que la CPU es i686
  • Soporte para CDROM
  • Soporte para Disquetera (aunque es una cosa obsoleta podriamos excluirla)
  • Soporte para puertos COM, LPT, etc
  • Drivers Ethernet o Wireless

¿Cómo compilar el kernel en FreeBSD?

El proceso de compilación del kernel en FreeBSD es muy simple. En /usr/src/sys se encuentra el código fuente del kernel. Si tenemos bien configurado el cvsup podemos actualizar el código a la última versión de esta forma:


# cd /usr/src
# make update

Con esto hemos actualizado el código fuente de todo el sistema base, ahora entramos en /usr/src/sys/i386/conf y hacemos una copia del fichero de configuración del kernel que viene por defecto:

# cd /usr/src/sys/i386/conf
# cp GENERIC NUEVOKERNEL

NUEVOKERNEL es un fichero de texto plano al que sólo tenemos que comentar (#) o descomentar las lineas adecuadas dependiendo de lo que estemos buscando. Para esto nos será extremadamente útil leer The Configuration File en el Handbook de FreeBSD. Lo editamos con ee (”easy editor”, viene por defecto en la instalación base) o con edir (lo prefiero por comodidad ya que el vi es bastante rollo.), y hacemos las modificaciones:

# edit NUEVOKERNEL

# cd /usr/src
# make buildkernel KERNCONF=NUEVOKERNEL

# make installkernel KERNCONF=NUEVOKERNEL

Ahora el nuevo kernel se ha instalado en /boot/kernel/kernel y el antiguo se ha movido a /boot/kernel.old/kernel
Reiniciamos: # reboot

Y si lo hemos hecho todo bien ya podemos disfrutar de un kernel a medida en nuestro sistema FreeBSD.

No hay comentarios: