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