USB Flash drive problem with 9.0
J.J. Day
day1234 at hotmail.com
Sat Mar 24 04:54:53 UTC 2012
> From: hselasky at c2i.net
> To: freebsd-usb at freebsd.org
> Subject: Re: USB Flash drive problem with 9.0
> Date: Fri, 23 Mar 2012 08:25:32 +0100
> CC: day1234 at hotmail.com; freebsd-current at freebsd.org; mav at freebsd.org
>
> On Friday 23 March 2012 06:14:08 J.J. Day wrote:
> > I am upgrading a FreeBSD server and have encountered a problem with
> > mounting a USB flash drive. The system was on 6.3 and I upgraded to 9.0
> > using CVS repositories. The flash drive worked properly at all steps
> > throughout the upgrade. However, after the OS upgrade was complete, I
> > made a mistake and destroyed some of the server application.
> >
> > So, I set the
> > upgraded drive aside, copied the original source drive to a different
> > spare, and repeated the upgrade process taking care to verify the
> > functioning of the applications during the process. When I finished the
> > second time, everything worked properly except for mounting the flash
> > drive.
> >
> > it appears that something changed with the OS code that reads the drive
> > firmware between the first time I ran cvsup on (about) the 9th and the
> > second time I ran it about the 18th.
> >
> >
> >
> > This is the output from the first upgrade (3/11/2012) when the drive is
> > inserted:
> >
> >
> >
> > ugen4.2: <HP> at usbus4
> > umass0: <HP v165w, class 0/0, rev 2.00/32.76, addr 2> on usbus4
> > umass0: SCSI over Bulk-Only; quirks = 0x0100
> > umass0:2:0:-1: Attached to scbus2
> > da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
> > da0: <hp v165w 3276> Removable Direct Access SCSI-4 device
> > da0: 40.000MB/s transfers
> > da0: 30960MB (63406080 512 byte sectors: 255H 63S/T 3946C)
> > And diskinfo output:
> >
> >
> >
> > da0
> > 512 # sectorsize
> > 32463912960 # mediasize in bytes (30G)
> > 63406080 # mediasize in sectors
> > 0 # stripesize
> > 0 # stripeoffset
> > 3946 # Cylinders according to firmware.
> > 255 # Heads according to firmware.
> > 63 # Sectors according to firmware.
> > AA22064F00000035 # Disk ident.
> > This is the output from the second upgrade (3/18/2012) when the drive is
> > inserted:
> >
> >
> >
> > ugen4.2: <HP> at usbus4
> > umass0: <HP v165w, class 0/0, rev 2.00/32.76, addr 2> on usbus4
> > umass0: SCSI over Bulk-Only; quirks = 0x0100
> > umass0:2:0:-1: Attached to scbus2
> > da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
> > da0: <hp v165w 3276> Removable Direct Access SCSI-4 device
> > da0: 40.000MB/s transfers
> > da0: 17454747090944MB (71776119061217281 512 byte sectors: 64H 32S/T 0C)
> > And diskinfo shows:
> >
>
> Hi,
>
> >
> > da0
> > 512 # sectorsize
> > -144115188075855360 # mediasize in bytes ()
> > -281474976710655 # mediasize in sectors
> > 0 # stripesize
> > 0 # stripeoffset
> > -137438953471 # Cylinders according to firmware.
> > 64 # Heads according to firmware.
> > 32 # Sectors according to firmware.
> > AA22064F00000035 # Disk ident.
> > Since the size information is incorrect, the /dev/da0s1 device is not
> > created and the drive cannot be mounted. The problem only happens with a
> > large drive. When I use a 4GB or 8GB drive, everything works correctly.
> >
> > If there is any information that I can submit that can assist in solving
> > the problem please let me know.
> >
>
> This does not look like a USB problem. It is the SCSI/CAM layer which queries
> over SCSI USB how big the disk is.
>
> BTW:
>
> dec2hex(17454747090944)
> ans = FE000000000
>
> So it looks like some additional bits have sneaked in there?
>
> dec2hex(32463912960)
> ans = 78F000000
>
> 0xFE000000000 / 0x78F000000
> ans = 537.67
>
> So it looks like the mediasize was multiplied by 512 when it shouldn't.
>
> --HPS
Kaho Toshikazu found a solution (a work-around) for the problem.
Since the drive mounted as: "ugen4.2: <HP> at usbus4"
The commands:
# usbconfig -d 4.2 add_quirk UQ_MSC_NO_INQUIRY
# usbconfig -d 4.2 reset
resets the attach and appears to bypass some of the SCSI/CAM process.
The /dev/da0s1 device is created and the drive functions normally
although the drive ident information is no longer available.
JJ
More information about the freebsd-usb
mailing list