情景:由于出现开机加载SD卡失败导致主机重启的情况,现对加载mmc驱动时间做一下调整,等主机完全准备好再加载mmc驱动,之前mmc驱动是放在内核里编译的,现调整为开机完成后应用层的APP启动之前手动加载mmc驱动。
1、首先看每个驱动源码下面的Kconfig文件
config MMC_BLOCK
tristate "MMC block device driver"
depends on BLOCK
default y
help
Say Y here to enable the MMC block device driver support.
This provides a block device driver, which you can use to
mount the filesystem. Almost everyone wishing MMC support
should say Y or M here.
说明一点:bool表示该选项要么是y要么是n,不可编译成模块。如需要编译成模块则改为tristate(三态)
2、配置内核
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm menuconfig
配置内核选择mmc驱动编译成模块
3、编译内核
make clean
make distclean
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm uImage
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm modules
在drivers\mmc\card\下生成mmc_block.ko
4、总结
该种情况仅仅是把mmc的驱动单独拷贝出来,而且通常的做法都是把内核编译成模块然后install至文件系统里面统一的管理驱动模块ko文件。