sdcard read error with nokia n8 as mass storage
Jan Beich
jbeich at tormail.org
Sun Feb 17 16:48:06 UTC 2013
The phone has 16G of on-board and 16G sdcard memory. FreeBSD 10.0 detects
both but only the former can be mounted. And there is no issue mounting
the sdcard on Ubuntu or on FreeBSD via iSCSI (fileio).
$ dmesg # freebsd
ugen7.2: <Nokia> at usbus7
umass0: <USB Mass Storage Interface> on usbus7
umass0: SCSI over Bulk-Only; quirks = 0x4000
umass0:5:0:-1: Attached to scbus5
da0 at umass-sim0 bus 0 scbus5 target 0 lun 0
da0: < > Removable Direct Access SCSI-0 device
da0: 1.000MB/s transfers
da0: 14644MB (29990912 512 byte sectors: 255H 63S/T 1866C)
da1 at umass-sim0 bus 0 scbus5 target 0 lun 1
da1: < > Removable Direct Access SCSI-0 device
da1: 1.000MB/s transfers
da1: 15193MB (31116288 512 byte sectors: 255H 63S/T 1936C)
(da1:umass-sim0:0:0:1): READ(10). CDB: 28 20 00 00 00 00 00 00 01 00
(da1:umass-sim0:0:0:1): CAM status: SCSI Status Error
(da1:umass-sim0:0:0:1): SCSI status: Check Condition
(da1:umass-sim0:0:0:1): SCSI sense: ILLEGAL REQUEST asc:24,0 (Invalid field in CDB)
(da1:umass-sim0:0:0:1): Error 22, Unretryable error
(da1:umass-sim0:0:0:1): READ(10). CDB: 28 20 00 00 00 00 00 00 01 00
(da1:umass-sim0:0:0:1): CAM status: SCSI Status Error
(da1:umass-sim0:0:0:1): SCSI status: Check Condition
(da1:umass-sim0:0:0:1): SCSI sense: ILLEGAL REQUEST asc:24,0 (Invalid field in CDB)
(da1:umass-sim0:0:0:1): Error 22, Unretryable error
$ dmesg # ubuntu
[ 2702.696789] usb 2-1.5: new high-speed USB device number 5 using ehci_hcd
[ 2702.792029] scsi8 : usb-storage 2-1.5:1.0
[ 2703.789565] scsi 8:0:0:0: Direct-Access PQ: 0 ANSI: 0
[ 2703.790440] scsi 8:0:0:1: Direct-Access PQ: 0 ANSI: 0
[ 2703.792026] sd 8:0:0:0: Attached scsi generic sg2 type 0
[ 2703.792839] sd 8:0:0:1: Attached scsi generic sg3 type 0
[ 2703.797851] sd 8:0:0:0: [sdb] Attached SCSI removable disk
[ 2703.798468] sd 8:0:0:1: [sdc] Attached SCSI removable disk
[ 2706.096533] sd 8:0:0:1: [sdc] 31116288 512-byte logical blocks: (15.9 GB/14.8 GiB)
[ 2706.097650] sd 8:0:0:1: [sdc] No Caching mode page present
[ 2706.097658] sd 8:0:0:1: [sdc] Assuming drive cache: write through
[ 2706.100061] sd 8:0:0:0: [sdb] 29990912 512-byte logical blocks: (15.3 GB/14.3 GiB)
[ 2706.101756] sd 8:0:0:1: [sdc] No Caching mode page present
[ 2706.101762] sd 8:0:0:1: [sdc] Assuming drive cache: write through
[ 2706.102249] sd 8:0:0:0: [sdb] No Caching mode page present
[ 2706.102255] sd 8:0:0:0: [sdb] Assuming drive cache: write through
[ 2706.107070] sdc: sdc1
[ 2706.123044] sd 8:0:0:0: [sdb] No Caching mode page present
[ 2706.123051] sd 8:0:0:0: [sdb] Assuming drive cache: write through
[ 2706.126055] sdb:
$ file -s /dev/da1 # native
/dev/da1: ERROR: cannot read `/dev/da1' (Input/output error)
$ file -s /dev/da1 # iscsi
/dev/da1: x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192, 31108096 sectors, extended partition table (last)\011, code offset 0x0
$ file -s /dev/da1s1 # iscsi
/dev/da1s1: x86 boot sector, code offset 0x0, OEM-ID " EPOC", sectors/cluster 64, reserved sectors 598, Media descriptor 0xf8, heads 255, hidden sectors 8192, sectors 31108096 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 3797, reserved3 0x800000, serial number 0x316d446c, label: "Memory card"
Any clue? I've tried UQ_MSC_NO_SYNC_CACHE with no luck.
--
$ usbdump -i usbus7 -s 0 -vvv # on attach
<http://pastebin.com/mQ472uQJ>
$ usbconfig -d 7.2 dump_device_desc
ugen7.2: <N8-00 Nokia> at usbus7, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0000
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x0421
idProduct = 0x0301
bcdDevice = 0x0100
iManufacturer = 0x0001 <Nokia>
iProduct = 0x0002 <N8-00>
iSerialNumber = 0x0003 <secret>
bNumConfigurations = 0x0001
$ usbconfig -d 7.2 dump_curr_config_desc
ugen7.2: <N8-00 Nokia> at usbus7, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0023
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0004 <Bulk transfer method configuration>
bmAttributes = 0x0080
bMaxPower = 0x00fa
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0002
bInterfaceClass = 0x0008
bInterfaceSubClass = 0x0006
bInterfaceProtocol = 0x0050
iInterface = 0x0006 <USB Mass Storage Interface>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081 <IN>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0200
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0001 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0200
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x03
bDescriptorType = 0x09
bDescriptorSubType = 0x00
RAW dump:
0x00 | 0x03, 0x09, 0x00
More information about the freebsd-usb
mailing list