Welcome to the Linux Foundation Forum!

Lab 8.1: With VM, how to diagnose why usb device connection doesn't fire device node creation?

I'm using an Ubuntu 14.04 VM running on a CentOS7.1 laptop for work for the LFS201 class.

On lab 8.1, I've created the rule to handle the USB device connection, but I don't know what to do if the expected result isn't happening. The lab mentions the situation of running in a VM, which is what I'm doing. The lab info presents the seemingly useless statement of "If you are running a virtual machine under a hypervisor, you will have to make sure the USB

device is seen by the guest, which usually is just a mouse click which also disconnects it from the host". I can't even parse this.


  • coop
    coop Posts: 913
    It means exactly what it says.

    If you are running a linux virtual machine, say under Virtual Box, or Vmware, or kvm or on Microsoft, you have to make sure that the virtual machine has access to the peripheral devices such as anything plugged into a USB port. This is a very common and very well known situation.

    This is absolutely not a linux question, it is a question for your hypervisor setup. On every one I know of, you can find something like "Virtual Machine settings" where you can configure host access to the USB ports.

    I don't know why you think the statement is useless. It is actually rather precise. We can't really do tech support on your hypervisor since there are so many and so many with different host operating systems for us to give you direct help.

  • dkarr
    dkarr Posts: 40
    Ok, then let me rephrase.

    If I believe I've already configured my VM to see USB connections to the host, how can I diagnose a rule setting that doesn't appear to be doing anything? I followed the instructions in the lab 8.1 solution, but I don't see the device appear in "/dev".
  • What hypervisor are you using??? KVM???

    If so, here's a nice link to making sure the host device is assigned to the guest...
  • coop
    coop Posts: 913
    I don't often use KVM as the hypervisor for things like this as I do have a linux native system, so my first test is there. However, to test for other distros I do use both vmware and virtualbox, which is dumb I admit as KVM is a better and more natural hypervisor on Linux. However, most students are running some version of Windows and KVM is not available; or they find KVM more difficult to set up (and variations among distros are quite a bit) whereas vmware and virtual box both just involve installing an rpm from a web site (most students are not that experienced and this is simpler).

    All these labs were tested on my benchmark VM's on at least the three main distros. And worked.

    On both vmware and virtualbox you do have to set up USB pass-through in the "machine settings" dialogue in the GUI. Usually this is set up sufficiently by default to not cause a problem for at least USB 1 passthrough, which should be sufficient for the lab. You also have to click on a little icon in a box at the bottom of the hypervisor windows, where there is one for each attached device (mouse, camera, etc) so that you can turn it on which generally means disconnecting from the host. You probably need to do this *before* you run the lab.

  • dkarr
    dkarr Posts: 40
    I'm using VirtualBox (4.3).

    I was finally able to see the "myusb" in my "/dev" folder.

    I didn't see anything like a "USB pass-through" setting in the "Machine"->"Settings" dialog, but I did see the USB icon at the bottom of the window. Using this, I selected the device I've been using to test this, although I have several devices connected.

    What is the significance of selecting a device from that list? Those are all associated with real devices that are connected to the host. Is the VM only able to utilize one USB connection? By "changing" the device the VM is using, did it ping the kernel somehow to process the new rule?
  • coop
    coop Posts: 913
    It's somewhat different for each hypervisor. You can indeed use multiple devices at the same time, but if you don't click on the little icon the device is invisible to the client linux virtual machine. When you do this the device is no longer used on the host machine; otherwise they would fight with each other over the control of the device.

    Yes it does have to notify the guest kernel the device is there, but that is standard. The first thing that happens when you plug in a USB device is a message is sent through system buses saying "Hi, I'm USB device xxx from vendor xxx and I've been plugged in"
    which is not a linux thing, it does it on any OS. When you click on the icon it is as if you just plugged the device in on the guest operating system.


Upcoming Training