Feeds:
Entradas
Comentarios

De mudanza

Si habeis pasado por aquí en los últimos días habreis visto una actividad anormalmente baja, y es debido al proceso de mudanza en el que me encuentro inmerso.

En breve continuaré añadiendo artículos. Saludos!

Anuncios

Tal y como explicaba en el primer artículo de esta serie de artículos sobre la compilación del kernel, compilar un kernel vanilla no es tarea fácil. Se requieren conocimientos avanzados para poder realizar este proceso. El kernel dispone de cientos de opciones que deberemos configurar. Si os decidís por este método,  vamos a ello. Debereis seguir los pasos explicados en el primer artículo para descargar el kernel que vayais a instalar.

Al igual que en la compilación de un kernel al estilo Debian, deberemos tener instaladas las siguientes herramientas para la compilación:

# aptitude install kernel-package libncurses5-dev fakeroot gcc make build-essential

Seguimos los pasos en este caso también para descomprimir el tarball. Copiamos el kernel que descargamos a /usr/src, descomprimimos y creamos un enlace llamado linux a la carpeta del kernel:

# cp /home/anduim/linux-2.6.28.tar.bz2 /usr/src/
# cd /usr/src
# tar xvjf linux-2.6.28.tar.bz2
# ln -s /usr/src/2.6.28/ linux
# cd linux

Si queremos utilizar las opciones del kernel anterior, haremos un

# make oldconfig (con lo cual se cargarán las opciones que teniamos en el otro kernel, y se nos avisará de las que hayan añadido)
# make menuconfig (entramos de lleno en la configuración)

NOTA: Si se quiere prescindir del initrd para el inicio con el nuevo kernel, es imprescindibe tener marcados como built-in (*) las opciones referentes al sistema de ficheros que estemos usando, en mi caso EXT3 (también EXT2), y las opciones correspondientes al soporte de SATA y/o RAID, según sea vuestro HD.

# make (este paso puede tardar bastante, dependiendo de la velocidad de tu ordenador)
# make modules_install

NOTA: En kernels anteriores era necesario hacer tambien un make modules, pero ya no, este paso se realiza automáticamente al hacer el make.

Una vez realizados estos pasos, tenemos dos opciones. O copiar a mano los ficheros necesarios para el arranque con el nuevo kernel, o dejar que se encargue de ello otro comando.

COPIAR FICHEROS DE ARRANQUE MANUALMENTE:

# cd /usr/src/linux
# cp System.map /boot/System.map-2.6.28-anduim
# cp .config /boot/config-2.6.28-anduim
# cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.28-anduim


COPIAR FICHEROS AUTOMATICAMENTE:

Ejecutamos el siguiente comando, y automaticamente se copiarán a /boot los ficheros System.map, .config y bzImage:

# make install

Continuamos con el proceso. Si hemos decidido hacer uso de initrd, deberemos generar dicho fichero. Hay que tener en cuenta que debe existir una carpeta con los módulos en /lib/modules, que se llame exactamente igual que la carpeta que contiene el kernel, en este caso sería /lib/modules/2.6.28. Esta carpeta se crea al ejecutarse el make modules_install. Ahora creamos el fichero de la siguiente forma:

# mkinitramfs -o /boot/initrd.img-2.6.28-anduim 2.6.28

Una vez generado el fichero initrd, solo nos faltará añadir la entrada correspondiente al fichero /boot/grub/menu.lst con el nuevo kernel:

title            Debian GNU/Linux, kernel 2.6.28-anduim
root             (hd0,0)
kernel           /boot/vmlinuz-2.6.28-anduim root=/dev/sda1 ro quiet
initrd           /boot/initrd.img-2.6.28-anduim

Los parámetros (hd0,0), y root=/dev/sda1 dependerán de cada caso en concreto, fijaros en la entrada de grub que usais habitualmente y sabreis cuales son los vuestros. Y la última linea, la del initrd, si habeis marcado bien en el menuconfig lo referente al Sistema de ficheros y las opciones SATA/IDE podreis eliminarlo, si no, dejadlo puesto para que arranque mientras buscais la solución.

Otras partes de la guía sobre el Kernel:

