迅为4418/6818开发板实现最小Linux系统自动挂载SD/TF卡/U盘等存储设备

2019-08-17 10:05发布

本文转自迅为论坛:http://www.topeetboard.com 在论坛里找到的,先做个笔记以后用到随时看 通过 mdev 工具实现 U 盘和 SD/TF 卡的自动挂载步骤如下:一、配置内核配置内核支持 USB大容量存储1)先覆盖缺省文件cp config_for_linux_scp_elite .config 2#make menuconfig选择 Device Drivers -->USB support --><*> Support for Host-side USB<*> OHIC HCD support<*> UHCI HCD (most Intel and VIA) support<*> SL811HS HCD support<*> USB Mass Storage support选择完成后保存退出。3)接着开启内核热插拔,在内核根目录下的.config 文件中添加如下内容:#vim .configCONFIG_KALLSYMS=yCONFIG_HOTPLUG=yCONFIG_PRINTK=yCONFIG_NET=y 保存退出,执行 make 命令生成 zImage 系统镜像。二、配置 busybox在系统编程文档的第二章中已经提供了搭建支持最小 Linux 的过程,这里就不过多解释说明。在这里我们我们只给出支持 usb 热插拔的相关配置。1#make menuconfig选择 Linux System Utilities --->
  • mdev
  • Support /etc/mdev.conf
  • Support subdirs/symlinks
  • Support regular expressions substitutions whenrenaming device
  • Support command execution at deviceaddition/removal
  • Support loading of firmwares保存退出,参照系统编程文档第二章使用命令编译生成 system.img 系统镜像。 三、添加对热插拔事件响应,实现 U 盘自动挂载与卸载将编译好的 system.img zImage 镜像连同 u-boot-iTOP-4412.binramdisk-uboot.img烧写至开发板。 1)创建 mdev.conf 文件:vi /etc/mdev.conf写入:sd[a-z][0-9] 0:0 666 @/etc/hotplug/usb/udisk_insertsd[a-z] 0:0 666 $/etc/hotplug/usb/udisk_remove2)创建 udisk_insert 文件mkdir -p /etc/hotplug/usbvi /etc/hotplug/usb/udisk_insert写入:#!/bin/shecho "usbdisk insert!" > /dev/consoleif [ -e "/dev/$MDEV" ] ; thenmkdir -p /mnt/usbdisk/$MDEVmount /dev/$MDEV /mnt/usbdisk/$MDEVFi3)创建 udisk_remove 文件vi /etc/hotplug/usb/udisk_remove写入:#!/bin/shecho "usbdisk remove!" > /dev/consoleumount -l /mnt/usbdisk/sd*rm -rf /mnt/usbdisk/sd*4)修改脚本权限chmod 755 /etc/hotplug/usb/*如下图所示插上 U 盘,此时就可以看到/mnt 目录下多了个 usbdisk 文件夹 进入到 usbdisk 文件夹,看到 sda1 文件夹。说明我们已经成功将 U 盘挂载到开发板的/mnt/usbdisk 下的 sda1 目录。拔掉 U 盘就可以看到 sda1 目录消失。 四、实现 SD/TF 卡的自动挂载1)在 mdev.conf 添加如下内容:vi /etc/mdev.conf写入:mmcblk1p[0-9] 0:0 666 @/etc/hotplug/sd/sd_insertmmcblk1 0:0 666 $/etc/hotplug/sd/sd_remove2)创建 sd_insert 文件mkdir -p /etc/hotplug/sdvi /etc/hotplug/sd/sd_insert写入:#!/bin/shecho "sd card insert!" > /dev/consoleif [ -e "/dev/$MDEV" ]; thenmkdir -p /mnt/sdcard/sdmount -rw /dev/$MDEV /mnt/sdcard/sdFi3)创建 sd_remove 文件vi /etc/hotplug/sd/sd_remove写入:#!/bin/shecho "sd card remove!" > /dev/consoleumount -l /mnt/sdcard/sd*rm -rf /mnt/sdcard/sd*5)修改脚本权限chmod 755 /etc/hotplug/sd/*如下图所示,插上 TF/SD 卡,此时就可以看到/mnt目录下多了个 sdcard 文件夹。 进入到 sdcard 文件夹,就可以看到我们 TF 卡中的文件以及目录。说明我们已经成功将TF 卡挂载到开发板的/mnt/sdcard 下的 sd*目录。退出当前目录,拔掉 TF 卡就可以看目录消失(不退出当前目录就拔掉 TF 卡可能会造成系统重启)。
  • 0条回答

    一周热门 更多>