20141104/TOV Testing of Prolific PL2773 based on reverse engineering from ismart.exe with API monitor. Commands replicated with sg_raw sudo sg_raw -v -v -r 0x100 /dev/sdb d0 0 0 0 06 7b 0 0 0 0 0 0 # ismart.exe only requests 16 bytes, but block is 256 long and then repeats # First 16 bytes seems like firmware version info # Some bytes change value on consecutive runs?! Received 256 bytes of data: 00 06 7b 27 73 20 11 05 24 08 21 00 01 03 00 04 00 .{'s ..$.!...... 10 00 00 94 57 ce 2d 8f 9f ef e9 ed ff 7e 83 be 0f ...W.-......~... ... sudo sg_raw -v -v -r 0x18 /dev/sdb F4 0 0 0 6 7b # Makes some error?! SCSI Status: Check Condition Sense Information: Fixed format, current; Sense key: Illegal Request Additional sense: Invalid command operation code Raw sense data (in hex): 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 sudo sg_raw -v -v /dev/sdb D8 15 0 D8 06 7B 0 0 0 0 1 1 4F C2 A0 B0 # Makes disk make noises... # B0 = ATA_SMART_CMD # D8 = SMART Enable sudo sg_raw -v -v -r 0x24 /dev/sdb 12 0 0 0 24 0 0 0 0 0 0 # Returns device info Received 36 bytes of data: 00 00 00 00 00 23 00 00 00 57 44 43 20 57 44 32 30 ....#...WDC WD20 10 45 41 52 53 2d 30 30 4d 56 57 42 30 20 20 20 20 EARS-00MVWB0 20 35 31 2e 30 51.0 sudo sg_raw -v -v -r 512 /dev/sdb D8 15 0 D0 06 7B 0 0 2 0 1 1 4F C2 A0 B0 # B0 = ATA_SMART_CMD # D0 = READ_VALUES sudo sg_raw -v -v -r 512 /dev/sdb D8 15 0 D1 06 7B 0 0 2 0 1 1 4F C2 A0 B0 # B0 = ATA_SMART_CMD # D1 = READ_THRESHOLDS sudo sg_raw -v -v /dev/sdb D8 15 0 D4 06 7B 0 0 0 0 0 1 4F C2 A0 B0 # Starts a selftest (Disk makes noises for a while!) # B0 = ATA_SMART_CMD # D4 = SMART Execute Off-line immediate sudo sg_raw -v -v -r 0x10 /dev/sdb D7 0 0 0 06 7B 0 0 0 0 0 0 0 0 0 0 # ATA status registers # Receives 16 bytes of data # Different examples when fooling around: 00 50 00 00 00 09 00 4f 00 c2 00 a0 d5 00 b0 00 50 P.....O........P 00 50 00 00 00 01 00 4f 00 c2 00 a0 d9 00 b0 00 50 P.....O........P 00 fa c3 13 1c 06 72 9f f8 3b ba 06 01 98 00 00 d1 .....r..;....... 00 51 04 01 00 b4 00 4f 00 c2 00 a0 d9 00 b0 00 50 Q.....O........P 00 50 00 00 00 01 00 4f 00 c2 00 a0 d8 00 b0 00 50 P.....O........P