This Is USB-to-USB data transfer between two Linux OSes possible? question and the answer is USB 2.0 which is simply outdated. As USB 3.0 is much faster than simple Gigabit Ethernet and I want to connect a laptop and a desktop both with SSDs, this would be a great solution. If it's possible.


Yes, USB 3.0 makes full duplex data transfer possible, with 3.0 cabling. The specs are in section 5.5.2 of the USB specs. The link to those specs is given earlier in another answer. http://www.gaw.ru/pdf/interface/usb/USB%203%200_english.pdf

Cables are becoming easier to find- they can be bought on Amazon, for example, for under $8.00. be sure to buy DATA TRANSFER, male A to male A cables. Newer versions of Linux support the transfer.

I hope that helps someone- I searched for the answer for quite a while myself.

  • 4
    Care to add something about how this works under Linux? Will your USB ports show up as network interfaces? – chx Oct 1 '16 at 10:34
  • 1
    this is the same exact answer from the other thread and it was equally useless there. you don't explain how to do anything. – whn Jun 6 '17 at 21:09
  • 2
    I found a cable as described in 5.5.2 (no VCC or D+/D- connected, USB 3.0 pins are connected as crossover), but they claim it's for debugging only & that Mac, Linux, and Windows don't support host-to-host file transfers. datapro.net/products/… I have found bridge cables, such as this: startech.com/Networking-IO/USB-PS2/… Bridge cables like this do NOT conform to section 5.5.2 of the USB spec and are active devices which need a driver. I'm unable to verify linux support. – bobpaul Aug 28 '17 at 23:50
  • Section 5.5.2 "USB 3.0 Standard-A to USB 3.0 Standard-A Cable Assembly" of the Specifications only defines cable and says "cable assembly is defined for operating system debugging and other host-to-host connection applications". Are you sure that usb3 a-to-a cable allows not only debugging (kernel.org/doc/html/v4.16/driver-api/usb/usb3-debug-port.html - needs xHCI debug capability DbC, which is optional for xHCI usb3 host controllers), but also file transfer? For file transfer there are active cables (with controller in middle), some listed at: ghisler.com/cables – osgx Apr 8 '18 at 13:31

While this doesn't seem to be availabe, there are dual Gigabit Ethernet adapters (make sure to get a real dual NIC and not a NIC + switch) and that's 2GBit. Disappointing. Then it's down to bonding the two together. In my case, the desktop have spare PCI Express x1 ports so I will get a dual NIC card instead of converting USB 3.0 there. For the laptop, USB 3.0 expresscard (they make ones with practically disappearing ports) and an adapter seems to be the easiest.

And since we are bonding, the laptop and the desktop both have gigabit Ethernet already so I can reach 3gbit/s theoretically which is quite good for syncing two machines which are limited by SATA speeds.

  • Bonding ethernet is quite tricky. It requires special cooperation from the dual NIC driver ( can't bond a different nic ) and the switch, which must support 802.11ad LACP. There is a poor man's bonding driver in the linux kernel, but it can only allow you to send traffic to two different hosts at the same time, not twice the throughput to the same host. – psusi Oct 28 '15 at 1:44
  • 802.3ad/LACP also doesn't share the bandwidth to the same host. It sends packets out of one or the other NIC based on a hash of the destination MAC (or IP in some cases). So you can get 2Gbps in or out, but only if you are connecting to at least two different remote machines. You can't get 2Gbps between only two machines, sadly. – Malvineous Mar 16 '17 at 13:14

Found some info about this on the linux-usb mailing list, from Feb 2012:

The xHCI spec describes a debug port to connect two hosts together, but a debug port is optional and almost none of the xHCI hosts currently on the market actually have them. Also, as Alan said, there isn't any Linux software to support it.

Sarah Sharp

I can't find anything newer to contradict this, so looks like it's a not the way to go. I would bet that even if it did work, the fact that it uses a debug port is going to slow things down considerably. Plus some systems only designate a single USB connector as debug-enabled, so not only would this male-to-male cable only work on certain machines, but only on one USB port on those machines as well!

I did find information on a Prolific PL2701 IC that can bridge two USB3 hosts, in a similar way to the older USB2 bridge cables. It says it supports RNDIS (network emulation), mass storage, and some other protocols. So looks like USB3 doesn't alleviate the need for a special bridge cable to connect two PCs.


No; it is not possible. USB is a master/slave ( host/device ) protocol. You can only connect devices to a host, and a host can only be connected to devices. The USB On The Go addition allows for some gadgets ( limited to cell phones and tablets ) to act as one, or the other, depending on what it is connected to, but desktop PCs are host only and so can not be connected to each other.

  • 3
    That's true for USB2, but no longer for USB3. – Gilles 'SO- stop being evil' Oct 30 '15 at 23:46
  • @Gilles, no, as I said usb3 only incorporates the ability for certain controllers to act as either a host or a device, but it is still not a peer to peer protocol: the host drives the clock, and issues the commands, to which the devices are expected to reply. – psusi Oct 31 '15 at 2:37
  • -1, the question has nothing to do with peers, clocks, or commands. It's about data transfer. – Navin Feb 5 '19 at 10:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.