当前位置: 首页 > news >正文

有专业做外贸的网站吗深圳市网站备案

有专业做外贸的网站吗,深圳市网站备案,南宁网络技术,商城网站如何设计1.概念介绍 1.1sysfs文件系统 Linux 2.6以后的内核引入了sysfs文件系统,sysfs被看成是与proc、devfs和devpty同类别的文件系统,该文件系统是一个虚拟的文件系统,它可以产生一个包括所有系统硬件的层级视图,与提供进程和状态信息…

1.概念介绍

1.1sysfs文件系统

Linux 2.6以后的内核引入了sysfs文件系统,sysfs被看成是与proc、devfs和devpty同类别的文件系统,该文件系统是一个虚拟的文件系统,它可以产生一个包括所有系统硬件的层级视图,与提供进程和状态信息的proc文件系统十分类似。

sysfs把连接在系统上的设备和总线组织成为一个分级的文件,它们可以由用户空间存取,向用户空间导出内核数据结构以及它们的属性。sysfs的一个目的就是展示设备驱动模型中各组件的层次关系,其顶级目录包括block、bus、dev、devices、class、fs、kernel、power和firmware
等。

block目录包含所有的块设备;devices目录包含系统所有的设备,并根据设备挂接的总线类型组织成层次结构;bus目录包含系统中所有的总线类型;class目录包含系统中的设备类型(如网卡设备、声卡设备、输入设备等)。

1.2devpath

本文的 devpath是指一个设备在 sysfs文件系统 (/sys)下的相对路径,该路径包含了该设备的属性文件。udev 里的多数命令都是针对 devpath操作的。例如:sda的 devpath是 /block/sda,sda2 的 devpath是 /block/sda/sda2。

1.3 udev工作流程

udev在用户空间中执行,动态建立/删除设备文件,允许每个人都不用关心主/次设备号而提供LSB(Linux标准规范,Linux Standard Base)名称,并且可以根据需要固定名称。工作流程如下:

1)当内核检测到系统中出现了新设备后,内核会通过netlink套接字发送uevent

2)udev获取内核发送的信息,进行规则的匹配。匹配的事物包括SUBSYSTEM、ACTION、atttribute、内核提供的名称(通过KERNEL=)以及其他的环境变量。

2.udev规则文件

2.1 规则文件存储位置

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

2.2 文件规则

udev的规则文件以行为单位,以“#”开头的行代表注释行。其余的每一行代表一个规则。每个规则分成一个或多个匹配部分和赋值部分。匹配部分用匹配专用的关键字来表示,相应的赋值部分用赋值专用的关键字来表示。
匹配关键字包括:ACTION(行为)、KERNEL(匹配内核设备名)、BUS(匹配总线类型)、
SUBSYSTEM(匹配子系统名)、ATTR(属性)等,赋值关键字包括:NAME(创建的设备文件名)、SYMLINK(符号创建链接名)、OWNER(设置设备的所有者)、GROUP(设置设备的组)、IMPORT(调用外部程序)、MODE(节点访问权限)等。

2.3 匹配和赋值操作符

匹配键赋值或匹配       说明
==匹配相等比较
!=匹配不等比较
=赋值分配一个特定的值给该键,他可以覆盖之前的赋值。
+=赋值追加特定的值给已经存在的键
:=赋值分配一个特定的值给该键,后面的规则不可能覆盖它。

2.4 匹配键

