zoukankan      html  css  js  c++  java
  • MDEV入门

    -------------
     MDEV入门
    -------------

    对于我们这些人知道如何使用的mdev ,底漆可能似乎跛。为
    其他人的mdev是一个神秘的黑匣子,他们听到的是真棒,但不能
    似乎得到他们的头周围它是如何工作的。因此,引物。

    -----------
     基本使用
    -----------

    MDEV有两个主要用途:初始种群和动态更新。两
    需要内核sysfs的支持,且必须挂载到/ sys 。对于动态
    更新,你还需要有你的内核中启用热插拔。

    下面是一个典型的init脚本的代码片段:

    [0] mount -t proc proc /proc
    [1] mount -t sysfs sysfs /sys
    [2] echo /sbin/mdev > /proc/sys/kernel/hotplug
    [3] mdev -s

    或者,如果没有上述的procfs变为:

    [1] mount -t sysfs sysfs /sys
    [2] sysctl -w kernel.hotplug=/sbin/mdev
    [3] mdev -s


    当然,一个更“全”的设置将需要执行此之前,前
    代码片段:

    [4] mount -t tmpfs -o size=64k,mode=0755 tmpfs /dev
    [5] mkdir /dev/pts
    [6] mount -t devpts devpts /dev/pts

    这里简单的解释是, [1]你需要有前/系统安装
    执行MDEV 。随后你[ 2]命令内核执行/ sbin目录/ MDEV时,
    有设备添加或删除,以便可以创建设备节点,或
    销毁。然后你[3]种子为/ dev创建所有的设备节点
    当系统被启动。

    对于“完全”的设置,你要[4]确保/ dev是一个tmpfs文件系统
    (假设你正在运行的闪存) 。那么你一定要为[ 5 ]创建
    / dev /点的挂载点,最后[6]挂载devpts文件系统就可以了。

    -------------
     MDEV Config中( / etc / mdev.conf中)
    -------------

    MDEV有一个可选的配置文件,控制所有权/权限
    设备节点,如果你的系统需要更多的东西比默认的根/根
    660权限。

    该文件的格式:
        <device regex> <UID> : <gid> <octal权限
     或@ <maj[,min1[-min2]]> <UID> : <gid> <octal权限

    例如:
        HD [ Z] [0-9] * 0:3 660

    配置文件解析停止在第一个匹配行。如果没有行
    匹配,则使用默认的0:0 660 。要设置自己的默认值,只需
    创建自己的比赛总像这样:
    * 1:1 777

    你可以重命名/移动设备节点使用的下一个可选字段。
    <device regex> <UID> : <gid> <octal权限[ =路径]
    所以,如果你想将设备放置节点到一个子目录,确保路径
    有一个尾随/ 。如果你想要重命名的设备节点,只需将名称。
    HDA 0:3 660 =驱动器/
    这将朝着“ hda的”驱动器/子目录。
    建屋局0:3 660 = CDROM
    这将重命名“组屋” “CDROM” 。

    同样, “路径”重命名/移动设备,但它也创造
    的直接符号连接/ dev / DEVNAME中的改名/移动设备。

    如果你也支持执行自己的命令,那么这个文件有
    格式:
    设备regex> <UID> : <gid> <octal权限[路径] [@ | $ | * <COMMAND> ]
        或
    设备regex> <UID> : <gid> <octal权限[路径] [@ | $ | * <COMMAND> ]

    例如:
    --- 8 < ---
    #块设备
    ([ HS ] D [ - Z] >磁盘/% )根盘660 1/0
    ([ HS ] D [ - Z] )( [0-9] + )根:磁盘660 >磁盘/% 1 /% 2
    mmcblk ([0-9] + )根:磁盘660 >磁盘/ MMC / 1 % / 0
    mmcblk ([0-9 ] + ) P( [0-9] + )根盘660盘/ MMC /% 1 /% 2
    #网络设备
    ( TUN |抽头)根:网络660 >净额/ %1
    --- 8 < ---

    特殊字符的含义:
    @创建设备节点后运行。
    $运行,然后再删除该设备。
    *运行后创建和删除该设备前。

    通过执行命令system()函数(这意味着你给人一种
    命令外壳) ,所以一定要确保你有一个壳安装在/ bin / sh的。你
    还应该记住,内核执行热插拔佣工的标准输入,
    stdout和stderr连接到/ dev / null的。

    为了您的方便, shell的环境变量$ MDEV会被设置的设备名称。因此,如果
    “ HDC ”的移动设备的匹配,将被设置为“ HDC ” MDEV 。

    ----------
     固件
    ----------

    一些内核设备驱动程序在运行时,需要上传固件以
    正确的初始化设备。请将所有的固件文件复制到
    / lib中/固件/目录。在运行时,内核将调用与MDEV
    文件名的mdev的固件将加载的/ lib /固件/进入
    内核通过sysfs接口。确切的文件名是硬编码在
    内核,所以在那里,如果你需要知道如何在用户空间的文件命名。

    ------------
     序列
    ------------

    内核不热插拔事件序列。增量SEQNUM环境
    变每个热插拔历届调用。通常情况下, MDEV不在乎。
    这可能会重新排列热插拔和热拔出事件,具有典型症状
    有时不能创建设备节点,如预期的那样。

    但是,如果被发现/ dev / mdev.seq的文件, MDEV将比较其
    内容与SEQNUM 。将重试两秒钟,等待他们的
    匹配。如果严丝合缝(甚至没有尾随' n'可以) ,
    如果两秒钟后, MDEV将照常运行,那么它改写/ dev / mdev.seq的
    与+1 SEQNUM 。

    IOW :这将并发MDEV调用序列。

    如果你想激活此功能,执行“回声>的/ dev / mdev.seq ” ,前
    设置MDEV热插拔处理。这写单的' n '文件。
    注: MDEV识别/ dev / mdev.seq的由单个' n“字符
    作为一个特殊的情况。 IOW :这不会让你第一热插拔事件
    两秒钟来搪塞

  • 相关阅读:
    类数组及其转换
    数组去重
    ios UIView
    ios 解决Wkwebview闪烁问题
    ios Https问题
    UUID
    JavaScript4
    JavaScript2
    JavaScript1
    UIScollView
  • 原文地址:https://www.cnblogs.com/kernel-style/p/3397159.html
Copyright © 2011-2022 走看看