首要,保证sd卡驱动是无缺,可是sd卡却无法热插拔或许无法辨认。
# 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
CONFIG_PRINTK=y
CONFIG_NET=y
保证以上两项都选上,不然/proc/sys/kernel/目录不会呈现hotplug文件!
2)保证busybox支撑mdev
mdev是busybox中udev设备文件体系的精简版
# make menuconfig
保证以下几项被选中:
Linux System Utilities
mdev
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]
sd[a-z]
mmcblk[0-9]p[0-9] 0:0 666
mmcblk[0-9]
建相应目录和文件
# 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
有以下一点需求留意: