Hello everyone,
I'd like to encrypt my external HDD using dm-crypt (luks) via USB 3.0.
The crypto-container creation works, but writing to it doesn't:
> kernel: usb 4-2: reset SuperSpeed USB device number 2 using xhci_hcd
> kernel: xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled
> ep ffff8800c37e5c80kernel: xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint
> called with disabled ep ffff8800c37e5cc0kernel: usb 4-2: reset SuperSpeed USB
> device number 2 using xhci_hcd
> kernel: xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled
> ep ffff8800c37e5c80kernel: xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint
> called with disabled ep ffff8800c37e5cc0kernel: usb 4-2: reset SuperSpeed USB
> device number 2 using xhci_hcd
> kernel: xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled
> ep ffff8800c37e5c80kernel: xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint
> called with disabled ep ffff8800c37e5cc0kernel: usb 4-2: reset SuperSpeed USB
> device number 2 using xhci_hcd
> kernel: xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled
> ep ffff8800c37e5c80kernel: xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint
> called with disabled ep ffff8800c37e5cc0kernel: xhci_hcd 0000:00:14.0:
> Timeout while waiting for address device command
> kernel: xhci_hcd 0000:00:14.0: Timeout while waiting for address device
> command
> kernel: usb 4-2: device not accepting address 2, error -62
> kernel: usb 4-2: USB disconnect, device number 2
> kernel: scsi 12:0:0:0: rejecting I/O to offline device
> kernel: scsi 12:0:0:0: [sdc] killing request
> kernel: scsi 12:0:0:0: [sdc] Unhandled error code
> kernel: scsi 12:0:0:0: [sdc]
> kernel: Result: hostbyte=0x01 driverbyte=0x00
> kernel: scsi 12:0:0:0: [sdc] CDB:
> kernel: cdb[0]=0x2a: 2a 00 00 00 10 41 00 00 12 00
> kernel: end_request: I/O error, dev sdc, sector 4161
> kernel: quiet_error: 1601 callbacks suppressed
> kernel: Buffer I/O error on device dm-5, logical block 2
> kernel: lost page write due to I/O error on dm-5
> kernel: Buffer I/O error on device dm-5, logical block 3
> kernel: lost page write due to I/O error on dm-5
> kernel: Buffer I/O error on device dm-5, logical block 4
> kernel: lost page write due to I/O error on dm-5
> kernel: Buffer I/O error on device dm-5, logical block 5
> kernel: lost page write due to I/O error on dm-5
> kernel: Buffer I/O error on device dm-5, logical block 6
> kernel: lost page write due to I/O error on dm-5
> kernel: Buffer I/O error on device dm-5, logical block 7
> kernel: lost page write due to I/O error on dm-5
> kernel: Buffer I/O error on device dm-5, logical block 8
> kernel: lost page write due to I/O error on dm-5
> kernel: Buffer I/O error on device dm-5, logical block 9
> kernel: lost page write due to I/O error on dm-5
> kernel: Buffer I/O error on device dm-5, logical block 10
> kernel: lost page write due to I/O error on dm-5
> kernel: Buffer I/O error on device dm-5, logical block 11
> kernel: lost page write due to I/O error on dm-5
> kernel: scsi 12:0:0:0: rejecting I/O to offline device
> kernel: scsi 12:0:0:0: [sdc] killing request
> kernel: scsi 12:0:0:0: [sdc] Unhandled error code
> kernel: scsi 12:0:0:0: [sdc]
> kernel: Result: hostbyte=0x01 driverbyte=0x00
> kernel: scsi 12:0:0:0: [sdc] CDB:
> kernel: cdb[0]=0x2a: 2a 00 00 00 10 53 00 00 18 00
> kernel: end_request: I/O error, dev sdc, sector 4179
> kernel: xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled
> ep ffff8800c37e5c80
> kernel: xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled
> ep ffff8800c37e5cc0
USB 2.0 (ehci-pci) works fine (direct, filesystem, crypto). With USB
3.0, both direct access using 'dd' and filesystem access is possible.
Only direct access to the cryptdevice fails (including 'mkfs.ext4').
If I create a filesystem on the crypto device via USB 2.0, I can access
it via USB 3.0 as well.
% uname -r
3.13.5-1
(also tested on 3.14rc4)
% lspci -nn | grep USB
00:14.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series
Chipset Family USB xHCI Host Controller [8086:1e31] (rev 04)
00:1a.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series
Chipset Family USB Enhanced Host Controller #2 [8086:1e2d] (rev 04)
00:1d.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series
Chipset Family USB Enhanced Host Controller #1 [8086:1e26] (rev 04)
% sudo lsusb -v -d 4971:1014
Bus 004 Device 003: ID 4971:1014 SimpleTech
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 9
idVendor 0x4971 SimpleTech
idProduct 0x1014
bcdDevice 0.00
iManufacturer 10 HGST
iProduct 11 Touro Mobile 3.0
iSerial 3 21001311250002300511
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 44
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 42
bNumDeviceCaps 3
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000002
Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000e
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 1
Lowest fully-functional device speed is Full Speed (12Mbps)
bU1DevExitLat 10 micro seconds
bU2DevExitLat 32 micro seconds
Container ID Device Capability:
bLength 20
bDescriptorType 16
bDevCapabilityType 4
bReserved 0
ContainerID {00010203-0405-0607-0800-000000000000}
Device Status: 0x0001
Self Powered
See [1] for a journalctl-log with xhci-debugging enabled. I also made an
usbmon-trace [2].
Regards,
Merlin Chlosta
[1] journalctl: http://sprunge.us/TRid
[2] usbmon: http://sprunge.us/cTUe
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html