受不了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盘相关推荐

  1. 外网访问arm嵌入式linux系统_嵌入式Linux系统移植的四大步骤

    最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命 ...

  2. 简述arm linux内核启动流程,Linux内核启动过程和Bootloader(总述)

    1.Linux内核启动过程概述 一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader),Linux 内核,文件系统,应用程序.其中 Bootloader是系统启 ...

  3. Linux环境下ARM开发工具TrueSTUDIO初体验

    Linux环境下ARM开发工具TrueSTUDIO初体验 TrueSTUDIO是Atollic公司出品的ARM开发工具,号称"The best FREE C/C++ IDE for ARM® ...

  4. 对国产板子有阴影这些软硬件开源的ARM开发板可以学习Linux驱动

    对国产板子有阴影?这些软硬件开源的ARM开发板可以学习Linux驱动开发 为了点亮一块MIPI屏幕,我们除了要了解MIPI DSI的工作原理之外,大前提要了解整个MIPI DSI图显系统的组成,更需要 ...

  5. linux学习之ARM的三大工具链

    前言 学习linux的过程中,看到过多很多程序并且编译过,使用过很多嵌入式集成开发平台,如IAR,Keil MDK-ARM,DS-5等.有时候会遇到很奇怪的现象:对于同一种功能的代码,不同的平台下程序 ...

  6. linux 3g 程序,ARM板和Linux上的3G配置详解

    我们这段时间作了一个基于arm开发板和开源linux的3G模块,给大家作个参考.3G选用的是华为的EC1261,USB接口,现在市面上的基本都是USB口,据说可以直接去掉在USB modem的USB转 ...

  7. linux不自动创建sda1,linux下头挂载新硬盘(转)

    在Linux上添加新的硬盘 字体大小: 小 中 大 系统:Redhat AS3 UP3 硬盘:scsi 注意:# 表示是root用户执行的命令 [root@cncmail data1]# fdisk ...

  8. Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置

    Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置 第一步:在PC机安装Ubuntu18.04LTS 具体安装步骤参见上一篇文章 第二步:安装arm-linux-gcc交叉编 ...

  9. 普通笔记本能运行Linux么,Windows ARM 笔记本电脑现在可以运行 Ubuntu

    新项目旨在为 Snapdragon 笔记本电脑提供全面的 Linux 支持. 一个新的开源项目旨在为 ARM Windows 10 笔记本电脑带来功能齐全的 Ubuntu,如上图所示的HP Envy ...

  10. opengl arm linux,开源头条 | ARM v9架构发布

    ARM v9架构发布 Arm昨日发布ARMv9架构,专注于高性能计算.机器学习.数字信号处理和安全 性. ARMv9引入了Arm的Confidential Compute Architecture(C ...

最新文章

  1. 引争议!硕导提议高校教师应多配偶,这样就能多生娃!高校的处理通报来了...
  2. mysql和oracle冲突吗_三分钟带你分清MySQL 和Oracle之间的误区
  3. 从0开始的Python学习001快速上手手册
  4. 讯飞输入法皮肤制作_手机输入法哪家强:百度、搜狗、讯飞输入法对比评测
  5. 【图像】Dog(高斯差分)检测角点
  6. debian查询端口进程_centos linux系统配置查询
  7. 学习Mahout(二)
  8. MyCat分片规则之字符串hash解析算法分片
  9. 如何将一个mp3文件平均分割成三个?
  10. 【百度站长工具】使用网站收录工具加速网站收录
  11. Echarts地图实现点击某地区跳转到指定页面
  12. js 身份证号隐藏中间数字
  13. 数据可视化---将某个股票每天收盘价通过matplotlib生成折线图
  14. 黑苹果2k显示器开启hidpi_黑苹果无核显开启macOS-ipad随航功能
  15. UE4关于材质的几个小技巧
  16. 计算机毕业设计Java班费收支管理系统(源码+系统+mysql数据库+lw文档)
  17. 投资怕选错房?跟着买房路线图走不亏!
  18. Android 绘制渐变色
  19. 封闭式基金最新折价率排行(20060922)[ZT]
  20. Android Studio 第三次作业

热门文章

  1. C# 输入一个整数,求质因数
  2. 第七次spring会议
  3. Scala零基础教学【61-80】
  4. 20180918-1 词频统计
  5. 解题报告:hdu 1556 Color the ball(区间修改,单点查询)
  6. Codeforces #364 DIV2
  7. CenOS下安装Eclipse并配置PyDev
  8. ejb 属于哪一层,作用是什么,什么时候用
  9. identifier 'APP_FOLDER.EVENT' must be declared
  10. 用python一行代码实现1—100之和,你会吗