Recompilando módulos del kernel de VirtualBox en Slackware

Ayer y hoy hubo una gran actualización de la rama Slackware -current, muchos paquetes se actualizaron otros se agregaron y hubo algunos eliminados.

Entre las actualizaciones hubo actualizaciones del kernel, y como siempre cuando esto pasa los módulos de VirtualBox tienen que ser recompilados para que puedan seguir funcionando. Sino se hace esto, al tratar de iniciar una máquina virtual saldrá un error en el que se da la instrucción de recompilar los módulos. Sin embargo el comando que especifica no funciona para Slackware.

El comando que si funciona en Slackware es el siguiente:

# /etc/rc.d/rc.vboxdrv setup

Con ello las máquinas virtuales siguen funcionando normalmente.

vboxdrv

NOTA: Mi versión de VirtualBox es todavía la 4.1.12.

Saludos Slackers…

Instalación de paquetes con sbopkg

Como buen Slacker siempre busco el paquete que deseo instalar primero en el sitio de SlackBuilds (http://www.slackbuilds.org/) y si no se encuentra en el sitio pues a buscar en otro lado con el Google.

El procedimiento para instalar un SlackBuild es simple y está bien descrito en su mismo sitio (obviamente en inglés) además de que todo slacker se lo debe de saber, ¿o no?. Bueno, resulta que hay un método para «automatizar» el proceso y no hacerlo tan manual, es por medio de una aplicación que se llama sbopkg.

sbopkg es una herramienta de línea de comandos y basada en diálogos para la sincronización con los repositorios de SlackBuilds.org («SBo»), es una colección de scripts SlackBuild de terceros para crear paquetes de Slackware. sbopkg es mantenido activamente y se suele liberar una nueva versión cada tres meses. Numerosas personas han contribuido con diffs, informando de errores, y dando sugerencias útiles y todos ellos son mencionados en el archivo THANKS (Gracias( en /usr/doc/sbopkg-$VERSION. Esta utilidad no estaría ni de lejos a su estado actual sin la ayuda de estas personas.

El sitio oficial de sbopkg es sbopkg.org y la descarga del paquete se realiza desde http://sbopkg.org/downloads.php dando clic en la opción Package misma que descargará un archivo llamado: sbopkg-0.35.0-noarch-1_cng.tgz.

La instalación del paquete se realiza como cualquier otro:

# installpkg sbopkg-0.35.0-noarch-1_cng.tgz

Listo, ahora para empezar a usar la aplicación se puede hacer de dos formas, una con los menus y otra por medio de la linea de comandos.

Usando el sistema de menus

Para la primera hay que ejecutar el siguiente comando sin parámetros o argumentos:

# sbopkg

Y como es la primera vez que lo ejecuto aparece que faltan algunos directorios de configuración necesarios y pregunta si se desea crearlos, contestando «C» y ENTER se procede a crearlos y se abre el programa:

The following directories do not exist:

Variable Assignment
-------- ----------
REPO_{ROOT,NAME,BRANCH} -> /var/lib/sbopkg/,SBo/,13.37
LOGFILE directory -------> /var/log/sbopkg
QUEUEDIR ----------------> /var/lib/sbopkg/queues
SRCDIR ------------------> /var/cache/sbopkg

TMP ---------------------> /tmp/SBo

You can have sbopkg create them or, if these values are incorrect, you can
abort to edit your config files or pass different flags.

(C)reate or (A)bort?: c

sbopkg

sbopkg corriendo

Si se hace una busqueda en este momento no aparecerán resultados pues no se tiene aún alguna actualización de los repositorios, para hacerlo hay que salirse de la aplicación y hacer:

# sbopkg -r

Esto actualizará los repositorios de SBo y se saldrá del programa, una vez que ya se ha sincronizado hay que volver a ejecutar la aplicación y hacer la búsqueda de la aplicación deseada:

Búsqueda con sbopkg

Búsqueda con sbopkg

En mi caso realicé la búsqueda de libreoffice:

sbopkg buscando libreoffice

sbopkg buscando libreoffice

Los resultados de la búsqueda se pueden poner en cola para la construcción de los paquetes seleccionando el primero y dar en Add to Queue luego seleccionando el segundo y repetir con los paquetes necesarios hasta terminar de seleccionar los deseados y dar OK:

Resultados de la búsqueda con sbopkg

Resultados de la búsqueda con sbopkg

Cuando se agrega un elemento a la lista aparece un mensaje como el siguiente:

Agregar a la lista de sbopkg

Agregar a la lista de sbopkg

Para crear el paquete se selecciona la opción Build y se da clic en OK:

Crear el paquete

Crear el paquete

Finalmente se puede crear e instalar el paquete o solo crearlo, para ello se presenta la pantalla siguiente en la que se pregunta por la opción que se desea:

Crear e instalar el paquete

Crear e instalar el paquete

Finalmente se pide una confirmación para crear e instalar el paquete:

Confirmación de la creación e instalación

Confirmación de la creación e instalación

Bueno en mi caso dio un error por que no se encontró el archivo con las fuentes en el sitio de documentfoundation.org, tal vez sea un error temporal y muy particular de libreoffice, la aplicación debería funcionar con cualquier otro paquete, para demostralo ahora usaré el modo de linea de comandos con el SlackBuild de VirtualBox.

Con la linea de comandos

Para buscar un paquete se usa la opción -s, en este caso para el virtualbox-kernel:

# sbopkg -s virtualbox-kernel

Aparecerán los archivos completos del script, con la tecla ENTER se avanza todo. Ahora para construir el paquete se hace:

# sbopkg -b virtualbox-kernel

Y para instalar el virtualbox-kernel se hace con la herramienta installpkg:

# installpkg /tmp/virtualbox-kernel-4.1.4_2.6.37.6_smp-i486-1_SBo.tgz

Antes de construir VirtualBox hay que ejecutar lo siguiente para crear el grupo de virtualbox:

# groupadd -g 215 vboxusers

Además para poder usar virtualbox hay que hacer:

# usermod -aG vboxusers eduardo

Donde eduardo es mi usuario, el cual es agregado al grupo recientemente creado vboxusers.

Antes de instalar virtualbox es necesario tener instalado acpica y jdk que se encuentra en el DVD de Slackware en el folder extra (también se necesita el virtualbox-kernel ya instalado).

Para instalar el acpica se puede buscar e instalar directamente desde SBo para probar las opciones del sbopkg:

# sbopkg -i acpica

Para el otro desde el DVD/extra ejecutar:

# installpkg jdk-6u25-i586-1.txz

Ya teniendo estas dependencias instaladas se puede proceder con el virtualbox.

# sbopkg -s virtualbox
# sbopkg -b virtualbox
# installpkg /tmp/virtualbox-4.1.4-i486-1_SBo.tgz

Finalmente hay que agregar manualmente lo de siempre para cargar el vboxdrv al iniciar del sistema y terminarlo al salir:

En /etc/rc.d/rc.local poner:

# Start vboxdrv
if [ -x /etc/rc.d/rc.vboxdrv ]; then
/etc/rc.d/rc.vboxdrv start
fi

Y en /etc/rc.d/rc.local_shutdown:

# Stop vboxdrv
if [ -x /etc/rc.d/rc.vboxdrv ]; then
/etc/rc.d/rc.vboxdrv stop
fi

Fuentes:

http://sbopkg.googlecode.com/svn/trunk/tools/sbopkg-conf5.html
http://sbopkg.googlecode.com/svn/trunk/tools/sbopkg8.html
http://sbopkg.googlecode.com/svn/trunk/tools/sbopkg-help

Saludos Slackers!

Complementando VirtualBox

Teniendo instalado virtualbox en mi Slackware como lo hice en el post anterior, era insuficiente para el trabajo que necesitaba hacer puesto que la máquina virtual no reconocía los dispositivos USB conectados físicamente a la computadora así que lo primero que se me ocurrió fue activar el sistema para que los reconociera. En la aplicación Oracle VM VirtualBox Manager se selecciona la máquina virtual de la lista (es necesario que este apagada) y se hace clic en Settings luego en USB y se marca la opción Enable USB Controller y después en Enable USB 2.0 (EHCI)Controller en mi caso me apareció un mensaje de que el reconocimiento de dispositivos USB estaba activado sin embargo se necesitaba instalar el Oracle VM VirtualBox Extension Pack. El paquete de extensión se descarga de http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html#extpack, una vez descargado se abre el VirtualBox y da clic en el menú File > Preferences... > Extensions y se agrega una extensión con el ícono que aparece a la derecha, se selecciona el archivo descargado y se acepta. Una vez realizada la instalación aparece una imagen como la siguiente:

Ya que se ha realizado la instalación exitosamente es necesario reiniciar el sistema para que se apliquen los cambios.

Además olvidé comentar que el usuario que desee hacer uso de VirtualBox tiene que pertenecer al grupo «vboxusers», si no se tiene creado el grupo hay que ejecutar como root:

# groupadd -g 215 vboxusers

Y para agregar el usuario hay varias formas, por ejemplo ejecutando como root:

# usermod -aG vboxusers eduardo

donde eduardo es el nombre de mi usuario y que debes cambiar por el tuyo.
En lo personal decidí realizar el procedimiento desde KDE con la aplicación «Kuser», abriendo el programa hacer clic en la pestaña «Groups» y de la lista que aparece, seleccionar vboxusers con lo cual aparecerán dos columnas. De la columna de la derecha seleccionar nuestro usuario y clic en «Add» para pasar el usuario de la columna llamada «Users NOT in Group» a «Users in Group» con lo cual se agregó el usuario al grupo, ahora solo resta dar clic en OK y los cambios se guardan. Para esto hay que proporcionar la contraseña de root al inicio.

Gracias a todos por comentar ya que sus comenterios que me llevaron a escribir más cosas.