udevadm检索设备属性

时间:2017-03-15 06:31:20

标签: linux-kernel driver udev

操作系统:Ubuntu 16.04

以太网芯片:Intel I210

以太网驱动程序:igb

我查看了我的etherent设备属性。 输入命令

udevadm info -p -a /sys/class/net/eth0

我收到了以下信息:

looking at device '/devices/pci0000:00/0000:00:1c.2/0000:02:00.0/net/eth0':
    KERNEL=="eth0"
    SUBSYSTEM=="net"
    DRIVER==""
    ATTR{mtu}=="1500"
    ATTR{type}=="1"
    ATTR{netdev_group}=="0"
    ATTR{flags}=="0x1003"
    ATTR{speed}=="1000"
    ATTR{dormant}=="0"
    ATTR{addr_assign_type}=="0"
    ATTR{dev_id}=="0x0"
    ATTR{duplex}=="full"
    ATTR{gro_flush_timeout}=="0"
    ATTR{iflink}=="2"
    ATTR{addr_len}=="6"
    ATTR{address}=="0c:c4:7a:12:b4:e4"
    ATTR{operstate}=="up"
    ATTR{carrier_changes}=="2"
    ATTR{broadcast}=="ff:ff:ff:ff:ff:ff"
    ATTR{tx_queue_len}=="1000"
    ATTR{dev_port}=="0"
    ATTR{ifalias}==""
    ATTR{ifindex}=="2"
    ATTR{link_mode}=="0"
    ATTR{carrier}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:1c.2/0000:02:00.0':
    KERNELS=="0000:02:00.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="igb"
    ATTRS{irq}=="18"
    ATTRS{subsystem_vendor}=="0x15d9"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x020000"
    ATTRS{index}=="1"
    ATTRS{label}==" Intel Ethernet controller#1 i210"
    ATTRS{driver_override}=="(null)"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{local_cpus}=="00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000f"
    ATTRS{device}=="0x1533"
    ATTRS{enable}=="1"
    ATTRS{msi_bus}=="1"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{vendor}=="0x8086"
    ATTRS{subsystem_device}=="0x1533"
    ATTRS{numa_node}=="-1"
    ATTRS{d3cold_allowed}=="1"

以下一些问题:

  1. "设备"之间的关系是什么?和"父设备"
  2. 是否从固件(设备上)或BIOS或驱动程序中检索这些属性?
  3. 是否可以修改属性值?
  4. 我问这是因为您可能知道,Ubuntu 15.10和更新版本采用了可预测的网络接口名称规则。对于板载设备,它将被识别为" enox"而x表示其索引。

    不幸的是,在我的主机上,我的两个以太网具有相同的索引,这会导致竞争条件。如果我没有恢复到原来的网络接口命名规则,启动大约需要4分钟。

    我怀疑它是固件问题。

0 个答案:

没有答案