I have a Jetson TX2 Dev Kit that records videos and stores the footage on an SSD through SATA connections.
I was wondering if it is possible for me to connect a USB 3.0 cable to the Jetson TX2 and my laptop to copy the data stored on the SSD on my laptop?
Can I just buy a Type A to Type A connector and plug it to the Jetson TX2 and my laptop to extract the data?
Any help would be appreciated.
While such cables do exist you might struggle with finding the drivers for ARM64. Is ethernet crossover not an option for you?
You cannot run the SSD simultaneously from Jetson and another host at the same time. You could do it one at a time. As @MattTS mentions, you might find network options more suitable. FYI, here is the cable I use on Jetsons for SATA:
Note on USB3: USB does not work from host to host…you need a device and a host. Jetson and desktop PCs are both hosts. It is possible to use software to change the micro-OTG port to become a device and make the Jetson look like a hard drive to the other host, but there is work involved in that (and it is USB2, not USB3).
Thank you all for the answers
@MattTS Yes, ethernet could be an option but I was really looking into the USB connection. Is it possible that I use an ethernet to USB converter (link below) and extract the data through USB then?
@linuxdev The SSD will be used one at a time. So the Jetson records and stores and after it is done, I retrieve the data with my pc. Thank you for the link, I will certainly buy one of those.
If I have multiple Jetsons recording videos and storing on their respective SSDs, what is the best way to retrieve all the data? Is it by using a switch and creating a LAN setup with all of them and my PC?
Thanks again for the input.
The USB3 gigabit ethernet will not be any faster than the integrated gigabit…integrated gigabit would be faster than a USB2 ethernet. You might as well use the integrated NIC (having something like an 8-port gigabit switch would allow everything to connect).
You could get a swappable/removable bay and carrier tray for the PC and each Jetson. Unless the bay is “hot swap” (actually, warm swap is more accurate) you’d need to have the unit powered down before putting in or removing a drive. A bay which is advertised as “hot swap” still needs to have the drive unmounted (man umount) before popping a drive in or out…unless you have software designed to handle hot swap (there is a hardware requirement for not damaging drives during insert/removal of a running system implying warm swap, and another requirement to deal with losing a drive while it is in use on top of warm swap…software which extends warm swap to hot swap). Removable bay examples are here, but be very careful to read reviews since quality is not always great with these products:
You cannot run the SSD simultaneously from Jetson and another host at the same time.
That’s not what he wants to do. He wants to use the USB3 connector on the Jetson in Device mode (also known as “OTG”) and have the Jetson act as a file storage device. (There are systems that transparently translate between a virtual block mode FAT filesystem, and an actual underlying file system.)
I don’t know of any combination of software that is compatible with the Jetson TX2 that does this, though.
I have to agree that Ethernet-based solutions are likely to be easier and more plug-and-play.
Jetson can expose a SMB (windows file sharing) mount, or a NFS (Mac/UNIX network file system) mount, or a HTTP service (web browser interface) or whatever else you need on the network.
With software efforts the OTG port can be used as a device (the Linux gadget framework). I’ve not tried to get it to work with USB3, only USB2. This might be of use for USB3 (the TX1 and TX2 are probably similar, but this might need to be adapted):
Some further info if interested:
Should the port operate at only USB2 speeds it will be much slower than gigabit.
Hi All, I have a question regarding Jetson TX2. I have a video file on a windows system and I want to access that on the GPU i.e. Jetson TX2 device. Which is a possible way with which I can do that? I do have a programming cable I received with the kit. Is is possible that I can use that cable? or which is the other possible way with I can achieve this?
Any help would be really appreciated as this is kind of urgent.
Thanks in Advance
Do you simply want to copy the file to the Jetson? Or are you trying to run some sort of live stream between the two? If you can, please describe how you want this to work at minimum, and what would be the best case for you.
I don’t have to copy the file onto my GPU I just want to access the video file from my Windows 8.1 system to my GPU.
The GPU cannot be used as a coprocessor (at least not without an extreme effort). You said the video file is on the Windows machine…so if it is a simple case of needing to copy the file to the Jetson and do something like view the video or run detection, then something like scp is a good method (there are free scp tools).
There would be some setup involved, but your Windows machine could export a network share and the Jetson could mount that as an alternative.
The more interesting answer would take some setup as well, but the micro-B USB cable can be set up using the “gadget” framework to look like a hard drive partition. In that case it would be similar to plugging in a USB thumb drive and you’d use ordinary file explorer to copy the file over (you’d need to do the whole “safe eject” thing when done). There is currently some sample code set up in:
That code has a limited read-only storage set up, along with emulated ethernet device. If you want to actually use this I’d comment out the ethernet device and then modify the script for read-write after making a sufficient storage location for your needs (there are a number of options for this).
I have video files stored on Linux Machine. I want to copy these files on Jetson TX2 and perform detection algorithm which I was running till now on my Ubuntu system. What is the way to do this?
Using “scp” over ethernet is extremely simple. If your login account on the Jetson is “ubuntu”, and the address is “192.168.55.1”, then something like this to put it in “~/Downloads/”:
scp /some/where/some/file/name.something firstname.lastname@example.org ~/Downloads/
First ssh use requires accepting it as authentic.
There are variations on this, e.g., if you have public/private key pairs, then you can skip the password (at which point it is like a local copy).