martes, 31 de julio de 2012

Tratanto de instalar Virtualbox y muriendo en el intento (I)

Todo lo que sigue son meros apuntes de los "intentos" fallidos de instalar virtualbox en mi Debian.

Interesante la instalación manual de módulos con m-a Module-Assistant



alfredo@xana:~$ sudo apt-get install "nombredelpaquete"

Los paquetes que se listan a continuación:

alfredo@xana:~$ aptitude search virtualbox
                       
i   virtualbox-guest-additions        - guest additions iso image for VirtualBox   
i A virtualbox-ose                    - x86 virtualization solution - base binaries
i A virtualbox-ose-dkms               - x86 virtualization solution - kernel module
i   virtualbox-ose-fuse               - x86 virtualization solution - virtual filesy
i A virtualbox-ose-qt                 - x86 virtualization solution - Qt based user
i   virtualbox-ose-source             - Solución de virtualización de x86, código

Es necesario instalar si no lo está ya

apt-get install dkms

Con todo esto el paquete build-essential se instalará también en nuestro sistema si no lo está ya

En concreto es escialmente importante virtualbox-ose-source porque a partir de él compilaremos el módulo del kernel

Vamos a utilizar el siguiente comando: m-a

¿qué es esto?
m-a: Module-assistant es un instalador de módulos compilados para nuestro núcleo. Es decir, se encarga de compilar e instalar el modulo necesario para usar un hardware no soportado por el núcleo, o que por alguna razón necesitemos una versión más moderna que la incluida en él. Es una herramienta desarrollada para debian ,que se ha propagado a sus distribuciones derivadas, que facilita la vida al usuario para poder usar hardware con drivers externos al núcleo y compilar sus respectivos módulos.

prepare Instala la versión de los headers necesarios (adecuados a tu núcleo) y el paquete build-essential si no están instalados. (m-a prepare)

fuente:  http://www.esdebian.org/wiki/module-assistant

Por tanto la siguiente orden:

alfredo@xana:~$ sudo m-a prepare
Obteniendo los fuentes de la versión del núcleo: 2.6.32-5-amd64
Encabezados del núcleo disponibles en /lib/modules/2.6.32-5-amd64/build
Creando enlace simbólico...
apt-get install build-essential
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias      
Leyendo la información de estado... Hecho
build-essential ya está en su versión más reciente.
fijado build-essential como instalado manualmente.
0 actualizados, 0 se instalarán, 0 para eliminar y 9 no actualizados
.

nos "prepara" el proceso de instalar un módulo a nuestro kernel. Este módulo es el driver necesario para virtualbox.


