🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux
Article #895975

Re: Reguły dla udev bierzecie z udevadm?

#895975
From: Pszemol
Date: Tue, 17 May 2016 21:44
413 lines
14095 bytes
SLX <nomail@nomail> wrote:
> Użyj numeru seryjnego urządzeń USB do ich rozróżnienia, np:
> SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="04e2",
> ATTRS{idProduct}=="1422", ATTRS{serial}=="E528498121", SYMLINK+="ttySerial"
> 

Dzięki, to akurat nie zadziała, ten chip w moim przypadku to DUART, a więc
dwa porty na każdej płytce będą mieć ten sam numer seryjny. Ale przyda sie
innym razem ;-)

> A do tworzenia reguł bradziej nadaje się polecenie:
> udevadm info -a /dev/ttyXRUSB1

O, super... Więcej info.

Ale nie bardzo widzę tu zależności pomiędzy ATTRS{} od numery portu na
ostatnim USB hubie...

Dam Ci przykład, chcę rozróżnić dwa identyczne urządzenia wetknięte do
różnych portów huba i chce uzyc numeru portu huba do utworzenia nazwy pliku
(nie numeru seryjnego).

Oto te dwa urzadzenia, pelna sciezka do nich...

Ten jest w porcie 1 huba:
'/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.2/tty/ttyXRUSB1'
  
Ten jest w porcie 3 huba:
'/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3:1.2/tty/ttyXRUSB5'


A to jest to co wypluwa dla nich obu udevadm -a, ktorego atrybutu użyłbyś:


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:14.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.2/tty/ttyXRUSB1':
    KERNEL=="ttyXRUSB1"
    SUBSYSTEM=="tty"
    DRIVER==""

  looking at parent device
'/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1:1.2':
    KERNELS=="1-1.4.1:1.2"
    SUBSYSTEMS=="usb"
    DRIVERS=="cdc_xr_usb_serial"
    ATTRS{bInterfaceClass}=="02"
    ATTRS{iad_bFunctionClass}=="02"
    ATTRS{bmCapabilities}=="6"
    ATTRS{iad_bFirstInterface}=="02"
    ATTRS{bInterfaceSubClass}=="02"
    ATTRS{bInterfaceProtocol}=="01"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{iad_bFunctionSubClass}=="02"
    ATTRS{iad_bFunctionProtocol}=="01"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{iad_bInterfaceCount}=="02"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceNumber}=="02"

  looking at parent device
'/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4.1':
    KERNELS=="1-1.4.1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="02"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{devpath}=="1.4.1"
    ATTRS{idVendor}=="04e2"
    ATTRS{speed}=="12"
    ATTRS{bNumInterfaces}==" 4"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="81"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="100mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="a0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="0"
    ATTRS{bcdDevice}=="0002"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{serial}=="E340598121"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="202"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Exar Corp."
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="1422"
    ATTRS{bDeviceClass}=="ef"
    ATTRS{product}=="Exar USB UART"

  looking at parent device
'/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4':
    KERNELS=="1-1.4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{devpath}=="1.4"
    ATTRS{idVendor}=="1a40"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="67"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="100mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="4"
    ATTRS{bcdDevice}=="0111"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="252"
    ATTRS{ltm_capable}=="no"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="0101"
    ATTRS{bDeviceClass}=="09"
    ATTRS{product}=="USB 2.0 Hub"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-1':
    KERNELS=="1-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{devpath}=="1"
    ATTRS{idVendor}=="1a40"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="2"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="100mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="4"
    ATTRS{bcdDevice}=="0111"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="1408"
    ATTRS{ltm_capable}=="no"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="0101"
    ATTRS{bDeviceClass}=="09"
    ATTRS{product}=="USB 2.0 Hub"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{devpath}=="0"
    ATTRS{idVendor}=="1d6b"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{authorized_default}=="1"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="1"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="0mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="6"
    ATTRS{bcdDevice}=="0319"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{serial}=="0000:00:14.0"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="40"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 3.19.0-39-generic xhci-hcd"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="0002"
    ATTRS{bDeviceClass}=="09"
    ATTRS{product}=="xHCI Host Controller"

  looking at parent device '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{irq}=="261"
    ATTRS{subsystem_vendor}=="0x8086"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    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}=="0x0f35"
    ATTRS{enable}=="1"
    ATTRS{msi_bus}=="1"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{vendor}=="0x8086"
    ATTRS{subsystem_device}=="0x0f35"
    ATTRS{numa_node}=="-1"
    ATTRS{d3cold_allowed}=="1"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""



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:14.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3:1.2/tty/ttyXRUSB5':
    KERNEL=="ttyXRUSB5"
    SUBSYSTEM=="tty"
    DRIVER==""

  looking at parent device
