Announcement

Collapse
No announcement yet.

USB4 Support Being Introduced With Linux 5.6 Kernel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • USB4 Support Being Introduced With Linux 5.6 Kernel

    Phoronix: USB4 Support Being Introduced With Linux 5.6 Kernel

    While the Linux 5.5 kernel with its many new features isn't even launching as stable until around the end of January, the number of reasons to get excited over the next kernel (5.6) continues to grow. Linux 5.6 will be headlining with WireGuard support and other features while the newest big-ticket item is USB4 support...

    http://www.phoronix.com/scan.php?pag...4-In-Linux-5.6

  • #2
    I haven't even upgraded to USB C devices/cables yet and already they're coming out with USB 4... Will USB 4 require another round of new cables to achieve this 40Gbps bandwidth?

    Comment


    • #3
      Originally posted by ed31337 View Post
      I haven't even upgraded to USB C devices/cables yet and already they're coming out with USB 4... Will USB 4 require another round of new cables to achieve this 40Gbps bandwidth?

      USB 4 is almost the same thing as Thunderbolt 3, so the same cable length restrictions apply.

      On good USB type C cables (i.e. with no missing wires), USB 4 achieves 40 Gb/s on 0.5 m (20 inch) short cables or 20 Gb/s on 1 m (40 in) cables.

      For achieving either 40 Gb/s or 20 Gb/s on cables longer than that, you need so called active Thunderbolt 3 cables.


      The existing "passive" Thunderbolt 3 cables (0.5 m / 20 in long, or less) are just standard USB type C cables, but with them you know for sure that they have all the wires and shields that they should have. With random USB type C cables, you might not know for sure if they work at the highest speed, due to missing wires or lower quality materials or processing.













      Comment


      • #4
        Does having USB4 connector mean it is no longer be safe to not have IOMMU enabled?

        Comment


        • #5
          Originally posted by stikonas View Post
          Does having USB4 connector mean it is no longer be safe to not have IOMMU enabled?
          Why would anyone not have it enabled already?
          Last edited by torsionbar28; 12-22-2019, 06:52 PM.

          Comment


          • #6
            Originally posted by torsionbar28 View Post
            Why would anyone not have it enabled already?
            Chinese vendors doesn't understand why it should be enabled, so many laptops and tablets doesn't have it enabled...

            Comment


            • #7
              Originally posted by RussianNeuroMancer View Post
              [some] vendors doesn't understand why it should be enabled, so many laptops and tablets doesn't have it enabled...
              If the shipping solution boots Windows, and they can sell the solution to the masses, they likely will continue not to care. If you want to get the vendors to change their approaches Microsoft will have to ban the advanced (DMA) capabilities of TB ports if IOMMU is not enabled.

              Comment


              • #8
                Originally posted by stikonas View Post
                Does having USB4 connector mean it is no longer be safe to not have IOMMU enabled?
                Having the IOMMU enabled is better for many reasons.


                Nevertheless, all the existing Thunderbolt 3 devices, so also all the future USB 4 devices have special security options that work even without the IOMMU.

                You choose in the BIOS setup whether to always allow connections via the USB 4 / Thunderbolt protocol or to never allow such devices or to allow them only after confirmation by the user.


                With older Linux kernels & userland it was a problem that they were not aware about Thunderbolt security, so the user was never asked for permission when a Thunderbolt device was connected. Because of that, you had to choose in the BIOS to always allow Thunderbolt connections, which is insecure.

                The recent kernels should have solved this and now there exists a Linux Thunderbolt 3 Device Manager (bolt), but I have not tested this, because I boot Linux from a Thunderbolt 3 SSD and after that I do not connect other Thunderbolt 3 / USB 4 devices.

                I have been using during the last few years Thunderbolt 3 external SSDs, running Linux from them, and they work great. Not only they are very fast, i.e. the same as internal M.2 NVMe SSDs, but the NVMe protocol over PCIe over Thunderbolt / USB 4 is much more stable and free of errors than with SSDs connected over USB 3 with SATA or NVMe bridges (where, even when they seem to work fine, looking at dmesg might show a lot of device resets for recoveries from various kinds of errors).
























                Comment


                • #9
                  The p2p networking thing, is that still Ethernet over USB or is it pure Ethernet over a USB cable? If it's Ethernet over USB, then I wonder what kind of throughputs we can expect to get in reality. My experience with Ethernet gadgets are limited to fairly slow ARM boards.

                  Comment


                  • #10
                    Originally posted by jo-erlend View Post
                    The p2p networking thing, is that still Ethernet over USB or is it pure Ethernet over a USB cable? If it's Ethernet over USB, then I wonder what kind of throughputs we can expect to get in reality. My experience with Ethernet gadgets are limited to fairly slow ARM boards.

                    USB 4 is a new, different communication protocol. However it is conceived so that it is easy to transport over it (i.e. to tunnel) older slower protocols.

                    Usually the application programs are not aware of the existence of the USB 4 link.

                    The USB 4 specification says how to tunnel through it 3 older protocols, i.e. PCIe 3, USB 3 and DisplayPort.

                    Except for the USB 4 Device Manager, the other programs see PCIe 3 devices, USB 3 devices and a DisplayPort output.

                    For the Thunderbolt 3 ports, there is a 4th way to use them.
                    If you have 2 computers with Thunderbolt 3 ports and if you connect them with a USB type C cable and if you have on both computers a device driver for Thunderbolt peer-to-peer networking, then loading those device drivers makes the systems see what appears to be an extra 10 Gb/s Ethernet interface.

                    Then you can configure those interfaces as you configure any other networking interfaces and you can transfer anything between the 2 computers without requiring any USB Ethernet adapter.

                    However, I have no idea how the Ethernet frames are encapsulated into the Thunderbolt 3 protocol, because this feature does not appear in the USB 4 specification and the older Thunderbolt 3 specification has not been published.

                    The USB 4 specification says how to exchange raw frames between the 2 computers, so anyone could implement such a peer-to-peer networking feature, possibly also at higher speeds than the 10 Gb/s implemented by the Intel Thunderbolt 3 device drivers. Nevertheless, you would need for everybody to implement the same frame layout, for interoperation, and this does not seem to be standardized yet.


                    There was some work to make a Linux Thunderbolt 3 networking driver, which should be able to interoperate with the Intel device driver for Windows, but I do not know if that already works.










                    Comment

                    Working...
                    X