前言:
本文所说的嵌入式Linux存储设备包含:U盘、SD卡、NandFlash分区。
本文主要实现嵌入式Linux在开机后,可自动检测存储外设(U盘/SD卡)是否插入,对存储设备(U盘/SD卡/NandFlash分区)进行自动挂载。也实现模拟嵌入式Linux设备当成U盘设备插入电脑,即通过USB数据线连接电脑,可指定存储设备(SD卡/NandFlash分区)其中一种映射到电脑上,即“计算机”下的“可移动存储设备”下有XX盘。
笔者的开发板存储设备对应的设备如下:
存储设备 | 设备路径 | 挂载路径 |
---|---|---|
U盘 | /dev/sda1 | /dev/udisk |
SD卡 | /dev/mmcblk0p1 | /mnt/sdcard |
NandFlash分区 | /dev/mtdblock5 | /home |
1. 热插拔的实现:
1.1 修改Linux内核配置,使内核支持Hotplug功能和Net功能:
# 在Linux Kernel下,通过vim修改.config:
$ vim .config
# 匹配“CONFIG_HOTPLUG”和“CONFIG_NET”,并将这两个参数修改为:
CONFIG_HOTPLUG=y
CONFIG_NET=y
# 确保这两项都有选上,不然/proc/sys/kernel/目录不会出现hotplug文件。
# 编译内核并烧写……
1.2 修改BusyBox的配置,使根文件系统支持mdev:
# 在BusyBox下进入使用命令:
$ make ARCH=arm menuconfig
# 在 Linux System Utilities 下,将 mdev 设置为加载,并将 mdev 下的配置设置为加载:
Support /etc/mdev.conf
Support subdirs/symlinks
Support regular expressions substitutions when renaming device
Supp