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>