主题 : 启动出现mmc0: error -110 whilst initialising SD card该如何解决? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 46286
精华: 0
发帖: 14
金钱: 70 两
威望: 14 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2011-05-11
最后登录: 2011-06-01
楼主  发表于: 2011-05-27 16:03

 启动出现mmc0: error -110 whilst initialising SD card该如何解决?

最近很想试试从SD卡加载android文件系统,使用的是T35 LCD,64M Nand Flash。
在使用shinelk大侠提供的android2.1内核代码以及说明,
根据“
使SD卡能够被系统识别,必须要选上General setup-->Create deprecated sysfs files,并修改/system/etc/vold.conf文件,将media_path设置为/devices/platform/s3c2440-sdi/mmc_host/mmc0/

修改编译生成镜像文件,并设置linux_cmd_line为“noinitrd root=179:2 init=/linuxrc console=ttySAC0”。
启动时通过串口在终端下输出如下错误信息,然后终止。
主要信息如下:
usbhid: v2.6:USB HID core driver
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
UDA1341 audio driver initialized
failed to get memory region resouce
s3c2410-iis: probe of s3c2410-iis.0 failed with error -2
TCP cubic registered
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
s3c2410-rtc s3c2410-rtc: hctosys: invalid date/time
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2440-sdi: powered down.
mmc0: error -110 whilst initialising SD card
s3c2440-sdi s3c2440-sdi: powered down.

不知道这些是什么问题,Google了一下,也没找到有关的帖子。

还望社区里的大侠版主等高手看看。不甚感激。
描述:通过终端输出的信息
附件: error message.rar (3 K) 下载次数:8
星星之火,可以燎原
级别: 骑士
UID: 42844
精华: 2
发帖: 140
金钱: 805 两
威望: 161 点
贡献值: 2 点
综合积分: 320 分
注册时间: 2011-04-11
最后登录: 2016-05-23
1楼  发表于: 2011-11-26 20:01
http://apps.hi.baidu.com/share/detail/5887602 这篇文章里面写的很详细!
星星之火,可以燎原!
星星之火,可以燎原
级别: 骑士
UID: 42844
精华: 2
发帖: 140
金钱: 805 两
威望: 161 点
贡献值: 2 点
综合积分: 320 分
注册时间: 2011-04-11
最后登录: 2016-05-23
2楼  发表于: 2012-12-13 17:06
鄙视百度,上述网址失效了,再次鄙视百度,我历经千辛万苦,总算把上面帖子的内容找回来了,被转载到了Linux公社中,网址为http://www.linuxidc.com/Linux/2010-09/28934.htm,Linux公社虽然经常不加引用的转载别人的技术成果,但是还算厚道,不会去改文章题目的,现在为了以防万一,我还是把文章内容复制在下面吧:
“ Linux上SD/MMC卡驱动移植调试记录
我的内核是Linux 2.6.28,已经带有了sd mmc卡驱动了只要在menuconfig里面把相应选项选上即可,编译出来了之后,我插上了我的一个512mb的卡,在启动信息了打印如下:
s3c2440-sdi s3c2440-sdi: powered down.
mmc0: error -110 whilst initialising SD card
s3c2440-sdi s3c2440-sdi: powered down.注意红色部分,进入了之后/dev/devices 里面看不到没有相应的驱动。驱动工作不正常!但是插上了一个32mb的卡后,就能够正常识别。在网上查到如下信息:mmc0: error -110 whilst initialising SD card
應該是卡在 linux/driver/mmc/core/sd.c 的
mmc_sd_init_card() --> mmc_send_app_op_cond(host, ocr, NULL)

ocr 是指 card 內部的 Operation Condition Register (OCR) 讀出來的值
發送 CMD41 CMD55 讀取 OCR 的值
問題是出在 OCR[31] 一直是 0 <--- 初始化沒有完成??
結果問題是出在電壓不足,要把 sd power enable
上面这位说的解决方法我也不太清楚,不过他指出的错误地方是正确的,就是在那里出错的。现在说下这个错误的解决方案:driver/mmc/core/sd.c 的mmc_sd_init_card()函數中mmc_read_switch前延時10ms

mdelay(10);

err = mmc_read_switch(card);看到红色语句了么,就这个加上去就可以了啊,哈哈......加上红色延时语句之后启动信息如下s3c2440-sdi s3c2440-sdi: running at 196kHz (requested: 195kHz).
s3c2440-sdi s3c2440-sdi: running at 25000kHz (requested: 25000kHz).
s3c2440-sdi s3c2440-sdi: running at 25000kHz (requested: 25000kHz).
mmc0: new SD card at address 95b9
mmcblk0: mmc0:95b9 SD02G 1.83 GiB
mmcblk0: p1驱动工作完全正常。
进入系统后
mount /dev/mmcblk0p1 /mnt
星星之火,可以燎原!