zoukankan      html  css  js  c++  java
  • udev 学习

    udev is a device manager for the Linux kernel. Primarily, it manages device nodes in /dev. It is the successor of devfs and hotplug, which means that it handles the /dev directory and all user space actions when adding/removing devices, including firmware load.

    与传统的顺序加载不同,udev 可以并行加载内核模块,具有潜在的性能优势。异步加载模块的方式也有一个天生的缺点:无法保证每次加载模块的顺序,如果机器具有多个块设备,那么它们的设备节点可能随机变化。例如如果有两个硬盘,/dev/sda 可能会随机变成/dev/sdb

    /dev/ttyUSB0 /dev/ttyUSB1

    规则:

    /etc/udev/rules.d/*.rules

    udevadm

    udevadm expects a command and command specific options. It controls the
           runtime behavior of udev, requests kernel events, manages the event
           queue, and provides simple debugging mechanisms.

    why ?

    udev rules are flexible and very powerful. Here are some of the things you can use rules to achieve:

    • Rename a device node from the default name to something else
    • Provide an alternative/persistent name for a device node by creating a symbolic link to the default device node
    • Name a device node based on the output of a program
    • Change permissions and ownership of a device node
    • Launch a script when a device node is created or deleted (typically when a device is attached or unplugged)
    • Rename network interfaces

    默认规则

    Default udev rules are stored in /etc/udev/rules.d/50-udev.rulesIn general, you want your own rules to be parsed before the defaults

    In a rules file, lines starting with "#" are treated as comments. Every other non-blank line is a rule. Rules cannot span multiple lines.

    注释,

    不能跨行

    1对多(个规则)

    It is important to understand that udev will not stop processing when it finds a matching rule, it will continue searching and attempt to apply every rule that it knows about.

    KERNEL=="hdb", NAME="my_spare_disk"

    匹配键== , 赋值键=

    The above rule includes one match key (KERNEL) and one assignment key (NAME). The semantics of these keys and their properties will be detailed later. It is important to note that the match key is related to its value through the equality operator (==), whereas the assignment key is related to its value through the assignment operator (=).

    • NAME - the name that shall be used for the device node
    • SYMLINK - a list of symbolic links which a
    • ct as alternative names for the device node

    As hinted above, udev only creates one true device node for one device.

    KERNEL=="hdb", DRIVER=="ide-disk", SYMLINK+="sparedisk"
    KERNEL=="hdc", SYMLINK+="cdrom cdrom0"


    Matching sysfs attributes

    SUBSYSTEM=="block", ATTR{size}=="234441648", SYMLINK+="my_disk"


    String matching

    As well as matching strings exactly, udev allows you to use shell-style pattern matching. There are 3 patterns supported:

    • * - match any character, zero or more times
    • ? - match any character exactly once
    • [] - match any single character specified in the brackets, ranges are also permitted

    Here are some examples which incorporate the above patterns. Note the use of the string substitution operators.

    KERNEL=="fd[0-9]*", NAME="floppy/%n", SYMLINK+="%k"
    KERNEL=="hiddev*", NAME="usb/%k"
    

    http://www.reactivated.net/writing_udev_rules.html
  • 相关阅读:
    Jquery练手 DEMO 全选 取消 反选 复选框 的实现
    ValidateTemplate(Label lb2, boolean iflag) {
    Android中更新UI的三种方式
    Doodle Android图片涂鸦,具有撤消、缩放、移动、添加文字,贴图等功能。还是一个功能强大,可自定义和可扩展的涂鸦框架、多功能画板。
    怎么用 javascript 实现拖拽
    System.Attribute 类的使用
    javascript 操作Cookie
    导航全局滑动JavaScript
    Sql server DATEADD() 函数
    类序列化
  • 原文地址:https://www.cnblogs.com/kwingmei/p/3273685.html
Copyright © 2011-2022 走看看