Rockie's Android Porting Guide(4)——Add SD card to your system

Rockie Cheng

Andorid use vold to manage SD card and it is easy to use.
But I meet many troubles and finally find that the real problem is in the Linux Kernel.
Thanks to the Android Mail List.

Part I (kernel)

(1)make sure thus kernel configuration in MMC driver

CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_UNSAFE_RESUME=y
# CONFIG_MMC_EMBEDDED_SDIO is not set
CONFIG_MMC_PARANOID_SD_INIT=y

#
# MMC/SD Card Drivers
#
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_BOUNCE=y
# CONFIG_MMC_BLOCK_PARANOID_RESUME is not set
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set

#
# MMC/SD Host Controller Drivers
#
CONFIG_MMC_SDHCI=y

(2)Disable this option
General Setup -> Create deprecated sysfs layout for older userspace tools

Before I did this,vold showed a lot of trouble.
And ,my media_path is not right
media_path /devices/platform/s3c-sdhci.0/mmc_host:mmc0<--my path before turn off that option

media_path /devices/platform/s3c-sdhci.0/mmc_host/mmc0 <--this is the right one

Vold may be unhappy to accept my old path,and it didn't work.

D/vold ( 42): Accepted connection from framework
D/vold ( 42): dispatch_cmd(send_ums_status):
D/vold ( 42): dispatch_cmd(mount_volume:/sdcard):
E/vold ( 42): Cannot start volume '/sdcard' (volume is not bound)
D/MountListener( 59): handleEvent volume_nomedia:/sdcard
D/MountListener( 59): handleEvent ums_disabled
D/MountListener( 59): handleEvent ums_disconnected

(3) rebuild your linux kernel

PART II(android system)

(1) creat a vold.conf in build/target/board/idea6410

## vold configuration file for idea6410

volume_sdcard {
## This is the direct uevent device path to the SD slot on the device
media_path /devices/platform/s3c-sdhci.0/mmc_host/mmc0

media_type mmc
mount_point /sdcard
ums_path /devices/platform/usb_mass_storage/lun0
}

(2)add those below to AndroidBoard.mk

include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE := vold.conf
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)

(3)rebuild the system and check init.rc

service vold /system/bin/vold
socket vold stream 0660 root mount

(4)enjoy

D/vold ( 42): Accepted connection from framework
D/vold ( 42): dispatch_cmd(send_ums_status):
D/vold ( 42): dispatch_cmd(mount_volume:/sdcard):
I/vold ( 42): Evaluating dev '/devices/platform/s3c-sdhci.0/mmc_host/mmc0/mmc0:e624/block/mmcblk0' for mountable filesystems for '/sdcard'
D/MountListener( 61): handleEvent volume_unmounted:/sdcard
D/MountListener( 61): handleEvent ums_disabled
D/MountListener( 61): handleEvent ums_disconnected
D/MountListener( 61): handleEvent volume_checking:/sdcard

Rockie Cheng

阿虚

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. SQL Server误区30日谈 第25天 有关填充因
  2. SQL Server误区30日谈 第26天 SQL Server
  3. SQL Server误区30日谈 第24天 26个有关还
  4. SQL Server误区30日谈 第23天 有关锁升级
  5. SQL Server误区30日谈 第22天 资源调控器
  6. SQL Server误区30日谈 第21天 数据损坏可
  7. SQL Server误区30日谈 第20天 破坏日志备
  8. Android
  9. android版本更新说明
  10. Android(安卓)热修复框架: Sophix基本使