USB stick mount problem

Hello.

I have strange problem using my USB stick.
I run FreeBSD 8.0-RELEASE-p2 amd64

First, I plug my USB flash in. It detects correctly and there appears a device entry in /dev:

Code:
ugen1.2: <JetFlash> at usbus1
umass0: <JetFlash Mass Storage Device, class 0/0, rev 2.00/1.00, addr 2> on usbus1
umass0:  SCSI over Bulk-Only; quirks = 0x0100
umass0:2:0:-1: Attached to scbus2
(probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(probe0:umass-sim0:0:0:0): CAM Status: SCSI Status Error
(probe0:umass-sim0:0:0:0): SCSI Status: Check Condition
(probe0:umass-sim0:0:0:0): UNIT ATTENTION asc:28,0
(probe0:umass-sim0:0:0:0): Not ready to ready change, medium may have changed
(probe0:umass-sim0:0:0:0): Retrying Command (per Sense Data)
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <JetFlash TS4GJFV85 8.07> Removable Direct Access SCSI-2 device 
da0: 40.000MB/s transfers
da0: 3900MB (7987200 512 byte sectors: 255H 63S/T 497C)
GEOM: da0: partition 1 does not start on a track boundary.
GEOM: da0: partition 1 does not end on a track boundary.

Code:
[2010-02-05 22:31:10] nephrite:/usr/home/nephrite$ ls /dev/da*
/dev/da0	/dev/da0s1

Then I try to mount it:

Code:
[2010-02-05 22:32:46] nephrite:/usr/home/nephrite$ sudo mount_msdosfs /dev/da0s1 /media/flash/

After that it just hangs and never finishes:

Code:
[2010-02-05 22:13:13] nephrite:/usr/home/nephrite$ ps wax|grep mount
16885   0  D+     0:00,01 mount_msdosfs /dev/da0s1 /media/flash/
16887   1  S+     0:00,00 grep mount

The only way to quit is to unplug the stick. The system doesn't hang or crash, just the mount command doesn't work. The strange thing here is that I also have an USB card reader for SD cards which works just fine. Also the same stick worked all right on my older FreeBSD 7.2 RELEASE-p4 amd64 on the same machine. I also tried similar Jetflash drives and the problem persists so it is not a single faulty stick. Attached is a full output from dmesg.
 

Attachments

  • dmesg.txt
    9 KB · Views: 204
Test this without sudo. Use su, type root's password, then mount: # mount -t msdosfs /dev/da0s1 /media/flash/.
 
Beastie said:
Test this without sudo. Use su, type root's password, then mount: # mount -t msdosfs /dev/da0s1 /media/flash/.

Tried this. Everything the same. mount just doesn't work. However, now I'm able to exit the command with CTRL-C :)
 
Beastie said:
Try it again with da0 instead of da0s1.

It's not supposed to work, but OK.

Code:
makoto# mount -t msdosfs /dev/da0 /media/flash/
mount_msdosfs: /dev/da0: Invalid argument

Just as expected, it doesn't work.
The same stick worked on older FreeBSD 7.2-p4 and it still works on Linux: I mount da0s1.
 
Solution (kinda)

Latest news.
I've read some PRs in bug database. Looks like quite a lot of USB problems are connected with USB 2.0

I tried to disable it in kernel:

Code:
[2010-02-07 11:52:36] nephrite:/usr/home/nephrite$ sudo sysctl hw.usb.ehci.no_hs=1
Password:
hw.usb.ehci.no_hs: 0 -> 1

After that my USB stick mounted and worked OK, however, it took a long time to complete the mount command.

I don't consider it a proper solution to the problem but it works around the trouble.
 
What is strange: after switching USB 2.0 off I switched it back on and the flash mounted and worked. Then I unplugged it and plugged again. It didn't work again.
 
Back
Top