Misdetected volume size for Samsung YP-U1?

Weinehall David (Nokia-M/Tampere) David.Weinehall at nokia.com
Thu Mar 23 01:28:23 PST 2006


On ons, 2006-03-22 at 16:42 -0500, ext David Zeuthen wrote:
> On Wed, 2006-03-22 at 18:36 +0200, Weinehall David (Nokia-M/Tampere)
> wrote:
> > My Samsung YP-U1 (1GB flashbased OGG-player) gets reported
> > as a "3.9GB Removable Volume" on the desktop by Nautilus.
> 
> Yea, your device reports the wrong block size:
> 
> >   volume.size = 1047814144  (0x3e746000)  (uint64)
> >   volume.num_blocks = 2046512  (0x1f3a30)  (int)
> >   volume.block_size = 2048  (0x800)  (int)
> 
> and the function libhal_volume_get_size() in libhal-storage uses
> volume.num_blocks * volume.block_size instead of volume.size (because we
> added the latter later).
> 
> Normally (always?), blocks are 512 bytes for USB storage devices but for
> other storage thingies (notably optical discs) it can be slightly
> larger; we use the BLKSSZGET ioctl to determine it.. Can you confirm
> this with a short program that does this
> 
>   int fd;
>   int block_size;
> 
>   fd = open ("/dev/sda1", O_RDONLY);
>   ioctl (fd, BLKSSZGET, &block_size);
>   printf ("block_size = %d", block_size);
> 
> and prints out the block_size? So, if this is the case it looks like the
> usb-storage driver is buggy and you need a fix for your device in
> unusual_devs.h or whatever it's called nowadays. Please report this to
> the usb-storage maintainer if it's the case.

That program reports 2048.


Regards: David


More information about the hal mailing list