原标题:迅为开发板最小Linux自动挂载TF卡/U盘等存储设备

本文转自迅为论坛: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 .config

CONFIG_KALLSYMS=y

CONFIG_HOTPLUG=y

CONFIG_PRINTK=y

CONFIG_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 when

renaming device

[*] Support command execution at device

addition/removal

[*] Support loading of firmwares

保存退出,参照系统编程文档第二章使用命令编译生成 system.img 系统镜像。

三、添加对热插拔事件响应,实现 U 盘自动挂载与卸载

将编译好的 system.img 和 zImage 镜像连同 u-boot-iTOP-4412.bin、ramdisk-uboot.img烧写至开发板。

(1)创建 mdev.conf 文件:

vi /etc/mdev.conf

写入:

sd[a-z][0-9] 0:0 666 @/etc/hotplug/usb/udisk_insert

sd[a-z] 0:0 666 $/etc/hotplug/usb/udisk_remove

(2)创建 udisk_insert 文件

mkdir -p /etc/hotplug/usb

vi /etc/hotplug/usb/udisk_insert

写入:

#!/bin/sh

echo "usbdisk insert!" > /dev/console

if [ -e "/dev/$MDEV" ] ; then

mkdir -p /mnt/usbdisk/$MDEV

mount /dev/$MDEV /mnt/usbdisk/$MDEV

Fi

(3)创建 udisk_remove 文件

vi /etc/hotplug/usb/udisk_remove

写入:

#!/bin/sh

echo "usbdisk remove!" > /dev/console

umount -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_insert

mmcblk1 0:0 666 $/etc/hotplug/sd/sd_remove

(2)创建 sd_insert 文件

mkdir -p /etc/hotplug/sd

vi /etc/hotplug/sd/sd_insert

写入:

#!/bin/sh

echo "sd card insert!" > /dev/console

if [ -e "/dev/$MDEV" ]; then

mkdir -p /mnt/sdcard/sd

mount -rw /dev/$MDEV /mnt/sdcard/sd

Fi

(3)创建 sd_remove 文件

vi /etc/hotplug/sd/sd_remove

写入:

#!/bin/sh

echo "sd card remove!" > /dev/console

umount -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 卡可能会造成系统重启)。返回搜狐,查看更多

责任编辑:

linux u盘分区 mdev 卸载问题,迅为开发板最小Linux自动挂载TF卡/U盘等存储设备相关推荐

  1. linux sd卡挂载脚本,linux udev 自动挂载 SD卡/U盘

    本文记录使用udev自动挂载SD卡和U盘的方法. 添加udev规则 创建文件/etc/udev/rules.d/11-add-usb.rules # SD卡自动挂载 ACTION=="add ...

  2. linux u盘分区 mdev 卸载问题,嵌入式linux 实现mdev SD卡和U盘自动挂载和卸载的方法 mdev.conf...

    首先先参考这些博客做一些了解:http://linux.chinaunix.net/techdoc/install/2009/11/18/1144936.shtml http://www.cnblog ...

  3. linux自动挂载win共享,在Deepin系统下实现开机自动挂载Windows系统共享盘的方法

    所要实现的目标:开机自动挂载Windows系统共享盘,所采用的操作系统:Deepin Linux.关于开机挂载网盘并不好,如果没有网络会卡住的问题,经过测试,下面介绍的方法及时是断网了也没有卡住. 前 ...

  4. 迅为开发板4412开发板-ANROID系统的烧写方法分享

    详情了解: http://topeetboard.com   更多了解:https://arm-board.taobao.com 一.OTG接口烧写方式 通过该方式可以烧写 Android4.0.3 ...

  5. linux内核移植与开发板,Linux 2.6.36内核移植飞凌OK6410开发板完整步骤详解

    Linux 2.6.36内核移植飞凌OK6410开发板完整步骤详解 [复制链接] 今天终于让Linux内核在飞凌的板子上跑起来了,想来也是艰辛,为了移植成功,断断续续做了将近两个月的努力,期间郁闷不可 ...

  6. Linux系统移植:原厂 Kernel 移植到开发板

    文章目录 Linux系统移植:原厂 Kernel 移植到开发板 一.获取原厂内核并编译 二.内核启动测试 三.添加自己板子文件 3.1 板子配置文件 3.2 板子设备树 3.3 编译 四.重要配置修改 ...

  7. 烧录imx6需要的linux空间,IMX6Q学习笔记——开发板的Linux系统更新和烧录

    IMX6Q学习笔记--开发板的Linux系统更新和烧录 记录自己在电鱼电子开发SAIL-IMX6Q全能板后,并且对系统和模块进行简单测试的过程之后对开发板的Linux系统进行更新和烧录的记录过程,算是 ...

  8. 支持4k输出的linux开发板,Linux 5.12率先开始支持SiFive的RISC-V FU740开发板

    原标题:Linux 5.12率先开始支持SiFive的RISC-V FU740开发板 来源:cnBeta.COM Linux 5.12合并窗口在本周末即将结束,而今早送来的是RISC-V的更新,这足以 ...

  9. 电脑向linux板卡传文件,ARM 开发板嵌入式linux系统与主机PC通过串口传输文件

    ARM 开发板嵌入式linux系统与主机PC通过串口传输文件 本来以为按以下两篇文章就可以几步轻松搞定这个问题,没想到遇到两个小麻烦: 1,我用的xp虚拟机下redhat9.0做主机,按照下面第一篇文 ...

最新文章

  1. MATLAB【十四】————遍历三层文件夹操作
  2. 51Nod 1003 阶乘后面0的数量(数学,思维题)
  3. jedate-开始使用一款好用的时间插件
  4. 积分梯度:一种新颖的神经网络可视化方法
  5. C++总结篇(2)类和对象
  6. 数据结构 排序 java_Java数据结构之排序---选择排序
  7. leetcode - 617. 合并二叉树
  8. Xcode 4 with External Static Library for iPhone Development
  9. 低压电力采集平台DW710C与PC沟通
  10. java连接sqlserver非默认实例连接字符串设置
  11. 区块链: 编译发布智能合约
  12. [导入]DataTable的排序、检索、合并
  13. 通信工程专业高级工程师职称申报经验分享
  14. 跨境电商如何服务客户
  15. python 实现一个属于自己的语音播报器
  16. linux系统实训总结报告,《linux操作系统实训》总结报告 - 图文
  17. 转:人生有三重境界:看山是山,看水是水;看山不是山,看水不是水;看山还是山,看水还是水...
  18. python的数据类型分为复数_Python的基本数据类型
  19. 【0基础入门课程】实战入门柿饼UI,带你实现动感汽车仪表盘、APP Store等
  20. 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第三讲mysql8.0安装配置升级(下)

热门文章

  1. Android 6.0(棉花糖)新特性
  2. 分形--Cantor三分集
  3. 了解RO、RW、ZI和.text .bss .data
  4. TI AWR1642BOOST-ODS EVM开发板入门
  5. python报错: arry[i] = t IndexError: list assignment index out of range
  6. 金属与氧气、酸的反应
  7. 一文看懂 DDD(领域驱动设计)、CQRS和Event Souring与分层架构
  8. arXiv,30 岁生日快乐!它的诞生,始于一个​被塞满的邮箱
  9. 「实时视频流分析的边缘计算技术」最新2022研究综述
  10. Exchange Server 2010邮件撤回条件说明