USB Virtual Box

De WikiEtl
Saltar a: navegación, buscar

Solución a la falta de permisos en para usuarios <no privilegiados> en Debian Jessie.

Guía para habilitar la utilización de dispositivos USBsb en Virtualbox, sin tener que añadirse al grupo vboxusers.

Hay que seguir los siguientes pasos:

Instalación Virtualbox 4.3.30r101610

Asegurarse de instalar el pack de extensiones. Comprobar que cargar bien los módulos.

El pack de extensiones se puede descargar desde [1] y se puede instalar desde terminal con el comando VBoxManage:

Ej.:

goyo@dit184:/tmp$ sudo  VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.30-101610.vbox-extpack 
[sudo] password for goyo: 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully installed "Oracle VM VirtualBox Extension Pack".

Modificar el script de carga de módulo de Vboxdrv

En el "/etc/init.d/vboxdrv" se cambia a permisos de creación de la carpeta "/dev/vboxusb" de 750 a 777, en la línea 215.

root@dit184:/etc/init.d# grep -rn mkdir vboxdrv
215:        mkdir -p -m 0777 /dev/vboxusb 2>/dev/null

Con esto tenemos lo siguiente, al iniciar de nuevo el servicio:

 root@dit184:~# service vboxdrv restart
[ ok ] Stopping VirtualBox kernel modules:.
[ ok ] Starting VirtualBox kernel modules:.
root@dit184:/dev# ls -las |grep vbox
0 crw------   1 root    root       10,  58 feb  1 10:58  vboxdrv  
0 crw-rw-rw-  1 root    root       10,  57 feb  1 10:58  vboxdrvu
0 drwxr-xr-x   3 root    vboxusers       60 jul 11 11:07 vboxusb <=  cambio 

Nota: Si el directorio vboxusb ya está creado, hasta reiniciar no se aplica el cambio, sino hay que borrarlo a mano y después relanzar el servicio vboxdrv.

Cambiar el script de generación de dispositivos usb

Se edita el fichero "/usr/share/virtualbox/VBoxCreateUSBNode.sh" y cambiamos todos los mk<algo> para que se puedan leer desde "otros" usuarios:

root@dit184:/dev# grep -n mk /usr/share/virtualbox/VBoxCreateUSBNode.sh
40:  mkdir /dev/vboxusb -m 0755 2>/dev/null     (antes 0750)
42:  mkdir "$devdir" -m 0755 2>/dev/null        (antes 0750)
44:  mknod "$devpath" c $1 $2 -m 0666 2>/dev/null  (antes (0660) 

y ¡Voilà! Ya se puede acceder a los usb desde cualquier usuario para virtualbox.

Nota: Si, ya tenías un usb conectado previamente después de los cambios hay que reconectarlo.

Ejemplo: Equipo de LEGO MindStorm

Genera lo siguiente:

root@dit184:/dev# ls -alsR vbox*
0 crw------ 1 root root      10, 58 feb  1 10:58 vboxdrv
0 crw-rw-rw-1 root root      10, 57 feb  1 10:58  vboxdrvu
vboxusb:
total 0
0 drwxr-xr-x  3 root vboxusers   60 jul 11 11:07 .
0 drwxr-xr-x 15 root root      4060 jul 11 11:07 ..
0 drwxr-xr-x  2 root vboxusers   60 jul 11 11:07 002
vboxusb/002:
total 0
0 drwxr-xr-x 2 root vboxusers       60 jul 11 11:07 .
0 drwxr-xr-x 3 root vboxusers       60 jul 11 11:07 ..
0 crw-rw-rw- 1 root vboxusers 189, 132 jul 11 11:09 005

Como se puede apreciar, cualquier usuario tiene acceso al dispositivo.

Ejemplo en un equipo sin modificaciones:

rbravo@k:/dev$ ls -lasR vbox*
0 crw------- 1 root root      10, 58 feb  1 10:58  vboxdrv
0 crw------- 1 root root      10, 57 feb  1 10:58 vboxdrvu
vboxusb:
total 0
0 drwxr-x---  4 root vboxusers   80 jul 11 11:29 .
0 drwxr-xr-x 20 root root      4020 jul  9 08:54 ..
0 drwxr-x---  2 root vboxusers   60 jul  9 08:54 002
0 drwxr-x---  2 root vboxusers   60 jul 11 11:29 003
vboxusb/002:
total 0
0 drwxr-x--- 2 root vboxusers       60 jul  9 08:54 .
0 drwxr-x--- 4 root vboxusers       80 jul 11 11:29 ..
0 crw-rw---- 1 root vboxusers 189, 130 jul  9 08:54 003
vboxusb/003:
total 0
0 drwxr-x--- 2 root vboxusers       60 jul 11 11:29 .
0 drwxr-x--- 4 root vboxusers       80 jul 11 11:29 ..
0 crw-rw---- 1 root vboxusers 189, 257 jul 11 11:29 002


--Rbravo 09:31 11 jul 2013 (UTC)