arm开发板实现U盘自动挂载和卸载

发布者:SparklingStar22最新更新时间:2016-08-03 来源: eefocus关键字:arm开发板  U盘  自动挂载  卸载 手机看文章 扫描二维码
随时随地手机看文章
原理先不讲,先给各位看官看一下实现的过程:
第一步:

配置内核Makefile 【2.6.22.6版本内核】

make menuconfig

 General setup ---->
  Configure standard kernel features (for small systems) ---->

  | |                  ---   Load all symbols for debugging/ksymoops                           
  | |                  [ ]     Include all symbols in kallsyms                               
  | |                  [ ]     Do an extra kallsyms pass
 
第二步:

配置busybox Makefile  【1.7.0版本】支持mdev机制和.conf 配置文件

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

 

第三步:

查看启动自动执行脚本文件rcS:

 

# cat /etc/init.d/rcS 

#!/bin/sh

ifconfig eth0 192.168.1.17

 

mount -a

mkdir /dev/pts

mount -t devpts devpts /dev/pts

echo /sbin/mdev > /proc/sys/kernel/hotplug                           //命令内核在增删设备时执行/sbin/mdev,使设备节点会被创建和删除

mdev -s //设置mdev,让它在系统启动时创建所有的设备节点

 

第四步:

查看mount -a 命令能够挂载的文件系统 /etc/fstab:

 

# cat /etc/fstab 

# device     mount-point    type   options        dump  fsck order

proc           /proc               proc   defaults        0          0

tmpfs          /tmp               tmpfs  defaults        0          0

sysfs          /sys                sysfs  defaults        0           0           //执行mdev前要挂载 /sys

tmpfs          /dev               tmpfs  defaults        0          0

mdev           /dev              tmpfs  defaults        0          0

 

第五步:之前都是内核和文件系统的对mdev的支持准备工作,下面是具体的实现过程:[都是在2440开发板上执行]

1:首先创建一个用来显示USB里面内容的文件夹,我把他创建在/mnt目录下:mkdir /mnt/usb

2:   在/etc目录下面创建mdev.conf文件,并且编辑,内容如下:

 

sd[a-z]*[0-9] 0:0 0660 @(mount -t vfat -o iocharset=cp936 /dev/sd[a-z][0-9] /mnt/usb)

sd[a-z] 0:0 0660 $(umount /mnt/usb)

上面的内容是遵照所谓的正则表达式编写的,注意卸载部分,没有*[0-9] ,不然卸载会出问题。

 

通过以上五步可以实现U盘的自动挂载和卸载,现象如下:

系统启动后,插上U盘:

 

嵌入式linux的mdev机制【实现U盘自动挂载和卸载】 - 穆 - 穆
 

 

    拔掉U盘后:

嵌入式linux的mdev机制【实现U盘自动挂载和卸载】 - 穆 - 穆
 

 

总结:

a:上面的mount -t vfat -o iocharset=cp936 ,其中vfat指定U盘的格式,-o iocharset=cp936可以把里面的中文文    件显示出来。

b: 正则表达式规则:

 

:
device regex:正则表达式,表示哪一个设备。
uid:owner
gid:组ID
octal permissions:以八进制表示的属性
 
比如:hd[a-z][0-9]* 0:3 660
 
当发现第一个匹配项时,就会根据这个匹配项进行配置。如果没有匹配项的话就会采用默认配置,默认的默认配置是:
0:0 660,当然我们我也可以自己定义,比如:.* 1:1 777
 
那么如果我们想要执行我们自己的命令应该怎么办呢?那就需要用下面的格式了:
: [<@|$|*> ]
@ 创建了设备之后运行
$   删除设备之前运行
*    在创建设备之后和删除设备之前运行

关键字:arm开发板  U盘  自动挂载  卸载 引用地址:arm开发板实现U盘自动挂载和卸载

上一篇:STM32F10x芯片时钟控制总结
下一篇:关于S3C2440A的外部中断知识小总结

推荐阅读最新更新时间:2024-03-16 15:03

