Kernel unable to read partition table on USB Memory Key

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm trying to diagnose an issue with a USB "Memory Key" (128Mb Flash drive)
on my workstation (i386 Linux 2.6.12 kernel, using udev 058).

When connecting the key, the kernel fails to read the partition table, and
therefore the block device /dev/sda1 isn't created, so I can't mount the
volume.  Calling "fdisk" manually, however, makes it all work.

When I plug the device into the USB port, the kernel prints the following:

Jul  5 16:18:38 pc196344 kernel: usb 1-6: new high speed USB device using
ehci_hcd and address 3
Jul  5 16:18:39 pc196344 kernel: Initializing USB Mass Storage driver...
Jul  5 16:18:39 pc196344 kernel: scsi2 : SCSI emulation for USB Mass Storage
devices
Jul  5 16:18:39 pc196344 kernel: usbcore: registered new driver usb-storage
Jul  5 16:18:39 pc196344 kernel: USB Mass Storage support registered.
Jul  5 16:18:39 pc196344 kernel: usb-storage: device found at 3
Jul  5 16:18:39 pc196344 kernel: usb-storage: waiting for device to settle
before scanning
Jul  5 16:18:44 pc196344 kernel:   Vendor: OTi       Model: Flash Disk
Rev: 2.00
Jul  5 16:18:44 pc196344 kernel:   Type:   Direct-Access
ANSI SCSI revision: 02
Jul  5 16:18:44 pc196344 kernel: Attached scsi generic sg1 at scsi2, channel
0, id 0, lun 0,  type 0
Jul  5 16:18:44 pc196344 kernel: usb-storage: device scan complete
Jul  5 16:18:44 pc196344 scsi.agent[12708]: disk at
/devices/pci0000:00/0000:00:1d.7/usb1/1-6/1-6:1.0/host2/target2:0:0/2:0:0:0
Jul  5 16:18:44 pc196344 kernel: sda: Unit Not Ready, sense:
Jul  5 16:18:44 pc196344 kernel: : Current: sense key: Unit Attention
Jul  5 16:18:44 pc196344 kernel:     Additional sense: Not ready to ready
change, medium may have changed
Jul  5 16:18:44 pc196344 kernel: sda : READ CAPACITY failed.
Jul  5 16:18:44 pc196344 kernel: sda : status=1, message=00, host=0,
driver=08
Jul  5 16:18:44 pc196344 kernel: sd: Current: sense key: Unit Attention
Jul  5 16:18:44 pc196344 kernel:     Additional sense: Not ready to ready
change, medium may have changed
Jul  5 16:18:44 pc196344 kernel: sda: test WP failed, assume Write Enabled
Jul  5 16:18:44 pc196344 kernel: sda: assuming drive cache: write through
Jul  5 16:18:44 pc196344 kernel: sda: Unit Not Ready, sense:
Jul  5 16:18:44 pc196344 kernel: : Current: sense key: Unit Attention
Jul  5 16:18:44 pc196344 kernel:     Additional sense: Not ready to ready
change, medium may have changed
Jul  5 16:18:44 pc196344 kernel: sda : READ CAPACITY failed.
Jul  5 16:18:44 pc196344 kernel: sda : status=1, message=00, host=0,
driver=08
Jul  5 16:18:44 pc196344 kernel: sd: Current: sense key: Unit Attention
Jul  5 16:18:44 pc196344 kernel:     Additional sense: Not ready to ready
change, medium may have changed
Jul  5 16:18:44 pc196344 kernel: sda: test WP failed, assume Write Enabled
Jul  5 16:18:44 pc196344 kernel: sda: assuming drive cache: write through
Jul  5 16:18:44 pc196344 kernel: sda: Unit Not Ready, sense:
Jul  5 16:18:44 pc196344 kernel: : Current: sense key: Unit Attention
Jul  5 16:18:44 pc196344 kernel:     Additional sense: Not ready to ready
change, medium may have changed
Jul  5 16:18:44 pc196344 kernel: sda : READ CAPACITY failed.
Jul  5 16:18:44 pc196344 kernel: sda : status=1, message=00, host=0,
driver=08
Jul  5 16:18:44 pc196344 kernel: sd: Current: sense key: Unit Attention
Jul  5 16:18:44 pc196344 kernel:     Additional sense: Not ready to ready
change, medium may have changed
Jul  5 16:18:44 pc196344 kernel: sda: test WP failed, assume Write Enabled
Jul  5 16:18:44 pc196344 kernel: sda: assuming drive cache: write through
Jul  5 16:18:44 pc196344 kernel:
/dev/scsi/host2/bus0/target0/lun0:end_request: I/O error, dev sda, sector 0
Jul  5 16:18:44 pc196344 kernel: Buffer I/O error on device sda, logical
block 0
Jul  5 16:18:44 pc196344 kernel: Buffer I/O error on device sda, logical
block 0
Jul  5 16:18:44 pc196344 kernel:  unable to read partition table
Jul  5 16:18:44 pc196344 kernel: Attached scsi removable disk sda at scsi2,
channel 0, id 0, lun 0