Lo primero es instalar todo lo necesario para la compilación (puede ser que algunas cosas ya estuvieran instaladas:)

# aptitude install kernel-package libncurses5-dev fakeroot gcc make build-essential

Copiamos a /usr/src el kernel que descargamos , descomprimimos y creamos un enlace llamado linux a la carpeta del kernel:

# cp /home/anduim/linux-2.6.28.tar.bz2 /usr/src/
# cd /usr/src
# tar xvjf linux-2.6.28.tar.bz2
# ln -s /usr/src/2.6.28/ linux
# cd linux

Ahora tenemos dos posibilidades. O usamos la configuración del kernel anterior para compilar, o configuramos el nuevo desde cero. Si nos decantamos por la primera opción, deberemos hacer lo siguiente (estando en /usr/src/linux):

# make oldconfig (con esto cargará automaticamente las opciones que tenías en el kernel anterior, y te dirá que novedades hay)

Si elegimos la segunda opción, entramos directamente a la configuración (agarraros fuerte, que vienen curvas 🙂

# make menuconfig

Aquí es donde realmente está lo complicado de compilar tu propio kernel. Si tienes dudas sobre que debes marcar y qué no, consúltalas o léete la ayuda que aparece en cada una de ellas. Una vez hayas revisado bien todo, salimos, guardando cuando nos pregunte, y comenzamos a generar el nuevo núcleo:

# make-kpkg clean
# fakeroot make-kpkg --initrd --revision="mi-version-1" kernel-image

Podemos cambiar “mi-version-1” por lo que queramos. Una vez que termine, se habrá creado un  fichero .deb en el directorio de arriba, el cual debemos instalar:

# cd ..
# dpkg -i kernel-image-2.6.28-mi-version-1.deb

Reiniciamos, y si todo estaba bien, arrancaremos con nuestro nuevo kernel.

Otras partes de la guía sobre el Kernel:

Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, el núcleo también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado

Esa es la definición de Kernel que nos da la Wikipedia. Como centro neurálgico o núcleo de nuestro sistema operativo, es lógico que en determinadas ocasiones nos veamos obligados a realizar cambios en el mismo.

Compilar un kernel no es tarea fácil y en la medida de lo posible deberíamos abstenernos de meternos en berenjenales. Aun así, si después de estar seguro que con uno precompilado (linux-image-x.x.x) no solucionas tu problema y te quieres meter de lleno en la compilación de un kernel a tu medida, has de saber que hay dos opciones distintas para realizar dicha labor:

  • Compilación al estilo Debian: de esta forma, lo que hacemos es instalar un kernel con las mismas opciones (si queremos) que teníamos con el kernel anterior y generar un paquete .deb para su posterior instalación.
  • Compilación de un Kernel Vanilla: Este método es bastante mas crudo, ya que partimos de un kernel totalmente limpio (si queremos), el cual modificaremos a nuestro gusto hasta dejarlo totalmente personalizado.

El lugar mas seguro para descargar el kernel es la página oficial del mismo: http://www.kernel.org. Evita hacer descargas a través de Emule, o de sitios extraños. En la portada de la misma tendremos los enlaces para descargar la versión del kernel que queramos. En nuestro caso, bajaremos el último estable, que a fecha de este artículo es la versión 2.6.28:

En la misma línea del kernel, a la derecha, vemos una serie de enlaces en forma de letra. Abajo nos explican que significa cada uno. La opción Changelog es importante, pues ahí podremos consultas las mejoras y novedades que aparecen en la nueva versión del núcleo.

Pulsamos en la F que hay a la derecha en la línea del kernel 2.6.28 para bajarnos las fuentes completas a nuestro directorio, y cuando termine, tendremos un fichero llamado linux-2.6.28.tar.bz2.

Enlaces complementarios:

Otras partes de la guía sobre el Kernel:

He instalado VirtualBox tanto en el Pc como en el portátil, y mientras que en el PC no he tenido problema alguno, al acceder en el portátil a la configuración de la instalación de XP que iba a empezar, recibía un mensaje advirtiéndome que los USB del sistema Anfitrión no iban a funcionar. Tal y como comentaba en el post anterior, la versión OSE no tenía soporte para USB (aunque he visto que hay por ahí algun truquillo) pero la PUEL si, que es la que he instalado yo. Así que estuve googleando un poco, y lo cierto es que no había mucha información para solucionar esto en Debian, la mayoría de los sitios hablaban de Ubuntu, y los tutoriales no servían para Debian.

Al final, la solución la saqué de dos tutoriales distintos, y tuve que hacer lo siguiente:

Creamos un grupo llamado usbusers con el GID 1007, que usaremos luego en /etc/fstab:

groupadd -g 1007 usbusers

Añadimos al usuario a ese grupo:

gpasswd -a anduim usbusers

Editamos /etc/init.d/mountkernfs.sh, buscamos la linea:

domount usbfs usbdevfs /proc/bus/usb usbfs -onodev,noexec,nosuid

y cambiarla por:

domount usbfs usbdevfs /proc/bus/usb usbfs -onodev,noexec,nosuid,devgid=1007,devmode=0666

Abrir /etc/fstab y añadir la siguiente linea:

none /proc/bus/usb usbfs devgid=1007,devmode=664 0 0

Reiniciamos la maquina, y para comprobar si VirtualBox ve los USB:

VBoxManage list usbhost

Para quien no lo sepa, VirtualBox es una de las varias herramientas de virtualización que existen. Este tipo de aplicaciones nos permiten instalar de forma virtual (es decir, sin tener que usar un disco duro o partición para ello, sino un fichero donde VirtualBox lo gestiona todo) prácticamente cualquier sistema operativo que queramos. Es muy util en casos como los siguientes:

  • Nuestro sistema operativo (en adelante SO) es Windows y queremos probar una distribución de Linux
  • Trabajamos habitualmente con Linux y necesitamos tener Windows XP para alguna tarea concreta que no podamos realizar con nuestra distro.
  • Simplemente queremos probar nuevas versiones o distribuciones diferentes a la nuestra.

Yo me decanto por VirtualBox (en adelante, VB) aunque existen otras alternativas, como Vmware, Qemu, etc. Hay dos alternativas (o versiones) a la hora de instalar VB en Debian:

  • VirtualBox OSE (Open Source Edition): es la versión libre (se han suprimido las partes privativas y eliminado algunas funciones)
  • VirtualBox PUEL o FULL (privativa) que solo se podrá utilizar para uso personal y de evaluación.

En Debian podemos instalar cualquiera de las dos. Una de las diferencias fundamentales en cuestión de usabilidad, es que la versión libre (OSE) NO tiene soporte para USB y para discos duros Serial ATA, mientras que la versión cerrada SI lo tiene. Es por eso que siempre me he decantado por instalar la versión privativa.

Una vez sabido esto, comentar que hay dos formas de instalar VB: o bien descargándonos desde la página oficial de SUN Microsistem el .deb para nuestro Debian o bien haciendo uso de los repositorios. Yo voy a explicar como hacerlo desde repositorios, y en unos pocos pasos, tendremos totalmente operativo nuestro VB.

Lo primero de todo es editar el fichero /etc/apt/sources.list y añadir al final del mismo el repositorio de la versión de Debian que estemos usando (en mi caso la segunda línea):

deb http://download.virtualbox.org/virtualbox/debian lenny non-free
deb http://download.virtualbox.org/virtualbox/debian etch non-free
deb http://download.virtualbox.org/virtualbox/debian sarge non-free

Guardamos los cambios y ahora descargamos la clave pública para el apt y la añadimos:

wget http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc
sudo apt-key add sun_vbox.asc

Actualizamos los repositorios:

sudo aptitude update

E instalamos el paquete:

sudo aptitude install virtualbox-2.1

Antes de finalizar la instalación nos avisará de la creación del grupo vboxusers, le decimos que si, y en caso de no estar compilado el modulo correspondiente, nos avisará de ello y la misma instalación se encargará del asunto. Una vez hecho esto, VB estará instalado y listo para funcionar.

No voy a entrar en detalles sobre como crear una instalación virtual, ya que la información es abundante. Aquí os dejo algunos enlaces sobre el tema:

¡Feliz Navidad!


:))) Os deseo a todos una Feliz Navidad y un Próspero Año Nuevo!!!