Flashing Jetson TX2 Development Kit via VirtualBox 6.0 and Windows 7/10


My system is the following:

  • OS: Windows 7
  • Host/VM: VirtualBox 6.0 with Ubuntu 16.04
  • Target: Jetson TX2 development kit
  • Connection: USB-ethernet from Target to OS

In my VM, I ran



Everything downloaded and compiled however I am now stuck at the flashing stage when using forced recovery mode.

Under Settings->Network I set:

  • Attached To: Host-only Adapter
  • Name: VirtualBox Host-Only Ethernet Adapter
  • Advanced->Promiscuous Mode: Allow All

I then push the necessary buttons on the TX2 dev kit to enter forced recovery mode.

In the VM-terminal, I enter:

lsusb -d 0955:7c18


Bus 001 Device 003: ID 0955:7c18 NVida Corp.


ifconfig -a

My device is set as enp0s3 with ip address: Since the VM is the host I run the following to set the IP address to

sudo ifconfig enp0s3

I can ping (host) however cannot ping (target).


cd ~/nvidia/nvidia_sdk/JetPack_4.2_Linux_P3310/Linux_for_Tegra/
sudo ./flash.sh jetson-tx2 mmcblk0p1 | tee output.log

Result (end):

[  43.8701 ] tegradevflash_v2 --iscpubl
[  43.8733 ] CPU Bootloader is not running on device.
[  43.8774 ]
Error: None of the bootloaders are running on device. Check the UART log.
Failed flashing t186ref.

Full log: https://pastebin.com/vny4RADh

What do I change to make it work?

I’ve looked at the following article:

It seems some have had success flashing through a VM.

VMs are not supported. They can be made to work if the VM owns the port completely and any plug/unplug event always passes through to the VM. USB connects and reconnects during the flash and a VM which does not own this port 100% will fail.

Thanks for the info. I was able to successfully flash with a VM after contacting @vi.agarwal. He recommended I use VMWare Workstation Player 10. He personally used the Pro version and put max resources to the VM to use just the USB method for flashing and SDK component upload however I had a different approach with Player 10.

After the flashing when you install Ubuntu onto the Jetson and supply the username/password, I switched to the ethernet setup following @quenten advice in his post:


HOWEVER if using the sdkmanager, make sure you setup your wifi for internet access on the JETSON because when the SDK components are uploaded and it starts installing after 60%, the jetson will attempt to download dependencies from the Ubuntu APT servers. If it can’t, install will fail and you will need to retry sdkmanager again which will proceed to first re-SCP 5GB of the SDK packages back onto the jetson first… trust me very, very frustrating.

Side note about the need for VM support:

The problem with Windows machines is that they come factory loaded with the entire hard drive space allocated for Windows. You can’t re-partition the same hard drive for Ubuntu and a factory Windows install because a) the entire HDD needs to be re-formatted B) Doing the “Backup factory install of Windows to CD/USB” then reinstalling on a separate partition doesn’t work because the factory image method will try re-format the entire HDD without letting you choose a specific HDD partition space.

The only way it works is if you get a Windows OS install ISO or CD and input a license key for a fresh install with partitioning choices.

I might be very wrong about this but its a problem I’ve encountered trying to setup a dual boot linux and windows machine. Hopefully, I’m wrong and someone corrects me.