OK6410A 开发板 (八) 84 linux-5.11 OK6410A arm-gdb+kgdb+串口 调试 linux
理论知识 调试过程 调试过程都是 这样子的 : 让核心停下来,查询信息,让核心继续运行 我们看一下 kgdb 是怎么做的 kgdb: 让核心停下来: 1. linux启动前期会自动进入kgdb 或 2. linux启动完成,挂载了procfs,用echo g /proc/sysrq-trigger 来进入 kgdb 查询信息 1. bash#gdb vmlinx 2. gdb target remote /dev/ttyS0 3. gdb set remotebaud 115200 // set serial baud 115200 4. gdb bt // 查询信息 6. gdb
[单片机]
LPC2148像往U盘拷贝文件一样更新用户程序
在网上爬行了很久才找到一个介绍USBMEM_BOOTLOADER的且有源代码的论坛,用KEIL 编译后结果不能运行,后来才找到问题的根源: //usbhw.c void USB_Init (void) { PINSEL1 &= ~0xC000C000; //PINSEL1 |= 0x40004000; //这是原来的程序 PINSEL1 |= 0x80004000; /* Select USB Link, VBUS */ 原来得改一下才能用到我的板子上面。 另外,原来的程序是在复位时检测P0.15是否为低来判断是进入用户程序,还是USB IAP程序,我针对我的板子改了一下,我用了两个按钮来控制它,当按下P0.21的按钮时运
[单片机]
LPC2148像往<font color='red'>U盘</font>拷贝文件一样更新用户程序
制作存储示波器数据U盘的方法
示波器是用来测量交流电或脉冲电流波的形状的仪器,由电子管放大器、扫描振荡器、阴极射线管等组成。除观测电流的波形外,还可以测定频率、电压强度等。凡可以变为电效应的周期性物理过程都可以用示波器进行观测。 本文教大家制作存储示波器数据U盘的方法。 制作存储示波器数据U盘步骤 选择4G以下容量的U盘一个,最好是正品大品牌的,我自己选择的是金士顿2G的U盘。然后将其插入电脑。如下图所示: 然后我们在电脑下载一个类型转换软件,我选择使用的是傲梅分区软件。类似的软件有很多,直接百度搜索后自己下载安装完毕即可。如下图所示: 当我们打开这个软件的时候,通过红框2看到我们U盘的类型是NTFS的,这样的U盘按经验来说在存储示波器的数据时
[测试测量]
制作存储示波器数据<font color='red'>U盘</font>的方法
STM32 USB NAND Flash模拟U盘无法格式化问题的解决
前几天,一直在寻找NAND Flash模拟U盘程序无法格式化的问题。在中秋月圆之夜,还苦逼地在实验室调代码,也许是杭州大圆月的原因,今晚感觉整人特别亢奋,效率也特别高,灵感也多。终于,在不懈的努力下,找到代码中的害群之马,把无法格式的问题解决掉了。下面就来说说。 这几天一直在想问题出在哪里,不知道自己的代码跟官方的例程对照了多少次,把不一样的地方全都改了一遍,最终未果。今晚思路特别清晰,于是在想到格式化实际上就是向存储器写数据而已,而设计到写数据部分的代码就只在mass_mal.c、memory.c以及存储器的驱动文件。于是反复检查这几个文件,终于发现一点端倪了,问题出在memroy.c这个文件里。 memory.c这个文件只有两
[单片机]
Ubuntu12.10 使用JLink连接开发板arm-gdb调试ARM程序
Part1 环境搭建和工具安装 1.1 设置交叉编译环境 安装相关的编译工具: sudo apt-get install build-essential gcc-arm-linux-gnueabi 这里我使用的是ubuntu系统源中含有的gcc-arm-linux-gnueabi系列工具,安装完成后具有如下工具: arm-linux-gnueabi-addr2line arm-linux-gnueabi-gcc arm-linux-gnueabi-gprof arm-linux-gnueabi-ranlib arm-linux-gnueabi-ar arm-linux-gnueab
[单片机]
ARM开发板系统移植-----u-boot的编译
本文和另外两篇姊妹篇都是为了说明如何裁剪出适合在mini2440 开发板上运行的Linux系统,以记录自己的学习成果。其中本文先介绍了嵌入式系统的软件组成部分,然后介绍编译出适合在mini2440开发板上运行的uboot的方法步骤。 说明:笔者使用的开发平台---RetHat linux系统,开发板---Friendly mini2440 在开始讲述系统移植的具体方法之前,先大致了解一下嵌入式系统的软件组成:    从上面这个图可以看出,嵌入式系统的软件组成主要包括bootloader、内核以及根文件系统。当然还有bootloader传给内核的参数列表以及没画出来的应用软件。其中bootloader在开发板一上电就会被硬
[单片机]
<font color='red'>ARM</font><font color='red'>开发板</font>系统移植-----u-boot的编译
马上卸载!信息泄露手机费猛涨 原因都在这!
     话费莫名其妙就没了?经常接到骚扰电话?可能都是因为它们!工信部昨天公布的电信服务质量通告显示,四季度技术检测,共发现不良软件41款,涉及违规收集使用用户个人信息、恶意“吸费”、强行捆绑推广其他无关应用软件等问题。   小伙伴快对照下面黑名单,看看你是不是中招了~~   恶意软件如何吸费?   以一款名叫“僵尸相册”的恶意软件为例,这类软件会通过短信链接进行传播,向用户发送短信“你有一条未读彩信相片,请免费下载安装彩信相册查看”,诱骗用户下载安装;安装后恶意软件隔一段时间就与后台联网并自动向某批号码发送短信。   这类软件安装后会自动运行,并在开机后自启。它们隐瞒用户发送短信,在不知不觉中消耗手
[手机便携]
ARM开发板的车辆检测控制单元设计
由于交通需求的不断增加,有越来越多的环形感应线圈检测器用于交通检测。这些埋设在道路表面下的线圈可以检测到车辆通过时的电磁变化进而精确地算出交通流量。交通流量是交通统计和交通规划的基本数据,通过这些检测结果可以用来计算占用率(表征交通密度),在使用双线圈模式时还可以提供速度、车辆行驶方向、车型分类等数据,这些数据对于交通管理和统计是极为重要的。通常高速公路车辆检测系统由多通道环形检测单元LD4和控制单元CCU组成,本文采用PHILIPS公司最新推出的arm7内核微处理器LPC2114设计实现了车辆检测系统控制单元部分,并且和5个LD4环形检测器一起构成10通道高速公路车辆检测系统。 LPC2114和电子硬盘连线示意图
[单片机]
<font color='red'>ARM</font><font color='red'>开发板</font>的车辆检测控制单元设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved