¿Cómo usar los puertos USB a través de Virtual Box?

Algunos de los pretextos más comunes para no dejar de usar Windows, casi siempre es, «En Linux no hay iTunes, ¿Cómo le voy a hacer con mi iPod/iPhone?«, me incluyo entre estos. Y aunque hay muchísimas herramientas para pasar música al iPod desde Linux (Rhythmbox, Amarok, GTKPod…) simplemente no es lo mismo.

Hoy de repente me harté de la música que traía en mi iPod, y quise intentar usar iTunes para sincronizarlo, actualmente uso Linux Mint (un clon de Ubuntu solo que ya viene con plugins y codecs instalados), así que usando Virtual Box para correr la máquina virtual de Windows XP instalé el iTunes 8 e intenté que me apareciera el iPod ahí, el problema es que esta característica biene desactivada por defecto en VirtualBox, para hacerlo funcionar hay que hacer lo siguiente:

Lo primero es tener instalado VirtualBox y obviamente una máquina virtual, comunmente se usa Windows XP.

Para habilitar el soporte USB hay que escribir en terminal:

sudo gedit /etc/init.d/mountdevsubfs.sh

Se abrirá una pantalla del Gedit, ahora hay que buscar las líneas donde dice:

#
# Magic to make /proc/bus/usb work
#
#mkdir -p /dev/bus/usb/.usbfs
#domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
#ln -s .usbfs/devices /dev/bus/usb/devices
#mount --rbind /dev/bus/usb /proc/bus/usb

Esas líneas hay que descomentarlas para habilitar el USB… debe quedar así:

#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb

Ahora hay que desloguearnos y volver a entrar, si no funciona hay que hacer esto:

Tenemos que obtener el ID del grupo de VirtualBox para esto escribimos:

grep vbox /etc/group

aparecerá algo así:

vboxusers:x:126:jose

Hay que recordar ese número. Ahora editamos el FStab:

sudo gedit /etc/fstab

Hasta el final de este archivo copiamos las líneas:

## usbfs is the USB group in fstab file:
none /proc/bus/usb usbfs devgid=126,devmode=664 0 0

(obviamente cambiando el 126 por el número que apareció en el paso anterior)
Ahora hay que editar el archivo de mountkernfs.sh:

sudo gedit /etc/init.d/mountkernfs.sh

Pegando las siguientes dos líneas (recuerden el número), justo antes de donde dice:
«# Mount spufs, if Cell Broadband processor is detected»
## Mount the usbfs for use with Virtual Box
domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev,devgid=126,devmode=664

Para actualizarlo solo hay que iniciar los servicios

sudo /etc/init.d/mountkernfs.sh
sudo /etc/init.d/mountkernfs.sh start

No es necesario reiniciar, simplemente salirse del usuario y volver a loggearse, en caso de que no funcione o aparezcan los dispositivos USB en gris (como desactivados) muy probablemente sea un problema de permisos, solo hay que iniciar VirtualBox como root.
sudo VirtualBox

…Para los curiosos, mi laptop es una HP Pavilion dv2000, me ha fallado mucho, pero por el momento funciona bien, el iPod es un Shuffle G2 de 1G.

Estas instrucciones están basadas en las de Ubuntu Unleashed