'/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3:1.2':
    KERNELS=="1-1.4.3:1.2"
    SUBSYSTEMS=="usb"
    DRIVERS=="cdc_xr_usb_serial"
    ATTRS{bInterfaceClass}=="02"
    ATTRS{iad_bFunctionClass}=="02"
    ATTRS{bmCapabilities}=="6"
    ATTRS{iad_bFirstInterface}=="02"
    ATTRS{bInterfaceSubClass}=="02"
    ATTRS{bInterfaceProtocol}=="01"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{iad_bFunctionSubClass}=="02"
    ATTRS{iad_bFunctionProtocol}=="01"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{iad_bInterfaceCount}=="02"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceNumber}=="02"

  looking at parent device
'/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4.3':
    KERNELS=="1-1.4.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="02"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{devpath}=="1.4.3"
    ATTRS{idVendor}=="04e2"
    ATTRS{speed}=="12"
    ATTRS{bNumInterfaces}==" 4"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="79"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="100mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="a0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="0"
    ATTRS{bcdDevice}=="0002"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{serial}=="E778498121"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="202"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Exar Corp."
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="1422"
    ATTRS{bDeviceClass}=="ef"
    ATTRS{product}=="Exar USB UART"

  looking at parent device
'/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4':
    KERNELS=="1-1.4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{devpath}=="1.4"
    ATTRS{idVendor}=="1a40"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="67"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="100mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="4"
    ATTRS{bcdDevice}=="0111"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="252"
    ATTRS{ltm_capable}=="no"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="0101"
    ATTRS{bDeviceClass}=="09"
    ATTRS{product}=="USB 2.0 Hub"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-1':
    KERNELS=="1-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{devpath}=="1"
    ATTRS{idVendor}=="1a40"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="2"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="100mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="4"
    ATTRS{bcdDevice}=="0111"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="1408"
    ATTRS{ltm_capable}=="no"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="0101"
    ATTRS{bDeviceClass}=="09"
    ATTRS{product}=="USB 2.0 Hub"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{devpath}=="0"
    ATTRS{idVendor}=="1d6b"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{authorized_default}=="1"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="1"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="0mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="6"
    ATTRS{bcdDevice}=="0319"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{serial}=="0000:00:14.0"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="40"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 3.19.0-39-generic xhci-hcd"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="0002"
    ATTRS{bDeviceClass}=="09"
    ATTRS{product}=="xHCI Host Controller"

  looking at parent device '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{irq}=="261"
    ATTRS{subsystem_vendor}=="0x8086"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    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}=="0x0f35"
    ATTRS{enable}=="1"
    ATTRS{msi_bus}=="1"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{vendor}=="0x8086"
    ATTRS{subsystem_device}=="0x0f35"
    ATTRS{numa_node}=="-1"
    ATTRS{d3cold_allowed}=="1"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
Technical Details
Message-ID: <nhg34v$6gg$1@dont-email.me>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed2.plix.pl!goblin2!goblin1!goblin.stu.neva.ru!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail
References: <nhf1or$3dn$1@dont-email.me> <nhfbtt$8r7$1@dont-email.me> <573b4899$0$701$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed2.plix.pl!goblin2!goblin1!goblin.stu.neva.ru!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail
From: Pszemol <Pszemol@PolBox.com>
Newsgroups: pl.comp.os.linux
Subject: Re: Reguły dla udev bierzecie z udevadm?
Date: Tue, 17 May 2016 16:44:21 -0500
Organization: A noiseless patient Spider
Lines: 415
Message-ID: <nhg34v$6gg$1@dont-email.me>
References: <nhf1or$3dn$1@dont-email.me> <nhfbtt$8r7$1@dont-email.me> <573b4899$0$701$65785112@news.neostrada.pl>
Mime-Version: 1.0
Injection-Info: mx02.eternal-september.org; posting-host="fd7e1ec8352f882d075725601cce64b0"; logging-data="6672"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18uWGmjJNJei5oij2YXvD2n"
User-Agent: NewsTap/5.1.8 (iPhone/iPod Touch)
Cancel-Lock: sha1:INYvKLxClNJnBL/ZBqYY3jqAaOs= sha1:C0Aom0lYPg2avUXJBkV6oVGWJCM=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit