您的位置 首页 国产IC

arm上sd卡热插拔问题的处理

首先,保证sd卡驱动是完好,但是sd卡却无法热插拔或者无法识别。刚开始我的板子上,sd是能够读取的,但是却不支持热插拔,看了几天sd驱动

首要,保证sd卡驱动是无缺,可是sd卡却无法热插拔或许无法辨认。

刚开始我的板子上,sd是可以读取的,可是却不支撑热插拔,看了几天sd驱动,找到了问题的原因,是驱动中硬件引脚相关设置的问题,详细根绝个人板子来修正,我想说的是sd卡驱动无缺下怎么使板子支撑热插拔,内核的相关装备我就不多说了,网上许多。

1)保证内核支撑热插拔
# cd linux-2.6.30.4# vi .config
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_HOTPLUG=y //保证这项为y
CONFIG_PRINTK=y
CONFIG_NET=y //保证这项也为y
保证以上两项都选上,不然/proc/sys/kernel/目录不会呈现hotplug文件!
2)保证busybox支撑mdev
mdev是busybox中udev设备文件体系的精简版
# make menuconfig
保证以下几项被选中:
Linux System Utilities —>
mdev

Support /etc/mdev.conf

Support subdirs/symlinks

Support regular expressions substitutions when renaming dev

Support command execution at device addition/removal

Support loading of firmwares
3)根文件体系
解析mdev机制
履行 mdev -s:
以 “-s” 为参数调用坐落 /sbin 目录下的 mdev(其实mdev是个软链接,其作用是传递参数给 /bin 目录下的 busybox 程序并调用它),
mdev 扫描 /sys/class 和 /sys/block 目录中所有的类设备目录,假如在类设备目录中含有名为 “dev” 的文件,且文件中包括的是设备号,则 mdev 就使用这些信息为这个设备在 /dev 目录下创立造备节点文件。
一般只在启动时才履行一次 “mdev -s” 。
热插拔事情:
因为启动时履行了指令:echo /sbin/mdev > /proc/sys/kernel/hotplug ,
那么当有热插拔事情发生时,内核就会调用坐落 /sbin 目录下的mdev。
这时 mdev 通过环境变量中的 ACTION 和 DEVPATH,来确认此次热插拔事情的动作以及影响了 /sys 中的那一个类设备目录。
接着会看看这个类设备目录中是否有名为 “dev” 的文件,假如有就使用这些信息为这个设备在 /dev 目录下创立或删去设备节点文件并履行相应的动作 ACTION 。
4)添加对热插拔事情的呼应,完成U盘和SD卡的主动挂载与缷载
# vi /etc/mdev.conf
sd卡相关内容为:
sd[a-z][0-9] 0:0 666 @ /etc/hotplug/usb/udisk_insert
sd[a-z] 0:0 666 $ /etc/hotplug/usb/udisk_remove
mmcblk[0-9]p[0-9] 0:0 666 @ /etc/hotplug/sd/sd_insert
mmcblk[0-9] 0:0 666 $ /etc/hotplug/sd/sd_remove

建相应目录和文件

# vi /etc/hotplug/usb/sd_insert
内容为:
#!/bin/sh
mkdir /sdcard
mount -t vfat /dev/sdcard /sdcard

# vi /etc/hotplug/usb/sd_remove
内容为:
#!/bin/sh
umount /sdcard/
rm /sdcard -r

为以上两个脚本加上可履行权限:
# chmod +x /etc/hotplug/usb/sd_insert
# chmod +x /etc/hotplug/usb/sd_remove

有以下一点需求留意:

假如通过上述过程现已完成sd卡热插拔,可是你想在/sdcard/目下下来操作sd卡,比方新建文件(夹)或翻开并写入文件,记住完毕后,要在该文件夹下履行一下同步操作:sync指令,不然会报错,你在刺进sd卡,会发现你写入的文件不存在。牢记:要用sync

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/263030.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部