Digilent USB device wont pass through to Linux Mint VM.

Discussions related to using VirtualBox on Windows hosts.
Post Reply
Hoy
Posts: 5
Joined: 22. Jun 2018, 20:11

Digilent USB device wont pass through to Linux Mint VM.

Post by Hoy »

Hello all. I am trying to use Xilinx ISE for FPGA builds, but was recently forced into Windows 10 and am having to run the ISE through a virtual machine as they do not support Windows 10. The UART function picks up in the VM no problem, but I cannot get the JTAG side to attach so I can program the chip on the FPGA. I've run through the entire troubleshooting page and several other install guides and tutorials in addition to winging it myself for several days now. This is my last resort. Please help! Thank you!

VirtualBox version: 5.2.12r122591
Host: Windows 10 Pro 1703 build 15063.1155
Guest: Linux No 4.10.0-38-generic #42~16.04.1-Ubuntu SMP Tue Oct 10 16:32:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Code: Select all

C:\Program Files\Oracle\VirtualBox>VBoxManage -version
5.2.12r122591

Code: Select all

C:\Program Files\Oracle\VirtualBox>VBoxManage list extpacks
Extension Packs: 1
Pack no. 0:   Oracle VM VirtualBox Extension Pack
Version:      5.2.12
Revision:     122591
Edition:
Description:  USB 2.0 and USB 3.0 Host Controller, Host Webcam, VirtualBox RDP, PXE ROM, Disk Encryption, NVMe.
VRDE Module:  VBoxVRDP
Usable:       true
Why unusable:

Code: Select all

C:\Program Files\Oracle\VirtualBox>VBoxManage list usbhost
Host USB Devices:

UUID:               8329b332-b810-41e5-ac48-6b9a70f00ce1
VendorId:           0x1443 (1443)
ProductId:          0x0007 (0007)
Revision:           0.0 (0000)
Port:               5
USB version/speed:  2/High
Manufacturer:       Digilent
Product:            Development board JTAG
Current State:      Available

