openWRT/LaFoneraでSDカードを認識させる為にSDカードをext2フォーマットにしようと思い、あれこれやってみたんだがどうもよくわからない。まあLinuxが走るPCがないのでVirtualPC上でごにょごにょしているのが原因の可能性も高いのだけれど。
そもそもSDカードのFATフォーマットってPanasonicの呪いがかけられているのか、パーティションの設定からしてどうも普通のFATとは違っているらしい。なのでかどうかこれまたわからないんだが、LinuxにUSBカードリーダ経由でSDカードをマウントしようとすると、どうやっても出来なかった。
SDカードのext2フォーマットに関する情報はリナザウ系コミュニティーで盛んにやり取りされて入るんだが、PC-Linuxではイマイチ話題に上らないみたいなんだな。
と、悩みつつmmcドライバの配布元のディレクトリを漁ってみると
http://fon.testbox.dk/packages/mmc/phrozendriver/STOP.txt
こんな情報発見。
You need a filesystem driver to use MMC cards. Make sure you install kmod-fs-ext2 or kmod-fs-vfat in addition to the other dependencies (kmod-nls-cp437, kmod-nls-iso8859-1, and kmod-nls-base).
だと。ファイルシステムを入れないといかんらしい。もしかしてkmod-fs-vfatをインストールすればext2にフォーマットしなくても使えたりしないだろうか?
というわけでやってみた。まずは
root@OpenWrt:/# ipkg install kmod-fs-vfat
でモジュールをインストール。
そのうえで
root@OpenWrt:/# mount -t vfat /dev/mmc /tmp
結果はX。やはりエラーが出て使えない。
その後Packagesを眺めているとfdiskがあることを発見。
root@OpenWrt:/# ipkg install fdisk
でfdiskをインストールし、
root@OpenWrt:/# fdisk /dev/mmc
Command (m for help):
と出たのでまずはディスクの状態をみてみる。
Command (m for help): pDisk /dev/mmc: 6 MB, 6782976 bytes
1 heads, 32 sectors/track, 414 cylinders
Units = cylinders of 32 * 512 = 16384 bytesDevice Boot Start End Blocks Id System
/dev/mmc1 1 415 6627+ 1 FAT12
Partition 1 has different physical/logical endings:
phys=(207, 0, 32) logical=(414, 0, 32)
ちなみに8MBのパナのSDカード。
パーティションを消して新たに作り直す。
Command (m for help): d
Selected partition 1Command (m for help): p
Disk /dev/mmc: 6 MB, 6782976 bytes
1 heads, 32 sectors/track, 414 cylinders
Units = cylinders of 32 * 512 = 16384 bytesDevice Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (2-414, default 2):
Using default value 2
Last cylinder or +size or +sizeM or +sizeK (2-414, default 414):
Using default value 414
こんな感じに出来上がり。
Command (m for help): pDisk /dev/mmc: 6 MB, 6782976 bytes
1 heads, 32 sectors/track, 414 cylinders
Units = cylinders of 32 * 512 = 16384 bytesDevice Boot Start End Blocks Id System
/dev/mmc1 2 414 6608 83 Linux
で、これをフォーマットしたいのだけれどmke2fsコマンドが無いようなのでまたPackageを漁るとそれらしいもの発見。
root@OpenWrt:/# ipkg install e2fsprogs
早速フォーマットしてみる
root@OpenWrt:/# mke2fs /dev/mmc
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
832 inodes, 6624 blocks
331 blocks (5.00%) reserved for the super user
First data block=1
1 block group
8192 blocks per group, 8192 fragments per group
832 inodes per groupWriting inode tables: done
Writing superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
やった!成功。
マウントしてみると
root@OpenWrt:/# mount /dev/mmc /mnt
root@OpenWrt:/# ls /mnt/
lost+found
ばっちりじゃないの。