Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Apr 2012 07:25:14 +0200
From:      Matthias Apitz <guru@unixarea.de>
To:        freebsd-questions@freebsd.org
Subject:   Fwd: microSD && ext3 file system
Message-ID:  <20120404052514.GA2840@tinyCurrent>

next in thread | raw e-mail | index | archive | help

Hello,

I have some trouble with a microSD card (or with the controler) in my
Linux based cellphone (Openmoko Freerunner). One of the hints I got is
to check the microSD card with a Linux tool badblocks(8)
http://linux.die.net/man/8/badblocks

As I do not have Linux boxes at home, I looked into our ports with no
luck for badblocks... Is there some equivalent in FreeBSD which I could
use to check /dev/da0 (as this the microSD is presented in my laptop)
for bad 'sectors'?

FWIW, I've found as well this very interesting article:
https://lwn.net/Articles/428584/
which says for example:

«... In contrast, the more common SD cards and USB flash drives are very
sensitive to specific access patterns and can show very high latencies
for writes unless they are used with the preformatted FAT32 file layout.

As an example, a desktop machine using a 16 GB, 25 MB/s CompactFlash
card to hold an ext3 root filesystem ended up freezing the user
interface for minutes during phases of intensive block I/O, despite
having gigabytes of free RAM available. Similar problems often happen on
small embedded and mobile machines that rely on SD cards for their file
systems. ...» 

Thanks

	matthias

----- Forwarded message from Matthias Apitz <guru@unixarea.de> -----

Date: Mon, 2 Apr 2012 19:52:40 +0200
From: Matthias Apitz <guru@unixarea.de>
To: community@lists.openmoko.org
Subject: microSD && ext3 file system


Hello,

After some hours of testing I'm now totally lost with creating an ext3
file system on a (new) 4GB micro SD card.

Using my FR (running SHR) I created one new partition on the SD with
fdisk(1) and it looks like this:

root@om-gta02 ~ # fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 3953 MB, 3953131520 bytes
4 heads, 16 sectors/track, 120640 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
Disk identifier: 0x0aecb0ac

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1               1      120640     3860472   83  Linux

Then I created the ext3 file system on it with:

root@om-gta02 ~ # mkfs.ext3 /dev/mmcblk0p1
mke2fs 1.41.9 (22-Aug-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
241440 inodes, 965118 blocks
48255 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=989855744
30 block groups
32768 blocks per group, 32768 fragments per group
8048 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

now mounting against the /etc/fstab line failes:

root@om-gta02 ~ # mount /media/card
mount: wrong fs type, bad option, bad superblock on /dev/mmcblk0p1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

mounting with "-t ext3" works and after this as well mounting with the
normal line in fstab(5) works too:

root@om-gta02 ~ # mount -t ext3 /dev/mmcblk0p1 /media/card
root@om-gta02 ~ # umount /media/card
root@om-gta02 ~ # mount /media/card
root@om-gta02 ~ # 

and it is really mounted:

root@om-gta02 ~ # mount
...
/dev/mmcblk0p1 on /media/card type ext3 (rw,errors=continue,data=ordered)

now I create a dir and copy over some files from the host connected via
USB:

root@om-gta02 ~ # mkdir /media/card/dic

host:

$ scp -rp stardict-duden-2.4.2 root@miko:/media/card/dic
duden.ifo                                     100%  155     0.2KB/s   00:00    
duden.idx                                     100% 2360KB 786.7KB/s   00:03    
duden.dict.dz                                 100% 6719KB 559.9KB/s   00:12    
scp: /media/card/dic/stardict-duden-2.4.2/duden.dict.dz: Read-only file system
scp: /media/card/dic/stardict-duden-2.4.2/duden.idx.oft: Read-only file system
scp: /media/card/dic/stardict-duden-2.4.2/duden(2).idx.oft: Read-only file system

the SCP fails and magically now the SD in the FR is mounted read-only:

root@om-gta02 ~ # mount
...
/dev/mmcblk0p1 on /media/card type ext3 (ro,errors=continue,data=ordered)

What is wrong or what do I wrong with this SD card?
Thanks

	matthias
-- 
Matthias Apitz
e <guru@unixarea.de> - w http://www.unixarea.de/
UNIX since V7 on PDP-11, UNIX on mainframe since ESER 1055 (IBM /370)
UNIX on x86 since SVR4.2 UnixWare 2.1.2, FreeBSD since 2.2.5

_______________________________________________
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community

----- End forwarded message -----

-- 
Matthias Apitz
t +49-89-61308 351 - f +49-89-61308 399 - m +49-170-4527211
e <guru@unixarea.de> - w http://www.unixarea.de/
UNIX since V7 on PDP-11 | UNIX on mainframe since ESER 1055 (IBM /370)
UNIX on x86 since SVR4.2 UnixWare 2.1.2 | FreeBSD since 2.2.5



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120404052514.GA2840>