arm linux 自动挂载,ARM-Linux支持并自动挂载U盘
受不了xxxx恶心人的行为,遂搬迁至博客园。
始发:2015-04-07 19:10:42
其实,我是想在ARM开发板上实现我的FW150US-USB无线网卡功能,所以测试下USB接口。
1、配置内核
Device Drivers --->
SCSI device support --->
SCSI device support
[*] legacy /proc/scsi/ support
SCSI disk support
SCSI tap support
SCSI CDROM support
[*] USB support --->
Support for Host-side USB
[*] USB device filesystem
OHCI HCD support
USB Mass Storage support
File Systems --->
DOS/FAT/NT Filesystems --->
VFAT (Windows-95) fs support
(936) Default codepage for FAT
(iso8859-1)Default iocharater for FAT
2、烧写内核并加载
[root@lnx /]# ls /dev/
插入U盘后会发现该目录下多了sda1(对于有的U盘,并不是这个名字,所以在自动加载脚本里要注意区别对待)节点,这个就是我们系统识别到U盘后分配的。
3、手动挂载U盘到指定目录/udisk
[root@lnx /]# mount /dev/sda1 /udisk/
[root@lnx /]#
[root@lnx /]# ls /udisk/
images images____
完了之后,卸载之:
[root@lnx /]# umount /udisk/
4、自动挂在U盘实现及脚本分析
在 /etc/mdev.conf 文件中添加如下语句:
sda1 0:0 0600 =udisk */bin/hotplug_usb.sh
如果无法确认是否是[sda1(默认是这个)],使用正则表达式自动匹配:
sd[a-z]*[0-9] 0:0 0600 =udisk */bin/hotplug_usb.sh
至于为何这么写,参见结尾处关于配置文件mdev.comn
hotplug_usb.sh脚本内容及解释:
1 #!/bin/sh
2
3 # 为了方便,shell 的环境变量 $MDEV 会被设置成设备名。 例如 the device 'hdc' was matched, MDEV would be set to "hdc"
4 case $MDEV in
5 udisk |sda1)6 DEVNAME=udisk7 MOUNTPOINT=/udisk8 ;;9 sdcard |mmcblk0p1)10 DEVNAME=sdcard11 MOUNTPOINT=/sdcard12 ;;13 *)14 exit 0
15 ;;16 esac
17
18 # 若不存在/dev/null节点,创建之19 test ! -c /dev/null && mknod -m 0666 /dev/null c 1 3
20
21 # 热插拔实现原理及过程:22 # 在/etc/init.d/rcS文件中有句:echo /sbin/mdev > /proc/sys/kernel/hotplug23 # 那么当有热插拔事件产生时,内核就会调用位于/sbin目录的mdev24 # 这时mdev通过环境变量中的 ACTION 和 DEVPATH(这两个变量是系统自带的)来确定此次热插拔事件的动作以及影响了/sys 中的哪个目录25 # 接着会看看这个目录中是否有“dev”的属性文件,如果有就利用这些信息为这个设备在/dev 下创建设备节点文件。26 case $ACTION in
27 remove)28 /bin/umount $MOUNTPOINT || true
29 rmdir $MOUNTPOINT >/dev/null 2>&1 || true
30 ;;31 *)32 /bin/mkdir $MOUNTPOINT > /dev/null 2>&1 || true
33 /bin/mount -t vfat -o codepage=936 -o iocharset=utf8 -o sync -o noatime -o nodiratime /dev/$DEVNAME $MOUNTPOINT > /dev/null 2>&1 || true
34 ;;35 esac
36
37 exit 0
PS:关于 mdev.conf 文件
/etc/mdev.conf 是mdev 的配置文件,用来控制设备节点的 ownership/permissions。如果不使用该文件,系统默认 root/root 660 权限。
该文件的格式为:
[-] :
或者
@ :
或者
$envvar= :
比如:
hd[a-z][0-9]* 0:3 660
如果我们想把节点移动到另一个目录或者重命名该节点,则配置格式:
: [=path/new_name]
比如:
hda 0:3 660 =drives/
这样“ hda ”就被移动到drives/子目录里面
而:
hdb 0:3 660 =cdrom
就把“ hdb ”重命名成“ cdrom”
如果你想 mdev 在找到匹配行时可以执行自定义的命令,那么文件格式如下:
: [ ]
特殊字符的意义如下:
@ 在创建设备节点后运行命令。
$ 在删除设备节点前运行命令。
* 在创建设备节点后和删除设备节点前都运行命令。
比如:
1 sd[a-z]*[0-9] 0:0 0660 @(mount /dev/$MDEV /udisk)2 sd[a-z]*[0-9] 0:0 0660 *(umount /udisk)
PPS:
Device or resource busy 表示设备忙,可能设备已经被用了,比如已经完成了挂载。
arm linux 自动挂载,ARM-Linux支持并自动挂载U盘相关推荐
- 外网访问arm嵌入式linux系统_嵌入式Linux系统移植的四大步骤
最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命 ...
- 简述arm linux内核启动流程,Linux内核启动过程和Bootloader(总述)
1.Linux内核启动过程概述 一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader),Linux 内核,文件系统,应用程序.其中 Bootloader是系统启 ...
- Linux环境下ARM开发工具TrueSTUDIO初体验
Linux环境下ARM开发工具TrueSTUDIO初体验 TrueSTUDIO是Atollic公司出品的ARM开发工具,号称"The best FREE C/C++ IDE for ARM® ...
- 对国产板子有阴影这些软硬件开源的ARM开发板可以学习Linux驱动
对国产板子有阴影?这些软硬件开源的ARM开发板可以学习Linux驱动开发 为了点亮一块MIPI屏幕,我们除了要了解MIPI DSI的工作原理之外,大前提要了解整个MIPI DSI图显系统的组成,更需要 ...
- linux学习之ARM的三大工具链
前言 学习linux的过程中,看到过多很多程序并且编译过,使用过很多嵌入式集成开发平台,如IAR,Keil MDK-ARM,DS-5等.有时候会遇到很奇怪的现象:对于同一种功能的代码,不同的平台下程序 ...
- linux 3g 程序,ARM板和Linux上的3G配置详解
我们这段时间作了一个基于arm开发板和开源linux的3G模块,给大家作个参考.3G选用的是华为的EC1261,USB接口,现在市面上的基本都是USB口,据说可以直接去掉在USB modem的USB转 ...
- linux不自动创建sda1,linux下头挂载新硬盘(转)
在Linux上添加新的硬盘 字体大小: 小 中 大 系统:Redhat AS3 UP3 硬盘:scsi 注意:# 表示是root用户执行的命令 [root@cncmail data1]# fdisk ...
- Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置
Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置 第一步:在PC机安装Ubuntu18.04LTS 具体安装步骤参见上一篇文章 第二步:安装arm-linux-gcc交叉编 ...
- 普通笔记本能运行Linux么,Windows ARM 笔记本电脑现在可以运行 Ubuntu
新项目旨在为 Snapdragon 笔记本电脑提供全面的 Linux 支持. 一个新的开源项目旨在为 ARM Windows 10 笔记本电脑带来功能齐全的 Ubuntu,如上图所示的HP Envy ...
- opengl arm linux,开源头条 | ARM v9架构发布
ARM v9架构发布 Arm昨日发布ARMv9架构,专注于高性能计算.机器学习.数字信号处理和安全 性. ARMv9引入了Arm的Confidential Compute Architecture(C ...
最新文章
- 引争议!硕导提议高校教师应多配偶,这样就能多生娃!高校的处理通报来了...
- mysql和oracle冲突吗_三分钟带你分清MySQL 和Oracle之间的误区
- 从0开始的Python学习001快速上手手册
- 讯飞输入法皮肤制作_手机输入法哪家强:百度、搜狗、讯飞输入法对比评测
- 【图像】Dog(高斯差分)检测角点
- debian查询端口进程_centos linux系统配置查询
- 学习Mahout(二)
- MyCat分片规则之字符串hash解析算法分片
- 如何将一个mp3文件平均分割成三个?
- 【百度站长工具】使用网站收录工具加速网站收录
- Echarts地图实现点击某地区跳转到指定页面
- js 身份证号隐藏中间数字
- 数据可视化---将某个股票每天收盘价通过matplotlib生成折线图
- 黑苹果2k显示器开启hidpi_黑苹果无核显开启macOS-ipad随航功能
- UE4关于材质的几个小技巧
- 计算机毕业设计Java班费收支管理系统(源码+系统+mysql数据库+lw文档)
- 投资怕选错房?跟着买房路线图走不亏!
- Android 绘制渐变色
- 封闭式基金最新折价率排行(20060922)[ZT]
- Android Studio 第三次作业