On Sun, Dec 19, 2010 at 02:08:51PM +0100, Richard Schütz wrote: > On 12/19/10 11:22, Sergey Vlasov wrote: > > However, the kernel now has internal support for the Cypress ATACB > > protocol - the ums-cypress.ko module, which attaches to CY7C68300 and > > CY7C68310 bridges instead of the standard usb-storage module, > > translates standard ATA_12 and ATA_16 SCSI commands to Cypress ATACB > > commands, and implementing this translation at the kernel level > > ensures that no other command can be sent to the device between the > > two ATACB commands. The only problem is that the device ID list > > (drivers/usb/storage/unusual_cypress.h) does not contain the vendor > > and product IDs for your device: > > > >> Bus 002 Device 004: ID 14cd:6116 Super Top > > > > Adding an entry for your device to that file and recompiling usb > > storage modules should make the ums-cypress module handle that USB-ATA > > bridge; then you should use "-d sat" instead of "-d usbcypress" to use > > the in-kernel translation code. > > > > > > On Sat, Dec 18, 2010 at 06:45:50PM +0100, Richard Schütz wrote: > >> NOTE: This is reproducible with another USB ATA bridge which supports > >> SAT (smartctl -d sat), too! > > > > This, however, looks like a completely different problem - the SAT > > protocol does not need back-to-back commands, everything is done with > > a single command which should not conflict with other commands issued > > before or after it. Please provide the usbmon trace for the error > > with "-d sat" too. > > You were bang on! Patching the drivers and using the kernel translation > fixes the problem. I can transmit data and use "smartctl -d sat" > simultaneously without errors. Great - now you can submit a tested patch to the kernel, so that future kernel versions will work with that hardware automatically. > The cause for the problem with my other external drive must be a > different one then. > > More details on that: > > lsusb -v: > Bus 002 Device 020: ID 1e68:001b TrekStor GmbH & Co. KG DataStation maxi g.u > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 2.00 > bDeviceClass 0 (Defined at Interface level) > bDeviceSubClass 0 > bDeviceProtocol 0 > bMaxPacketSize0 64 > idVendor 0x1e68 TrekStor GmbH & Co. KG > idProduct 0x001b DataStation maxi g.u > bcdDevice 0.00 > iManufacturer 1 JMicron > iProduct 11 TrekStor DS maxi g.u > iSerial 3 200811130EB5 > bNumConfigurations 1 > Configuration Descriptor: [... an usual descriptor for an USB storage device ...] > > It looks like there's a JMicron chip inside, but "smartctl -d > usbjmicron" fails. Reading data from the drive and querying SMART with > "smartctl -d sat" works without problem. Writing data and then querying > SMART results in errors. > > kernel errors: http://richard.qasl.de/kernel.log > usbmon trace: http://richard.qasl.de/2.mon.out Do you know what drive is inside the enclosure? "hdparm -I /dev/sdX" should work with a recent hdparm (>= 7.0); the "smartctl -d sat -i" output would be good too.
Attachment:
signature.asc
Description: Digital signature