Preparamos propiamente dicho el módulo (ver http://www.esdebian.org/wiki/module-assistant) con otra opción de asistente para módulos.

alfredo@xana:~$ sudo m-a a-i virtualbox-ose-source
Actualizado los ficheros infos de los paquetes 1
Obteniendo los fuentes de la versión del núcleo: 2.6.32-5-amd64
Encabezados del núcleo disponibles en /lib/modules/2.6.32-5-amd64/build
apt-get install build-essential
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias      
Leyendo la información de estado... Hecho
build-essential ya está en su versión más reciente.
0 actualizados, 0 se instalarán, 0 para eliminar y 9 no actualizados.

¡Hecho!
unpack
Extracting the package tarball, /usr/src/virtualbox-ose.tar.bz2, please wait...
"/usr/share/modass/overrides/virtualbox-ose-source" build KVERS=2.6.32-5-amd64 KSRC=/lib/modules/2.6.32-5-amd64/build KDREV=2.6.32-45 kdist_image
Hecho con /usr/src/virtualbox-ose-modules-2.6.32-5-amd64_3.2.10-dfsg-1+2.6.32-45_i386.deb .
dpkg -Ei /usr/src/virtualbox-ose-modules-2.6.32-5-amd64_3.2.10-dfsg-1+2.6.32-45_i386.deb
Seleccionando el paquete virtualbox-ose-modules-2.6.32-5-amd64 previamente no seleccionado.
(Leyendo la base de datos ... 139055 ficheros o directorios instalados actualmente.)
Desempaquetando virtualbox-ose-modules-2.6.32-5-amd64 (de .../virtualbox-ose-modules-2.6.32-5-amd64_3.2.10-dfsg-1+2.6.32-45_i386.deb) ...
Configurando virtualbox-ose-modules-2.6.32-5-amd64 (3.2.10-dfsg-1+2.6.32-45) ...
Stopping VirtualBox kernel modules.
Starting VirtualBox kernel modules.


En teoría el módulo está compilado e instalado..

¿Qué ocurre si compilamos de nuevo nuestro kernel por ejemplo para una actualización? Habría que compilar de nuevo todos los módulos de los controladores que estén en el propio núcleo, incluido el controlador de virtualbox. Para evitar esto existe dkms. Leer atententamente este artículo en el que se da una visión del dmks y también del asistente de módulos.

Problemas:



Parece que el paquete virtualbox-ose-dkms intuyo sirve para cargar automáticamente el módulo controloador del virtualbo, es decir lo que he hecho antes de manera un poco más manual.

Lo desinstalo con: sudo apt-get remove virtualbox-ose-dkms

Lo vuelvo a instalar:

alfredo@xana:~$ sudo apt-get install virtualbox-ose-dkms
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias      
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes NUEVOS:
  virtualbox-ose-dkms
0 actualizados, 1 se instalarán, 0 para eliminar y 9 no actualizados.
Se necesita descargar 0 B/550 kB de archivos.
Se utilizarán 3473 kB de espacio de disco adicional después de esta operación.
AVISO: ¡No se han podido autenticar los siguientes paquetes!
  virtualbox-ose-dkms
¿Instalar estos paquetes sin verificación [s/N]? s
Seleccionando el paquete virtualbox-ose-dkms previamente no seleccionado.
(Leyendo la base de datos ... 138855 ficheros o directorios instalados actualmente.)
Desempaquetando virtualbox-ose-dkms (de .../virtualbox-ose-dkms_3.2.10-dfsg-1_all.deb) ...
Configurando virtualbox-ose-dkms (3.2.10-dfsg-1) ...
Loading new virtualbox-ose-3.2.10 DKMS files...
First Installation: checking all kernels...
Building only for 2.6.32-5-amd64
Building initial module for 2.6.32-5-amd64
Done.

vboxdrv.ko:
Running module version sanity check.

Good news! Module version 3.2.10_OSE for vboxdrv.ko
exactly matches what is already found in kernel 2.6.32-5-amd64.
DKMS will not replace this module.
You may override by specifying --force.

vboxnetadp.ko:
Running module version sanity check.

Good news! Module version 3.2.10_OSE for vboxnetadp.ko
exactly matches what is already found in kernel 2.6.32-5-amd64.
DKMS will not replace this module.
You may override by specifying --force.

vboxnetflt.ko:
Running module version sanity check.

Good news! Module version 3.2.10_OSE for vboxnetflt.ko
exactly matches what is already found in kernel 2.6.32-5-amd64.
DKMS will not replace this module.
You may override by specifying --force.

depmod....

DKMS: install Completed.
Stopping VirtualBox kernel modules.
Starting VirtualBox kernel modules.
alfredo@xana:~$ 




Compruebo que los módulos que dan errores están instalados

alfredo@xana:~$ lsmod |grep vbox
vboxnetadp              4145  0
vboxnetflt             12381  0
vboxdrv              1723367  2 vboxnetadp,vboxnetflt


Parece que están instalarlos. Voy a eliminarlos y reinstalar el paquete virtualbox-ose-dkms


alfredo@xana:~$ sudo modprobe -r vboxnetadp
alfredo@xana:~$ sudo modprobe -r vboxnetflt
alfredo@xana:~$ sudo modprobe -r vboxdrv
alfredo@xana:~$ lsmod |grep vbox
alfredo@xana:~$


Bueno parece que están desinstalados


Desinstalo virtualbox-ose-dkms: sudo apt-get remove virtualbox-ose-dkms

Lo vuelvo a instalar

De nuevo los mismos errores

Los errores quedan registrados en un log y se pueden ver así

alfredo@xana:~$ cat /var/log/vbox-install.log


He probado a reinstalar con synaptics tampoco.




Introduzco un repositorio de paquetes nuevo en /etc/apt/sources.list utilizando por ejemplo el editor nano

# Backported packages for Debian Squeeze
deb http://backports.debian.org/debian-backports squeeze-backports main


Instalo de nuevo las cabeceras de linux que en teoría en el nuevo repositorio están actualizadas.

root@xana:/home/alfredo# aptitude install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,')
Se instalarán los siguiente paquetes NUEVOS:     
  linux-headers-3.2.0-0.bpo.2-amd64{a} linux-headers-3.2.0-0.bpo.2-common{a} linux-headers-amd64 linux-kbuild-3.2{a}
...
...
dkms: running auto installation service for kernel 3.2.0-0.bpo.2-amd64:
      virtualbox-ose (3.2.10)...failed.
Configurando linux-headers-amd64 (3.2+44~bpo60+1) .
..

Se puede ver que virtualbox-ose da un error



Este sí que parece que es el error que aparece al instalar la cabecera, que el módulo para controlar virtual box no se ha podido cargar automáticamente con el dkms

He probado con el modprobe sin reinstarlar nada y aparece





Cambio de estrategia. Descargo

download.virtualbox.org/virtualbox/4.1.18/virtualbox-4.1_4.1.18-78361~Debian~squeeze_i386.deb


root@xana:/home/alfredo/deb# dpkg -i virtualbox-4.1_4.1.18-78361~Debian~squeeze_i386.deb
(Leyendo la base de datos ... 147463 ficheros o directorios instalados actualmente.)
Desempaquetando virtualbox-4.1 (de virtualbox-4.1_4.1.18-78361~Debian~squeeze_i386.deb) ...
dpkg: error al procesar virtualbox-4.1_4.1.18-78361~Debian~squeeze_i386.deb (--install):
 el subproceso script pre-installation nuevo devolvió el código de salida de error 1
Se encontraron errores al procesar:
 virtualbox-4.1_4.1.18-78361~Debian~squeeze_i386.deb
root@xana:/home/alfredo/deb# dpkg -i virtualbox-4.1_4.1.18-78361~Debian~squeeze_i386.deb
(Leyendo la base de datos ... 147463 ficheros o directorios instalados actualmente.)
Desempaquetando virtualbox-4.1 (de virtualbox-4.1_4.1.18-78361~Debian~squeeze_i386.deb) ...
Configurando virtualbox-4.1 (4.1.18-78361~Debian~squeeze) ...
addgroup: El grupo `vboxusers' ya existe como grupo del sistema. Saliendo.
insserv: script vmware-core: service VMware already provided!
insserv: script vmware-mgmt: service VMware already provided!
insserv: script vmware-autostart: service VMware already provided!
Stopping VirtualBox kernel modules:.
Uninstalling old VirtualBox DKMS kernel modules:.
Trying to register the VirtualBox kernel modules using DKMS:.
Starting VirtualBox kernel modules:.
insserv: script vmware-core: service VMware already provided!
insserv: script vmware-mgmt: service VMware already provided!
insserv: script vmware-autostart: service VMware already provided!
insserv: script vmware-core: service VMware already provided!
insserv: script vmware-mgmt: service VMware already provided!
insserv: script vmware-autostart: service VMware already provided!
Procesando disparadores para shared-mime-info ...
Procesando disparadores para desktop-file-utils ...
Procesando disparadores para gnome-menus ...
Procesando disparadores para hicolor-icon-theme ...
Procesando disparadores para python-central ...


root@xana:/home/alfredo/deb# /etc/i
iceweasel/       init.d/          insserv/         iproute2/
ifplugd/         initramfs-tools/ insserv.conf.d/ 
root@xana:/home/alfredo/deb# /etc/init.d/vboxdrv setup
Stopping VirtualBox kernel modules:.
Uninstalling old VirtualBox DKMS kernel modules:.
Trying to register the VirtualBox kernel modules using DKMS:.
Starting VirtualBox kernel modules:.
root@xana:/home/alfredo/deb#

No hay comentarios:

Publicar un comentario