philipp's weblog header image

Make VirtualBox USB Support Work in openSUSE 11.4

March 23rd, 2011 · 20 Comments · English, other stuff

VirtualBox and its USB support always have caused some trouble. Since VirtualBox 4, the USB support is not part of a different binary any more (PUEL vs. OSE), but lives inside an extension pack, which you can download from the VirtualBox download site.

On openSUSE, this means you can install the VirtualBox package using Yast (or zypper, or whatever you’d like to use) and then open VirtualBox, go to File > Preferences > Extensions, click the top “Add package” button, select the downloaded file and you’re done.

Well, almost done. After you add a USB device filter to your VM and boot it, you’ll notice that all entries in the Devices > USB menu are grayed out.

Reason for this is a permission problem. Usually, VirtualBox installs a udev rule that gives all users in the vboxusers group permission to access all USB files. openSUSE chose to disable this udev rule by default for security reasons without visible notice to the users.
So, to cut a long story short, open /etc/udev/rules.d/60-vboxdrv.rules, and replace the lines that are commented out with the ones below (these are almost like the commented-out lines, but replace NAME with SYMLINK+):

KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
#these two lines give access permission to vboxusers to properly work with usb nodes, this could be security risk (bnc#664520) !!
SUBSYSTEM=="usb_device", ATTR{devnum}=="?*", ATTR{busnum}=="?*",SYMLINK+="vboxusb/$attr{busnum}/$attr{devnum}", GROUP="vboxusers"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{devnum}=="?*", ATTR{busnum}=="?*",SYMLINK+="vboxusb/$attr{busnum}/$attr{devnum}", GROUP="vboxusers"

Now reboot and you should have all USB devices available (at least if you’re in the vboxusers group, check this with the id command in a terminal window).

And while you’re at it, please ignore forum posts that modify usbfs or anything like that, newer VirtualBox versions don’t need these things any more.

If you only have a 10-vboxdrv.rules file, then you most likely installed VirtualBox not from the openSUSE repositories, but from the VirtualBox download site. Remove this version first and install the openSUSE version if you want to use this guide (and save you from recompiling the kernel module with every update).

(Post updated on 2011-08-15 to incorporate some user comments. Thanks guys!)

Tags:

20 responses so far ↓

  • 1 Enrico // Mar 23, 2011 at 21:27

    it works! ,, thanks

  • 2 wbwb // Apr 14, 2011 at 23:23

    almost works … one thing missing here:

    if you check /var/log/messages, then, starting with uncommenting the last two lines, the system will throw up lots of warnings of the type:
    udevd-work[26404]: kernel-provided name ‘bus/usb/002/011′ and NAME= ‘vboxusb/2/11′ disagree, please use SYMLINK+= or change the kernel to provide the proper name

    to get rid of these, one has to replace the two instances of NAME=”vboxusb by SYMLINK+=”vboxusb

    check also http://forums.debian.net/viewtopic.php?f=17&t=54715

  • 3 Youssef // May 8, 2011 at 21:00

    Hi

    I do not have /etc/udev/rules.d/60-vboxdrv.rules
    i tryed many time but no issue
    could you help me plz

  • 4 Philipp // May 8, 2011 at 21:18

    You need to provide more information. Which openSUSE version, which virtualbox version, where did you install VirtualBox from etc. You might also give it a try at the openSUSE forum at http://forums.opensuse.org/.

  • 5 Youssef // May 8, 2011 at 22:30

    i have opensuse 11.4
    vbox i’ve the 4.0.6
    i’m beginner in linux domain ;)

  • 6 Youssef // May 8, 2011 at 22:47

    I’ve open suse 11.4
    For virtual box i get the new from vbox site , i’ve version 4.06
    I already instaled the extention pack also from vbox site.

    do you need more info

  • 7 Philipp // May 8, 2011 at 22:49

    The instructions here are made for the VirtualBox package that is provided from the openSUSE repositories. Remove the version you installed from virtualbox.org and install the version from openSUSE using Yast or zypper. Then the instructions should work.

  • 8 Youssef // May 8, 2011 at 23:09

    Hi Philip

    From Yast , i go to add / remove software then i type virtual box , then i install. Am i right ?

    or by http://software.opensuse.org/search i found many virtualbox , which one to install ?

  • 9 Thorsten // Jun 27, 2011 at 14:36

    Hi Philipp, that solved a big problem for me, it works like a charm, especially with wbwb’s addition on SYMLINK.

    Cheers

    T.

  • 10 Mike // Jul 13, 2011 at 10:15

    This works really well. I changed it and all worked well then I upgraded VBox and I found that things didn’t work again. I found the rules had been updated and I had to remove the comments a second time.

  • 11 Andrew // Aug 11, 2011 at 11:39

    openSUSE 11.4 kernel 2.6.37.6-0.7-desktop #1 SMP PREEMPT 2011-07-21 02:17:24 +0200 x86_64

    udev rule 60 did not exist, but udev rule 10-vboxdrv.rules did, so I checked there and the last two lines of your rule were completely different. I ADDED the two missing lines as lines two and three, and it worked immediately without a reboot. I have no idea why!

  • 12 Jorge Gustavo // Aug 15, 2011 at 06:23

    Works.
    Thanks

  • 13 Philipp // Aug 15, 2011 at 11:50

    Andrew: Probably you got the version from the VirtualBox download site. Remove this one first and install VirtualBox using Yast. Then the 60-vboxdrv.rules file should be there.

  • 14 liang // Jun 5, 2012 at 05:14

    Good! It works~ thanks

  • 15 xpiaoxue // Jun 28, 2012 at 05:43

    It works on openSUSE 12.1
    3Q
    非常感谢

  • 16 N // Jul 12, 2012 at 20:08

    Thanks, messed with this for an hour before finding your site.

  • 17 G // Sep 11, 2012 at 19:27

    Thanks for this.
    Would you mind updating the instructions for 12.2 since the lines in the rules file seem very different.

  • 18 chris // Sep 19, 2012 at 14:06

    works fine in 12.1, too – just uncomment two lines in /etc/udev/rules.d/60-vboxdrv.rules and you’re done.

    Thanks.

  • 19 G // Sep 22, 2012 at 07:34

    There is no /etc/udev/rules.d/60-vboxdrv.rules in 12.2

  • 20 Philipp Wagner // Sep 22, 2012 at 17:13

    here is no /etc/udev/rules.d/60-vboxdrv.rules in 12.2

    This file is part of the virtualbox package, as you can check by running
    wget http://download.opensuse.org/repositories/openSUSE:/12.2/standard/x86_64/virtualbox-4.1.18-1.3.1.x86_64.rpm
    rpm -qlp virtualbox-4.1.18-1.3.1.x86_64.rpm

    Are you sure that you installed the package from openSUSE, not the one available from the virtualbox homepage?

Leave a Comment

Post comment

What is Persona?