linux中的mdev机制

简介:

 mdev是busybox自带的一个简化版的udev。
    作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的
    mdev扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含有名为"dev"的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev下创建设备节点


    用法:
    1. 执行mdev前要挂载 /sys
    mount -t tmpfs mdev /dev
    mount -t sysfs sysfs /sys
    2.命令内核在增删设备时执行/sbin/mdev,使设备节点会被创建和删除
    echo /sbin/mdev > /proc/sys/kernel/hotplug
    3.设置mdev,让它在系统启动时创建所有的设备节点
    mdev -s

嵌入式linux文件系统中etc/fstab的内容如下

  1. #device mount-point type options dump fsck order  
  2. proc /proc proc defaults 0 0  
  3. tmpfs /tmp tmpfs defaults 0 0  
  4. sysfs /sys sysfs defaults 0 0  
  5. tmpfs /dev tmpfs defaults 0 0  
  6. var /dev tmpfs defaults 0 0  


etc/fstab对etc/fstab的解释

1.    第1列是需要挂载的文件系统或存储设备

2.    第2列是挂载点

3.    第3列指定文件系统或分区的类型

4.    挂载选项,下面列出一些常用的选项

挂载选项:

auto: 系统自动挂载,fstab默认就是这个选项
ro: read-only
rw: read-write
defaults: rw, suid, dev, exec, auto, nouser, and async

5.    第5列为dump选项,设置是否让备份程序dump备份文件系统,0为忽略,1为备份。
6.    第6列为fsck选项,告诉fsck程序以什么顺序检查文件系统,0为忽略。

嵌入式linux文件系统中etc/init.d/rcS的的内容如下 

  1. #!/bin/sh  
  2.   
  3. PATH=/sbin:/bin:/usr/sbin:/usr/bin  
  4. runlevel=S  
  5. prevlevel=N  
  6. umask 022  
  7. export PATH runlevel prevlevel  
  8.   
  9. #  
  10. # Trap CTRL-C &c only in this shell so we can interrupt subprocesse.  
  11.   
  12. mount -a  
  13. mkdir /dev/pts  
  14. mount -t devpts devpts /dev/pts  
  15. echo /sbin/mdev > /proc/sys/kernel/hotplug  
  16. mdev -s  
  17. mkdir -p /var/lock  


    关于热插拔:
    需要内核中支持hotplug
    编写mdev配置文件:/etc/mdev.conf
    该文件的作用是:mdev在找到匹配设备时自动执行自定义命令
    格式为:
    <device regex> <uid>:<gid> <octal permissions> [<@$*><cmd>]
    @ 创建节点后执行的
    $ 删除节点前执行的
    * 创建后和删除前都运行的


    如自动挂载U盘和SD卡脚本:
    sd[a-z][0-9]  0:0 0660  @/etc/hotplug/usb/udisk_insert
    sd[a-z]       0:0 0660  $/etc/hotplug/usb/udisk_remove
    mmcblk[0-9]p[0-9]  0:0 0660  @/etc/hotplug/sd/sd_insert
    mmcblk[0-9]        0:0 0660  $/etc/hotplug/sd/sd_remove
    当检测到类似sda1这样的设备时,执行/etc/hotplug/usb里的脚本,脚本的内容就是挂载和卸载U盘
    当检测到类似mmcblk0p1这样的设备时,执行/etc/hotplug/sd里的脚本,脚本的内容就是挂载和卸载SD卡

目录
相关文章
|
14天前
|
缓存 Linux 开发者
Linux内核中的并发控制机制:深入理解与应用####
【10月更文挑战第21天】 本文旨在为读者提供一个全面的指南,探讨Linux操作系统中用于实现多线程和进程间同步的关键技术——并发控制机制。通过剖析互斥锁、自旋锁、读写锁等核心概念及其在实际场景中的应用,本文将帮助开发者更好地理解和运用这些工具来构建高效且稳定的应用程序。 ####
34 5
|
16天前
|
Linux 数据库
Linux内核中的锁机制:保障并发操作的数据一致性####
【10月更文挑战第29天】 在多线程编程中,确保数据一致性和防止竞争条件是至关重要的。本文将深入探讨Linux操作系统中实现的几种关键锁机制,包括自旋锁、互斥锁和读写锁等。通过分析这些锁的设计原理和使用场景,帮助读者理解如何在实际应用中选择合适的锁机制以优化系统性能和稳定性。 ####
34 6
|
23天前
|
消息中间件 存储 Linux
|
6月前
|
存储 Linux C语言
Linux:冯·诺依曼结构 & OS管理机制
Linux:冯·诺依曼结构 & OS管理机制
172 0
|
3月前
|
存储 缓存 编译器
Linux源码阅读笔记06-RCU机制和内存优化屏障
Linux源码阅读笔记06-RCU机制和内存优化屏障
|
2月前
|
存储 监控 安全
探究Linux操作系统的进程管理机制及其优化策略
本文旨在深入探讨Linux操作系统中的进程管理机制,包括进程调度、内存管理以及I/O管理等核心内容。通过对这些关键组件的分析,我们将揭示它们如何共同工作以提供稳定、高效的计算环境,并讨论可能的优化策略。
50 0
|
4月前
|
缓存 监控 关系型数据库
深入理解Linux操作系统的内存管理机制
【7月更文挑战第11天】在数字时代的浪潮中,Linux操作系统凭借其强大的功能和灵活性,成为了服务器、云计算以及嵌入式系统等领域的首选平台。内存管理作为操作系统的核心组成部分,对于系统的性能和稳定性有着至关重要的影响。本文将深入探讨Linux内存管理的基本原理、关键技术以及性能优化策略,旨在为读者提供一个全面而深入的理解视角,帮助开发者和系统管理员更好地优化和管理Linux系统。
|
4月前
|
缓存 网络协议 算法
【Linux系统编程】深入剖析:四大IO模型机制与应用(阻塞、非阻塞、多路复用、信号驱动IO 全解读)
在Linux环境下,主要存在四种IO模型,它们分别是阻塞IO(Blocking IO)、非阻塞IO(Non-blocking IO)、IO多路复用(I/O Multiplexing)和异步IO(Asynchronous IO)。下面我将逐一介绍这些模型的定义:
221 2
|
5月前
|
存储 缓存 Linux
Linux VFS机制详解
Linux VFS机制详解
162 1
|
5月前
|
Linux
Linux异步io机制 io_uring
Linux异步io机制 io_uring
79 1
下一篇
无影云桌面