说明
ACTION事件 (uevent) 的行为,例如:add( 添加设备 )、remove( 删除设备 )。
KERNEL在内核里看到的设备名字,比如sd*表示任意SCSI磁盘设备
DEVPATH内核设备路径,比如/sys/devices/*
SUBSYSTEM子系统名字,例如:sda 的子系统为 block,网卡为net
BUS总线的名字,比如IDE,USB
DRIVER设备驱动的名字,比如ide-cdrom
SYSFS{value}sysfs属性值,他可以表示任意
ENV{key}环境变量
PROGRAM可执行的外部程序,如果程序返回0值,该键则认为为真(true)
RESULT上一个PROGRAM调用返回的标准输出
NAME根据这个规则创建的设备文件的文件名。注意:仅仅第一行的NAME描述是有效的,后面的均忽略。如果你想使用使用两个以上的名字来访问一个设备的话,可以考虑SYMLINK键。
SYMLINK为/dev/下的设备文件产生符号链接。由于udev只能为某个设备产生一个设备文件,所以为了不覆盖系统默认的 udev 规则所产生的文件,推荐使用符号连接。
OWNER设备文件的属组
GROUP设备文件所在的组。
MODE设备文件的权限,采用8进制
RUN为设备而执行的程序列表或者脚本

3 udev规则需要查询信息

3.1 按照路径查询

例如查询网卡的信息:
# udevadm  info -a -p /sys/class/net/enp1s0Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.looking at device '/devices/pci0000:00/0000:00:1c.5/0000:06:00.0/net/enp1s0':KERNEL=="enp1s0"SUBSYSTEM=="net"DRIVER==""ATTR{ifindex}=="6"ATTR{netdev_group}=="0"ATTR{name_assign_type}=="4"ATTR{addr_assign_type}=="0"ATTR{gro_flush_timeout}=="0"ATTR{dormant}=="0"ATTR{dev_id}=="0x0"ATTR{iflink}=="6"ATTR{dev_port}=="0"ATTR{duplex}=="full"ATTR{flags}=="0x1003"ATTR{type}=="1"ATTR{carrier_changes}=="1"ATTR{link_mode}=="0"ATTR{carrier_up_count}=="1"ATTR{address}=="70:ca:4d:f7:0a:d8"ATTR{carrier}=="1"ATTR{proto_down}=="0"ATTR{broadcast}=="ff:ff:ff:ff:ff:ff"ATTR{operstate}=="up"ATTR{ifalias}==""ATTR{mtu}=="1500"ATTR{addr_len}=="6"ATTR{speed}=="100"ATTR{carrier_down_count}=="0"ATTR{tx_queue_len}=="1000"looking at parent device '/devices/pci0000:00/0000:00:1c.5/0000:06:00.0':KERNELS=="0000:06:00.0"SUBSYSTEMS=="pci"DRIVERS=="yt6801"ATTRS{local_cpulist}=="0-11"ATTRS{local_cpus}=="fff"ATTRS{class}=="0x020000"ATTRS{dma_mask_bits}=="48"ATTRS{ari_enabled}=="0"ATTRS{msi_bus}=="1"ATTRS{consistent_dma_mask_bits}=="48"ATTRS{max_link_width}=="1"ATTRS{current_link_speed}=="2.5 GT/s"ATTRS{driver_override}=="(null)"ATTRS{current_link_width}=="1"ATTRS{max_link_speed}=="2.5 GT/s"ATTRS{enable}=="1"ATTRS{subsystem_vendor}=="0x2066"ATTRS{revision}=="0x01"ATTRS{subsystem_device}=="0x9806"ATTRS{irq}=="17"ATTRS{device}=="0x6801"ATTRS{vendor}=="0x1f0a"ATTRS{broken_parity_status}=="0"looking at parent device '/devices/pci0000:00/0000:00:1c.5':KERNELS=="0000:00:1c.5"SUBSYSTEMS=="pci"DRIVERS=="pcieport"ATTRS{driver_override}=="(null)"ATTRS{enable}=="1"ATTRS{ari_enabled}=="0"ATTRS{subordinate_bus_number}=="6"ATTRS{max_link_speed}=="8 GT/s"ATTRS{current_link_width}=="1"ATTRS{local_cpulist}=="0-11"ATTRS{device}=="0x7abd"ATTRS{subsystem_vendor}=="0x8086"ATTRS{dma_mask_bits}=="32"ATTRS{msi_bus}=="1"ATTRS{secondary_bus_number}=="6"ATTRS{consistent_dma_mask_bits}=="32"ATTRS{subsystem_device}=="0x7270"ATTRS{current_link_speed}=="2.5 GT/s"ATTRS{vendor}=="0x8086"ATTRS{revision}=="0x11"ATTRS{class}=="0x060400"ATTRS{broken_parity_status}=="0"ATTRS{irq}=="127"ATTRS{max_link_width}=="1"ATTRS{local_cpus}=="fff"looking at parent device '/devices/pci0000:00':KERNELS=="pci0000:00"SUBSYSTEMS==""DRIVERS==""

3.2 按照设备名称查询

如果在/dev 下面的节点已经被创建,但是不知道它对应的/sys具体节点路径可以使用
"udevadm info -a -p $(udevadm info -q path -n /dev/<节点名>)” 命令反向分析。

# udevadm  info  -a -p $(udevadm info -q path -n /dev/mtd0)Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.looking at device '//devices/pci0000:00/0000:00:1f.5/mtd/mtd0':KERNEL=="mtd0"SUBSYSTEM=="mtd"DRIVER==""ATTR{subpagesize}=="1"ATTR{oobsize}=="0"ATTR{offset}=="0"ATTR{flags}=="0x800"ATTR{size}=="33554432"ATTR{ecc_step_size}=="0"ATTR{bitflip_threshold}=="0"ATTR{erasesize}=="4096"ATTR{name}=="BIOS"ATTR{type}=="nor"ATTR{oobavail}=="0"ATTR{ecc_strength}=="0"ATTR{numeraseregions}=="0"ATTR{ecc_failures}=="0"ATTR{corrected_bits}=="0"ATTR{writesize}=="1"ATTR{bad_blocks}=="0"ATTR{bbt_blocks}=="0"looking at parent device '//devices/pci0000:00/0000:00:1f.5':KERNELS=="0000:00:1f.5"SUBSYSTEMS=="pci"DRIVERS=="intel-spi"ATTRS{subsystem_vendor}=="0x8086"ATTRS{msi_bus}=="1"ATTRS{class}=="0x0c8000"ATTRS{revision}=="0x11"ATTRS{irq}=="0"ATTRS{device}=="0x7aa4"ATTRS{vendor}=="0x8086"ATTRS{dma_mask_bits}=="32"ATTRS{broken_parity_status}=="0"ATTRS{consistent_dma_mask_bits}=="32"ATTRS{local_cpus}=="fff"ATTRS{driver_override}=="(null)"ATTRS{index}=="15"ATTRS{label}=="Onboard - Other"ATTRS{subsystem_device}=="0x7270"ATTRS{ari_enabled}=="0"ATTRS{enable}=="1"ATTRS{local_cpulist}=="0-11"looking at parent device '//devices/pci0000:00':KERNELS=="pci0000:00"SUBSYSTEMS==""DRIVERS==""

4. udev规则文件示例

4.1 usb、硬盘、sd卡

###########---USB---################
#----------------------------------#
KERNEL=="sd[b-z]*", SUBSYSTEM=="block", ACTION=="add", ENV{DEVTYPE}=="partition", RUN+="/bin/systemctl start udisk-automount@%k.service"
KERNEL=="sd[b-z]*", SUBSYSTEM=="block", ACTION=="remove", ENV{DEVTYPE}=="partition", RUN+="/bin/systemctl stop udisk-automount@%k.service"##########---hard disk---#############
#----------------------------------#
KERNEL=="hd[b-z]*", SUBSYSTEM=="block", ACTION=="add", ENV{DEVTYPE}=="partition", RUN+="/bin/systemctl start udisk-automount@%k.service"
KERNEL=="hd[b-z]*", SUBSYSTEM=="block", ACTION=="remove", ENV{DEVTYPE}=="partition", RUN+="/bin/systemctl stop udisk-automount@%k.service"#########-----SD------##############
#----------------------------------#
KERNEL=="mmcblk[0-9]*", SUBSYSTEM=="block", ACTION=="add", RUN+="/bin/systemctl start udisk-automount@%k.service"
KERNEL=="mmcblk[0-9]*", SUBSYSTEM=="block", ACTION=="remove", RUN+="/bin/systemctl stop udisk-automount@%k.service"

4.2 串口软链接

KERNEL=="ttyS7" ,SUBSYSTEM=="tty", SYMLINK+="ttyACM0"

4.3 网卡名称

SUBSYSTEMS=="pci",SUBSYSTEM=="net",KERNELS=="0000:02:00.0",NAME="enp3s0"
SUBSYSTEMS=="pci",SUBSYSTEM=="net",KERNELS=="0000:03:00.0",NAME="enp4s0"
SUBSYSTEMS=="pci",SUBSYSTEM=="net",KERNELS=="0000:04:00.0",NAME="enp5s0"
SUBSYSTEMS=="pci",SUBSYSTEM=="net",KERNELS=="0000:05:00.0",NAME="enp6s0"
SUBSYSTEMS=="pci",SUBSYSTEM=="net",KERNELS=="0000:06:00.0",NAME="enp1s0"
SUBSYSTEMS=="pci",SUBSYSTEM=="net",KERNELS=="0000:07:00.0",NAME="enp2s0"

4.4 触摸屏

SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="ads7846", SYMLINK+="input/touchscreen0"

http://www.yayakq.cn/news/257467/

相关文章:

  • 制作网站需要钱吗wordpress设置网址
  • 呼和浩特做网站的公司wordpress heroku
  • 明星网站怎么设计南宁购物网站建设
  • 网站关键词推广做自然排名做哪些网站比较赚钱方法
  • 做捕鱼网站电话号码苏州做网站知识的分享
  • 郑州网站建设hnqfu运营电商是做什么的
  • 网站开发地址做问卷兼职有哪些网站
  • 高端建设网站建设网站站长工具
  • 淘宝客的网站怎么做呢人工智能培训心得体会
  • 重庆网站设计总部手机微信营销软件
  • 苏州网站建设点一点沙河网站建设
  • 做折页的网站wordpress 数据库 插件
  • 科普网站栏目建设方案网易云wordpress
  • 天津大良网站建设注册个体可以做网站吗
  • 行业门户网站建设费用莱芜金点子信息港官网
  • 做好网站如何发布淘宝客如何建设自己的网站
  • 一流的高密做网站的上海设计网站大全
  • 网站建设cms百度推广必须做手机网站吗
  • 地方门户网站用户小程序怎么开发自己的微信小程序
  • 不会编程能建网站资阳市住房和城乡建设局网站
  • 如何选择镇江网站优化建设工程信息网官网新网站
  • 上海专业网站建设流程慧聪网的网站建设策略
  • 用织梦做的学校网站切换国外ip的软件
  • 公司网站建设需要注意事项嘉兴制作网站企业
  • .电子商务网站的开发原则包括wordpress需要什么主机
  • 模块建站平台华为手机开发者模式怎么关闭
  • 电子商务网站建设的目的是开展网络营销建工报名网
  • 服装市场调网站建设的目的苏州安岭网站建设公司
  • 什么编程语言做网站安全怎么做商务网站的架构
  • 怎么找到那个网站高清素材免费下载