Clearly, something isn't right here, and the kernel is unable to read block
0 (the parition table).  I've tried using the "delay_use" parameter to the
usb-storage module to increase the delay time to 10 seconds, but still no
difference.

If I run "fdisk /dev/sda" however, then the kernel realises there is a
partition table and it all just works, thus:

Jul  5 16:24:27 pc196344 sudo:  james : TTY=pts/1 ;
PWD=/usr/src/linux-2.6.12-jrt1 ; USER=root ; COMMAND=/sbin/fdisk /dev/sda
Jul  5 16:24:27 pc196344 kernel: SCSI device sda: 255488 512-byte hdwr
sectors (131 MB)
Jul  5 16:24:27 pc196344 kernel: sda: Write Protect is off
Jul  5 16:24:27 pc196344 kernel: sda: Mode Sense: 03 00 00 00
Jul  5 16:24:27 pc196344 kernel: sda: assuming drive cache: write through
Jul  5 16:24:27 pc196344 kernel: SCSI device sda: 255488 512-byte hdwr
sectors (131 MB)
Jul  5 16:24:27 pc196344 kernel: sda: Write Protect is off
Jul  5 16:24:27 pc196344 kernel: sda: Mode Sense: 03 00 00 00
Jul  5 16:24:27 pc196344 kernel: sda: assuming drive cache: write through
Jul  5 16:24:27 pc196344 kernel:  /dev/scsi/host2/bus0/target0/lun0: p1

In the case above, I'd not done anything inside fdisk apart from "q" to
exit.  

However, I have tried reparitioning the device; using "dd if=/dev/zero
of=/dev/sda bs=512 count=1" to zero the partition table and recreate;
returning the device to the vendor and getting another one - no difference
at all.

The key itself is a NZ vendor "own-name" rebadge, made in Taiwan.  According
to the vendor's (Dick Smith Electronics, if anyone is interested) website,
<http://www.dse.co.nz/cgi-bin/dse.storefront/42ca0f440021d23e273fc0a87f9906a
8/Product/View/XH8250> the product is based on an "OTi-2168 USB2.0 mass
storage class controller".

lsusb -v identifies the following:

Bus 001 Device 004: ID 0ea0:2168 Ours Technology, Inc. Transcend JetFlash
2.0
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0ea0 Ours Technology, Inc.
  idProduct          0x2168 Transcend JetFlash 2.0
  bcdDevice            2.00
  iManufacturer           1 USB
  iProduct                2 Flash Disk
  iSerial                 3 A8933C31BB2C00E2
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           39
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               none
        wMaxPacketSize        512
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               none
        wMaxPacketSize        512
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               none
        wMaxPacketSize          2
        bInterval               1
  Language IDs: (length=4)
     0409 English(US)

My previous USB-Key (an IBM 32Mb device which developed a memory "hole" and
died) worked fine.  This new key also fails to work in a colleagues Fedora
Core 2 2.4.x kernel machine which much the same issue.  It "just works" when
used in Windows XP.

Any help highly valued at this point, and a direct "cc" on any reply would
also be appreciated.

Thanks,

James Roberts-Thomson
----------
Hardware:  The parts of a computer system that can be kicked.

Mailing list Readers:  Please ignore the following disclaimer - this email
is
explicitly declared to be non confidential and does not contain privileged
information.

This communication is confidential and may contain privileged material.
If you are not the intended recipient you must not use, disclose, copy or retain it.
If you have received it in error please immediately notify me by return email
and delete the emails.
Thank you.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux