sdkmanager on Ubuntu (VM) 18.04

I am trying to flash a production Jetson Nano using sdkmanager running under Ubuntu 18.04. When I attempt to flash the device (manual mode) I get a notification that the sdkmanager is not able to connect to the device (see attached screenshot). Furthermore, the device does not show up using lsusb ("0955:7f21 (NVIDEA Corp.) per instructions on the warning screen. My thoughts are the USB port is not detecting the Nano under the VM - and/or the USB connection is simply not able to operate the Nano in self-recovery mode - this is supposed to be somewhat automatic but I believe the VM is preventing proper discovery.

Any Ideas
Mike Steele @ Zebra Corp.

Note that flashing from virtual machines isn’t supported, it requires a native Ubuntu install on the host. The Jetson’s USB port will disconnect/reconnect many times during the flashing process, and often the VM doesn’t pick it up.

Dear dusty_nv,

Well that explains it - I don’t see anywhere in the NVIDIA Jetson Nano documentation that VM versions of Linux are not supported when running the sdkmanager. That seems somewhat limited as not everybody wanting to work with this platform has a navive Linux machine. Is there a version of the sdkmanager that is supported using Linux under a VM?

Thanks for your response.
Mike Steele

This is a limitation of VMs unrelated to Ubuntu or the particular hardware. VMs can be made to work, but it is up to the end user to find (for the particular brand of VM…there are several) how to assign USB to the VM. During a flash USB will disconnect and reconnect several times, and it is upon disconnect/reconnect that a badly configured VM will lose ownership of that USB device.

There isn’t anything at all which can be done via any of the NVIDIA software if the USB port is stolen by the parent o/s. Absolutely all control over this is via the user configuring what the parent o/s is going to grant to the VM, and only you can make that decision through knowledge of the VM setup. For support of this it is up to the vendor of the VM to help, so for example, if you use vmware, then their support would be required to find out how to grant control of a recovery mode Jetson to the VM (NVIDIA cannot alter vmware’s code, it isn’t theirs).

You can build images for a Tegra system inside a VM, but actually flashing them isn’t supported. This would probably apply to any software that attempted a flash from inside a VM. Even if it could be done, the procedure for passing through a device is different per VM provider and some VMs like HyperV only support passing through specific classes of USB (usb storage is it I think, in the case of HyperV). It’s for security reasons. You can pass through a PCI device, including am entire USB controller, but that’s very advanced and probably wouldn’t be a good idea for flashing either.

Dear dusty_nv and nvidia,

So I’ve obtained a native Linux Machine and am trying to install sdkmanager from the command line and I obtain the following error messages:

The following packages have unmet dependencies:
sdkmanager: Depends: libgconf-2-4 but it is not installable
Depends: libcanbera-gtk-module but it is not installable
Unable to correct problems. you have held broken packages.

Similar messages appeared when I tried to install on a 32 bit Linux but this is 64 Bit (Ubuntu 18.04). Any idea what i’m missing ?

Michael Steele @ Zebra

Hi Michael, can you try running these commands?

$ sudo apt-get update
$ sudo apt-get install libgconf-2-4 libcanberra-gtk-module

Also, are you getting these errors when you try to install the sdkmanager deb package with ‘sudo apt’, or when you go to run sdkmanager?

That worked gentlemen - thanks for your assistance.

MSteele @ Zebra

That’s the second time I’ve seen that, and it hasn’t happened on my 18.04 VMs. Out of curiosity, what Linux distro are you using, MSteele? Edit: skipped that part. Same distro. Odd that.

While sdkmanager has been successfully installed, now we’re trying to program Jetson Nano (production) versions with Jetpak 4.2.2 (w/o additional components). The firmware downloads, and installs, however when flashing the device the sdkmanager reports it cannot connect to the Jetson Nano. I have tried “lsusb” and the device does NOT show up in the list of connected devices. I’ve tried multiple USB cords, and power cycling before/after opening the sdkmanager and it simply cannot detect the Nano.

What am I missing now ?

MSteele - Nano Newbie @ Zebra

My bad - after the 3rd USB cable the Nano finally showed up using “lsusb”. All is well and again thanks for your assistance. Consider this thread closed

MSteele @ Zebra