Anyone else ordered a 2 Port USB 3.1 GEN II (10Gbps) PCI Express Card 1 USB Type C and 1 USB Type A Port (USB 3.1 A + C) from AliExpress.com?
Seem like they have one on sale for $26.99 in 19 hours from now. Ok. Let’s buy one and see what we get – they say that it works with OS X 10.6 and greater.
Update: Here is a first benchmark with a Sandisk 64GB USB3.1 type C flash drive.
I only installed the card and connected the SATA power cable to it. I did not modify anything. Worked out of the box, but this flash drive does not support 10Gbps. To test that I first need a new generation II device, which I do not have at the moment.
Update-2: I found some interesting lines in the log:
kernel: (kernel) 000003.592134 PEGP@00000000: AppleUSBXHCI::createPorts: port 1 unsupported protocol USB 03.01
kernel: (kernel) 000003.615236 PEGP@00000000: AppleUSBXHCI::createPorts: created port 1
kernel: (kernel) 000003.615527 PEGP@00000000: AppleUSBXHCI::createPorts: port 2 unsupported protocol USB 03.01
kernel: (kernel) 000003.615633 PEGP@00000000: AppleUSBXHCI::createPorts: created port 2
kernel: (kernel) 000003.615887 PEGP@00000000: AppleUSBXHCI::createPorts: created port 3
kernel: (kernel) 000003.616282 PEGP@00000000: AppleUSBXHCI::createPorts: created port 4
This is not good. Time for a tiny SSDT. Here is mine:
DefinitionBlock ("ssdt_usb-iMac171.aml", "SSDT", 2, "APPLE ", "Xhci", 0x00001000)
{
External (_SB_.PCI0.PEG0, DeviceObj)
External (_SB_.PCI0.PEG0.PEGP, DeviceObj)
Scope (\_SB.PCI0.PEG0)
{
Scope (PEGP)
{
Name (_STA, Zero) // _STA: Status
}
Device (XHC2)
{
Name (_ADR, Zero) // _ADR: Address
Device (RHUB)
{
Name (_ADR, Zero)
Device (SSP1)
{
Name (_ADR, One)
Name (_UPC, Package (0x04)
{
0xFF,
0x09,
Zero,
Zero
})
Name (_PLD, Package (0x01)
{
Buffer (0x10)
{
/* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
Method (_DSM, 4, NotSerialized)
{
If (LEqual (Arg2, Zero))
{
Return (Buffer (One)
{
0x03
})
}
Return (Package (0x02)
{
"UsbCPortNumber",
One
})
}
}
Device (SSP2)
{
Name (_ADR, 0x2)
Name (_UPC, Package (0x04)
{
0xFF,
0x09,
Zero,
Zero
})
Name (_PLD, Package (0x01)
{
Buffer (0x10)
{
/* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
Method (_DSM, 4, NotSerialized)
{
If (LEqual (Arg2, Zero))
{
Return (Buffer (One)
{
0x03
})
}
Return (Package (0x02)
{
"UsbCPortNumber",
0x02
})
}
}
Device (HS01)
{
Name (_ADR, 0x03)
Name (_UPC, Package (0x04)
{
0xFF,
0x09,
Zero,
Zero
})
Name (_PLD, Package (0x01)
{
Buffer (0x10)
{
/* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
}
Device (HS02)
{
Name (_ADR, 0x04)
Name (_UPC, Package (0x04)
{
0xFF,
0x09,
Zero,
Zero
})
Name (_PLD, Package (0x01)
{
Buffer (0x10)
{
/* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
})
}
}
}
}
}
I may want/need to change my initial SSDT later on, but at least the errors are gone now.
Also. Note that my card is installed in the first/primary slot (PEG0) of the motherboard, but your card may – most likely – use another slot. In short; don’t forget to change the device name 😉
Update-3: And here is a screenshot of a Samsung T3 (500GB) device in action:
This is not a second generation USB 3.1 device, but already quite a bit faster than the Sandisk that I used previously for testing. Also. When you are going to use some external M.2 B key enclosure, then keep in mind that it will be limited to 500~550 MB/Sec due to SATA. Which is not a whole lot faster.
A better option would be some RAID enclosure with two SATA devices, or a M.2 M key device (non-SATA). These two can, at least in theory, use the 10 Gbps (up to 6 Gbps for SATA) of the USB 3.1 Gen 2 port.