三星已经提供了支持 s5pv210 的 SD/MMC 的驱动: drivers/mmc/host/sdhci-s3c.c
在 mach-smdkv210.c 中已经添加到 smdkv210_devices 设备列表
配置内核
Device Drivers ---> <*> MMC/SD/SDIO card support ---> <*> Secure Digital Host Controller Interface support <*> SDHCI platform and OF driver helper <*> SDHCI support on Samsung S3C SoC [*] DMA support on S3C SDHCI |
现在插入SD卡
查看 SD 卡的分区
其中 mmcblk0 代表整个 SD 卡, mmcblk0p1 代表第 1 个分区
挂载 SD 卡到 sdcard 目录,以及卸载操作
-t 指定挂载格式为 vfat, SD 卡必须格式化为 fat 或者 fat32 格式,否则会出现如下错误。
mount: mounting /dev/mmcblk0p1 on mnt/ failed: Invalid argument
linux 内核默认配置为支持 vfat 格式,另外用户也可以选择支持 NTFS 格式
添加脚本,实现自动挂载和卸载
创建 shell 脚本/etc/mdev/insert.sh 和/etc/mdev/remove.sh,以及/etc/mdev.conf,具体内容请下载源码
3 个文件创建完成后,给/etc/mdev/insert.sh 和/etc/mdev/remove.sh 添加可执行权限
重新插入SD卡,SD 卡被自动挂载到/media/mmcblk0p1 目录,拔出 SD 卡, SD 卡被自动卸载
所用脚本及配置文件源码:
insert.sh
#!/bin/sh
if [ -n "$1" ] ; then
if [ -b /dev/$1 ]; then
if [ ! -d /media ]; then
mkdir -p /media
fi
if [ ! -d /media/$1 ]; then
mkdir -p /media/$1
fi
mount /dev/$1 /media/$1
if [ $? -ne 0 ]; then
rm -rf /media/$1
fi
fi
fi
mdev.conf
sd[a-z][0-9] 0:0 666 @(/etc/mdev/insert.sh $MDEV $SUBSYSTEM)
sd[a-z] 0:0 666 $(/etc/mdev/remove.sh $MDEV $SUBSYSTEM)
ub[a-z][0-9] 0:0 666 @(/etc/mdev/insert.sh $MDEV $SUBSYSTEM)
ub[a-z] 0:0 666 $(/etc/mdev/remove.sh $MDEV $SUBSYSTEM)
mmcblk[0-9]p[0-9] 0:0 666 @(/etc/mdev/insert.sh $MDEV $SUBSYSTEM)
mmcblk[0-9] 0:0 666 $(/etc/mdev/remove.sh $MDEV $SUBSYSTEM)
remove.sh
#!/bin/sh
MOUNTS=$(mount | grep $1 | cut -d' ' -f3)
umount $MOUNTS
rm -rf $MOUNTS