Can JetPack/sdkmanager host be in a VM yet?

For the usual reasons I’d prefer to run the JetPack/sdkmanager host in a virtual machine rather than on a dedicated native host. I tried again to do this just the other day with a Hyper-V machine and the challenges in getting USB passed through seemed insurmountable.

Anybody having success with this? If so, what VM’s, and how are you doing the USB pass-through?

I’ve succeed with VMWare Fusion (they have a trial for 30 days) by using Recovery Mode on my TX2. Give the VM more RAM and CPUs. VirtualBox gave me no result, especially when it comes to USB connectivity. Give it a try.

Hi michaelbdevine,

The sdkmanager not support VM server.
Please use Ubuntu 16.04 or 18.04 on your host machine. Thanks!

Just to comment on the issue of why VMs are hard to deal with, consider that during flash the Jetson will repeatedly disconnect and reconnect on USB. The port needs to be definitively always routed to the guest o/s and the host o/s can in no case take ownership of the port. Some people have managed to configure this, but it is hit and miss.

VMWare works perfectly fine flashing TX1 & TX2. Configure VMWare to automatically attach that USB device to the specific VM desired. Works like a champ. Additionally VMWare player is free for non-commercial use. I’m using VMWare Workstation Pro.

As mentioned by @_Jamie, if USB is configured correctly, then it should work. JetPack/SDKM and NVIDIA flash software has absolutely no possibility of fixing a VM setup issue…this is entirely something needing support from the VM people who produced the VM. VMs cannot simply own everything, otherwise keyboard/mouse and other items would be missing when working with the parent o/s. Only the end user of the VM can set that up.

How USB is routed and lost or associated upon USB disconnect/reconnect is entirely under the VM’s control. NVIDIA has no control over how VMs are written or configured. There is no possibility that anything NVIDIA changes in its flash software can change how a VM behaves. It is up to the end user to set up the VM correctly since the behavior is not the fault of the flash software. What you have on the host is an operating system running on another operating system, and the parent o/s decides which USB the guest can see.

The trouble is that the parent o/s will sometimes never give that USB device to the child o/s. If the parent has set up to pass the device to the child o/s, then it does so relatively quickly. Adding a delay for how long before timeout won’t change anything.

There are times when removing and reinserting the USB cable will trigger re-enumeration, but this is a manual step (a workaround) which would not change by adding a timeout…it would still wait for manual intervention when the parent o/s does not properly pass USB through to child o/s. The flash software cannot control or talk to the parent o/s, and thus there is no way for NVIDIA to provide VM support. This is however something the tech support of the VM company can help with.