UUID:               0656f2c2-e1e9-4747-8ad5-ca6d83e8191d
VendorId:           0x03f0 (03F0)
ProductId:          0x094a (094A)
Revision:           1.0 (0100)
Port:               13
USB version/speed:  2/High
Manufacturer:       PixArt
Product:            HP USB Optical Mouse
Address:            {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0014
Current State:      Busy

UUID:               c70aa407-cc12-46dd-a350-006edba1d34b
VendorId:           0x03f0 (03F0)
ProductId:          0x034a (034A)
Revision:           1.33 (0133)
Port:               11
USB version/speed:  1/Full
Manufacturer:       Chicony
Product:            HP Elite USB Keyboard
Address:            {36fc9e60-c465-11cf-8056-444553540000}\0011
Current State:      Busy

Code: Select all

C:\Program Files\Oracle\VirtualBox>VBoxManage list usbfilters
Global USB Device Filters:

<none>

Code: Select all

C:\Program Files\Oracle\VirtualBox>VBoxManage showvminfo "Linux Mint"
Name:            Linux Mint
Groups:          /
Guest OS:        Ubuntu (64-bit)
UUID:            986b314e-9230-4d4f-a503-460d51c133fd
Config file:     C:\Users\bhoy\VirtualBox VMs\Linux Mint\Linux Mint.vbox
Snapshot folder: C:\Users\bhoy\VirtualBox VMs\Linux Mint\Snapshots
Log folder:      C:\Users\bhoy\VirtualBox VMs\Linux Mint\Logs
Hardware UUID:   986b314e-9230-4d4f-a503-460d51c133fd
Memory size:     8192MB
Page Fusion:     off
VRAM size:       64MB
CPU exec cap:    100%
HPET:            off
Chipset:         ich9
Firmware:        BIOS
Number of CPUs:  4
PAE:             on
Long Mode:       on
Triple Fault Reset: off
APIC:            on
X2APIC:          on
CPUID Portability Level: 0
CPUID overrides: None
Boot menu mode:  message and menu
Boot Device (1): Floppy
Boot Device (2): DVD
Boot Device (3): HardDisk
Boot Device (4): Not Assigned
ACPI:            on
IOAPIC:          on
BIOS APIC mode:  APIC
Time offset:     0ms
RTC:             UTC
Hardw. virt.ext: on
Nested Paging:   on
Large Pages:     on
VT-x VPID:       on
VT-x unr. exec.: on
Paravirt. Provider: HyperV
Effective Paravirt. Provider: HyperV
State:           powered off (since 2018-06-22T18:22:48.000000000)
Monitor count:   1
3D Acceleration: off
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address:
Teleporter Password:
Tracing Enabled: off
Allow Tracing to Access VM: off
Tracing Configuration:
Autostart Enabled: off
Autostart Delay: 0
Default Frontend:
Storage Controller Name (0):            IDE
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
Storage Controller Bootable (0):        on
Storage Controller Name (1):            SATA
Storage Controller Type (1):            IntelAhci
Storage Controller Instance Number (1): 0
Storage Controller Max Port Count (1):  30
Storage Controller Port Count (1):      3
Storage Controller Bootable (1):        on
IDE (1, 0): Empty
SATA (0, 0): C:\Users\bhoy\VirtualBox VMs\Linux Mint\BootRoot.vdi (UUID: 672f1fb7-9d6c-45ff-be33-bd1af6afa29d)
SATA (1, 0): C:\Users\bhoy\VirtualBox VMs\Linux Mint\User.vdi (UUID: c36c22df-5b65-4514-bebe-892e3dbb51ec)
SATA (2, 0): C:\Users\bhoy\VirtualBox VMs\Linux Mint\Swap.vdi (UUID: 2dd8295c-0fcb-4d1f-9afe-de4bbd301ae5)
NIC 1:           MAC: 0800279E146F, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
NIC 1 Settings:  MTU: 0, Socket (send: 64, receive: 64), TCP Window (send:64, receive: 64)
NIC 2:           disabled
NIC 3:           disabled
NIC 4:           disabled
NIC 5:           disabled
NIC 6:           disabled
NIC 7:           disabled
NIC 8:           disabled
NIC 9:           disabled
NIC 10:           disabled
NIC 11:           disabled
NIC 12:           disabled
NIC 13:           disabled
NIC 14:           disabled
NIC 15:           disabled
NIC 16:           disabled
NIC 17:           disabled
NIC 18:           disabled
NIC 19:           disabled
NIC 20:           disabled
NIC 21:           disabled
NIC 22:           disabled
NIC 23:           disabled
NIC 24:           disabled
NIC 25:           disabled
NIC 26:           disabled
NIC 27:           disabled
NIC 28:           disabled
NIC 29:           disabled
NIC 30:           disabled
NIC 31:           disabled
NIC 32:           disabled
NIC 33:           disabled
NIC 34:           disabled
NIC 35:           disabled
NIC 36:           disabled
Pointing Device: USB Tablet
Keyboard Device: PS/2 Keyboard
UART 1:          I/O base: 0x03f8, IRQ: 4, disconnected
UART 2:          I/O base: 0x02f8, IRQ: 3, disconnected
UART 3:          I/O base: 0x03e8, IRQ: 4, disconnected
UART 4:          I/O base: 0x02e8, IRQ: 3, disconnected
LPT 1:           disabled
LPT 2:           disabled
Audio:           enabled (Driver: DSOUND, Controller: AC97, Codec: AD1980)
Audio playback:  disabled
Audio capture: enabled
Clipboard Mode:  Bidirectional
Drag and drop Mode: Bidirectional
VRDE:            disabled
USB:             disabled
EHCI:            disabled
XHCI:            enabled

USB Device Filters:

Index:            0
Active:           yes
Name:             Digilent Development board JTAG
VendorId:         1443
ProductId:        0007
Revision:         0000
Manufacturer:
Product:
Remote:           0
Serial Number:

Bandwidth groups:  <none>

Shared folders:

Name: 'Xilinx', Host path: 'C:\Xilinx' (machine mapping), writable

Capturing:          not active
Capture audio:      not active
Capture screens:    0
Capture file:       C:\Users\bhoy\VirtualBox VMs\Linux Mint\Linux Mint.webm
Capture dimensions: 1024x768
Capture rate:       512 kbps
Capture FPS:        25
Capture options:    ac_enabled=false

Guest:

Configured memory balloon size:      0 MB
Attachments
Linux Mint-2018-06-22-14-33-18.zip
(32.74 KiB) Downloaded 9 times
Last edited by socratis on 22. Jun 2018, 21:33, edited 1 time in total.
Reason: Enclosed the information in [code] tag for better readability
socratis
Site Moderator
Posts: 27329
Joined: 22. Oct 2010, 11:03
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Win(*>98), Linux*, OSX>10.5
Location: Greece

Re: Digilent USB device wont pass through to Linux Mint VM.

Post by socratis »

00:00:01.937435 NumCPUs <integer> = 0x0000000000000004 (4)
00:00:02.637323 CPUM: Physical host cores: 4
You have assigned all your CPUs to the VM. The host is going to run low on resources, since VirtualBox cares about physical processors (cores), not logical ones (threads). See "CPU Cores versus threads" and "Why is it a bad idea to allocate as many VCPUs as there are physical CPUs?".
00:00:01.937856 [/Devices/ich9pci/0/Config/] (level 4)
Any particular reason why you chose an experimental, guest-specific, OSX-only option here? Please change it back to the default PIIX3.
Hoy wrote:The UART function picks up in the VM no problem
I did not see the device been plugged and unplugged as per the instructions. Can you grab a new VBox.log, but following the suggested procedure?

Oh, and before you do, delete the "Revision" from the USB filter, leaving only the Name, VendorID and ProductID, again as per the instructions.
Do NOT send me Personal Messages (PMs) for troubleshooting, they are simply deleted.
Do NOT reply with the "QUOTE" button, please use the "POST REPLY", at the bottom of the form.
If you obfuscate any information requested, I will obfuscate my response. These are virtual UUIDs, not real ones.
Hoy
Posts: 5
Joined: 22. Jun 2018, 20:11

Re: Digilent USB device wont pass through to Linux Mint VM.

Post by Hoy »

Hi Socratis, thanks for the response. I originally allocated all 4 processors because compiling in ISE can be extremely slow and I wanted to try to save time there but have dropped down to 2 now. As far as the chipset, that was a shot in the dark. My apologies. Back to PIIX3 now.

As a heads up, the FPGA I am trying to program has 2 separate micro usb ports. One of them is UART, that would serve as a way to run programs that are already on the chip, and the other is a programming port that is meant to be used to program and configure the FPGA. When I plug into the UART port, the VM recognizes it and there are no issues with it attaching, however I cannot program the chip. But when I plug into the PROG port I cannot attach. I have run through the instructions with both ports as a comparison and uploaded both logs. Again, thanks for the response!
Attachments
UART_PORT_LOG.zip
cold_start / login / plug_USB / unplug_USB / complete_shutdown cycle in UART port.
(29.49 KiB) Downloaded 6 times
PROG_PORT_LOG.zip
cold_start / login / plug_USB / unplug_USB / complete_shutdown cycle in PROG port.
(30.64 KiB) Downloaded 5 times
socratis
Site Moderator
Posts: 27329
Joined: 22. Oct 2010, 11:03
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Win(*>98), Linux*, OSX>10.5
Location: Greece

Re: Digilent USB device wont pass through to Linux Mint VM.

Post by socratis »

Hoy wrote:I originally allocated all 4 processors because compiling in ISE can be extremely slow
OK, fine. Up to 3 CPUs then. You could go to 4 CPUs, but be aware of potential issues.
Hoy wrote:the FPGA I am trying to program has 2 separate micro usb ports
Whoa!!! This kind of changes... everything! Are you sure that your two micro USB ports have the same VendorID/ProductID? I had a Nokia C2-05 phone, which had 3 (three) different ProductIDs, depending on the option selected:
  • 0x0421 / 0x0576: Data Trasfer
  • 0x0421 / 0x0577: Nokia Suite
  • 0x0421 / 0x0578: Media access
Maybe your device is a "split-personality" device and presents different VendorIDs/ProductIDs depending on where you're connected? It kind of makes sense if you think about it. Check the output of "VBoxManage list usbhost" when you have it plugged-in in either port. Post the output differences...

BTW, I didn't see the USB device being plugged in after you had logged in to the VM in either of the logs. Are you sure you're plugging/unplugging the device?
Do NOT send me Personal Messages (PMs) for troubleshooting, they are simply deleted.
Do NOT reply with the "QUOTE" button, please use the "POST REPLY", at the bottom of the form.
If you obfuscate any information requested, I will obfuscate my response. These are virtual UUIDs, not real ones.
Hoy
Posts: 5
Joined: 22. Jun 2018, 20:11

Re: Digilent USB device wont pass through to Linux Mint VM.

Post by Hoy »

Hi again, Socratis!
OK, fine. Up to 3 CPUs then. You could go to 4 CPUs, but be aware of potential issues.
I will leave it at 2 for troublshooting purposes. I can't compile code at the moment anyhow.
Maybe your device is a "split-personality" device and presents different VendorIDs/ProductIDs depending on where you're connected? It kind of makes sense if you think about it. Check the output of "VBoxManage list usbhost" when you have it plugged-in in either port. Post the output differences...
Quite the contrary. I know that they have different vendor and product IDs and have considered this when building filters. The UART port attaches perfectly without issue. The programming port does not. Linux just gives me a message saying that if failed to attach. "VBoxManage list usbhost" outputs are below and reflect this.
BTW, I didn't see the USB device being plugged in after you had logged in to the VM in either of the logs. Are you sure you're plugging/unplugging the device?

I plugged it in to both ports in separate instances, but that's it. I did not try to attach it or anything else. Should I try to attach? Thanks so much for the help!

Here is the programming port

Code: Select all

C:\Program Files\Oracle\VirtualBox>VBoxManage list usbhost
Host USB Devices:

UUID:               b5c86f02-0c98-448c-b385-e33f88e99e76
VendorId:           0x1443 (1443)
ProductId:          0x0007 (0007)
Revision:           0.0 (0000)
Port:               1
USB version/speed:  2/High
Manufacturer:       Digilent
Product:            Development board JTAG
Address:            {36fc9e60-c465-11cf-8056-444553540000}\0013
Current State:      Busy

UUID:               0fb13dfa-7524-43ba-8555-7e0ef1e8455b
VendorId:           0x03f0 (03F0)
ProductId:          0x094a (094A)
Revision:           1.0 (0100)
Port:               13
USB version/speed:  2/High
Manufacturer:       PixArt
Product:            HP USB Optical Mouse
Address:            {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0014
Current State:      Busy

UUID:               460fc7e7-48e8-4ff4-b4b7-65cf34b6e51a
VendorId:           0x03f0 (03F0)
ProductId:          0x034a (034A)
Revision:           1.33 (0133)
Port:               11
USB version/speed:  1/Full
Manufacturer:       Chicony
Product:            HP Elite USB Keyboard
Address:            {36fc9e60-c465-11cf-8056-444553540000}\0011
Current State:      Busy
Here is the UART port:

Code: Select all

C:\Program Files\Oracle\VirtualBox>VBoxManage list usbhost
Host USB Devices:

UUID:               830a036a-20b5-49dd-bb5b-aa49a88b9eb5
VendorId:           0x04e2 (04E2)
ProductId:          0x1410 (1410)
Revision:           0.3 (0003)
Port:               1
USB version/speed:  2/High
Manufacturer:       Exar Corp.
Product:            XR21V1410 USB-UART IC
Address:            {36fc9e60-c465-11cf-8056-444553540000}\0015
Current State:      Busy

UUID:               d6158983-0553-4c38-98b5-98bb4a68e54e
VendorId:           0x03f0 (03F0)
ProductId:          0x094a (094A)
Revision:           1.0 (0100)
Port:               13
USB version/speed:  2/High
Manufacturer:       PixArt
Product:            HP USB Optical Mouse
Address:            {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0014
Current State:      Busy

UUID:               2ff16df1-eb0d-4fcc-9460-02833b47a770
VendorId:           0x03f0 (03F0)
ProductId:          0x034a (034A)
Revision:           1.33 (0133)
Port:               11
USB version/speed:  1/Full
Manufacturer:       Chicony
Product:            HP Elite USB Keyboard
Address:            {36fc9e60-c465-11cf-8056-444553540000}\0011
Current State:      Busy
socratis
Site Moderator
Posts: 27329
Joined: 22. Oct 2010, 11:03
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Win(*>98), Linux*, OSX>10.5
Location: Greece

Re: Digilent USB device wont pass through to Linux Mint VM.

Post by socratis »

Hoy wrote:I know that they have different vendor and product IDs and have considered this when building filters.
You should have shared that information, instead of letting me guessing that this might be the case! And I didn't quite see the filters including both options! So, you're saying that the 0x04e2/0x1410 part (UART) works, but the 0x1443/0x0007 (JTAG) doesn't work. And BTW, why on earth two different manufacturers? What's going on here?
Hoy wrote:...Linux just gives me a message saying that if failed to attach...
...I did not try to attach it or anything else...
I'm not quite getting the "attach" part. What do you mean by that? I simply told you to activate the filter and plug the device after you've successfully started your VM and logged in, preferably running "lsusb" before and after. What does "attach" mean in that setting?
Do NOT send me Personal Messages (PMs) for troubleshooting, they are simply deleted.
Do NOT reply with the "QUOTE" button, please use the "POST REPLY", at the bottom of the form.
If you obfuscate any information requested, I will obfuscate my response. These are virtual UUIDs, not real ones.
Hoy
Posts: 5
Joined: 22. Jun 2018, 20:11

Re: Digilent USB device wont pass through to Linux Mint VM.

Post by Hoy »

You should have shared that information, instead of letting me guessing that this might be the case! And I didn't quite see the filters including both options! So, you're saying that the 0x04e2/0x1410 part (UART) works, but the 0x1443/0x0007 (JTAG) doesn't work. And BTW, why on earth two different manufacturers? What's going on here?
Apologies! The device I am using is the Digilent Atlys development board with a Xilinx FPGA on it. Like arduino on steroids. It has multiple functions, thus two different micro usb ports. As far as different manufacturers, I am not sure why they did this.
I'm not quite getting the "attach" part. What do you mean by that? I simply told you to activate the filter and plug the device after you've successfully started your VM and logged in, preferably running "lsusb" before and after. What does "attach" mean in that setting?
By this I mean that when I start the VM and log on and plug in the device, nothing happens until I pull down the device tab at the top of the screen and select the filter under the USB drop down menu. When I do this plugged into the UART port, the Exar Corp. device pops up on lsusb, and a check mark appears next to the filter. When I do this while plugged into the JTAG port, I get the following error: "Failed to attach the USB device Digilent Development board JTAG to the virtual machine Linux Mint. For some reason I didn't have to build a filter for the UART port for the VM to recognize it. I found this out by accident on one of my several dozen troubleshooting attempts. I am beginning to lose hope!
socratis
Site Moderator
Posts: 27329
Joined: 22. Oct 2010, 11:03
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Win(*>98), Linux*, OSX>10.5
Location: Greece

Re: Digilent USB device wont pass through to Linux Mint VM.

Post by socratis »

Hoy wrote:until I pull down the device tab at the top of the screen and select the filter under the USB drop down menu.
I'm sorry, but you're confused. You do not select the filter from the Devices » USB menu, you enable the filter from the VM Settings. Read again the USB basics and troubleshooting, #2: Capturing a USB device in VirtualBox. There are two distinct methods.
  • Re-read again carefully the FAQ.
  • Make sure that you have two appropriate filters for the device.
  • Do NOT use the Devices menu.
Do NOT send me Personal Messages (PMs) for troubleshooting, they are simply deleted.
Do NOT reply with the "QUOTE" button, please use the "POST REPLY", at the bottom of the form.
If you obfuscate any information requested, I will obfuscate my response. These are virtual UUIDs, not real ones.
Hoy
Posts: 5
Joined: 22. Jun 2018, 20:11

Re: Digilent USB device wont pass through to Linux Mint VM.

Post by Hoy »

I mean, the "On-the-fly" method very clearly says selecting in this way is acceptable as a transient solution, and when I am plugged into the UART port it works fine, but it doesn't matter. I have tried both with both methods. With the filters, the device captures in the UART port and the check mark appears upon plugging it in. The JTAG does not. Without the filters, the UART port captures when selected, the JTAG does not.
Post Reply