GNU/Linux >> Znalost Linux >  >> Linux

Pravidlo Udev pro shodu zařízení USB s více uzly

Všechna vaše pravidla obsahují chyby syntaxe:

  1. = je pro přiřazení == je pro srovnání, takže jste se ve skutečnosti nedívali na to, co DEV rovná se, přidělovali jste to.
  2. Potřebujete , mezi všemi příkazy nebyl žádný před SYMLINK+= .

Pravidlo první

ACTION=="add", DEV=="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.0", SYMLINK+="huawey0"

Druhé pravidlo

ACTION=="add", KERNEL=="1-2.2:1.0", SYMLINK+="huawey0"

Třetí pravidlo

ACTION=="add", DEV=="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.[0-4]", ATTR{bInterfaceNumber}=="00", SYMLINK+="huawey0"

Čtvrté pravidlo

ACTION=="add", ATTR{bInterfaceNumber}=="00", SYMLINK+="huawey0"

Všechna tato pravidla by nyní měla dělat to, co chcete (osobně bych použil to první).


I když byl tento příspěvek položen před třemi lety a možná to neřeší odpověď, přesto se zde chci podělit o své úspěšné zkušenosti pro budoucí použití.

Podle Jense Reimanna Identify GSM modem devices using udev „atribut zařízení „bInterfaceNumber“ není na zařízení tty, ale na zařízení usb v nadřazené hierarchii“, takže jsem vytvořil dvě pravidla pro mé FTDI usb-to-4- port-sériový adaptér:

SUBSYSTEMS=="usb", ENV{.LOCAL_ifNum}="$attr{bInterfaceNumber}"

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", SYMLINK+="ttyUSB_FTDI_4_PORT_%E{.LOCAL_ifNum}"

Tím se uloží atribut „bInterfaceNumber“ do proměnné prostředí „.LOCAL_ifNum“ (tečka před předponou je zápis pro dočasné nebo skryté proměnné). Ve druhém pravidle je stejná proměnná natažena pomocí syntaxe „%E“. Novější verze udev také podporují „$env“ místo „%E“.
(od Jense Reimanna)

kde ttyUSB_FTDI_4_PORT_ je název symbolického odkazu. Tato dvě pravidla vytvoří symbolické odkazy jako ttyUSB_FTDI_4_PORT_00 , ttyUSB_FTDI_4_PORT_01 , ttyUSB_FTDI_4_PORT_02 , ttyUSB_FTDI_4_PORT_03 . Můžete přidat ATTRS{serial} atribut pro další omezení výčtu.

Jens Reimann také uznal příspěvek Ketana Patela na otázku U&L, soubor pravidel Udev pro modem nefunguje, s akceptovanou odpovědí od deroberta.


Linux
  1. Jak spustit událost ve skriptu Shell, když je odebráno zařízení USB?

  2. Linux – Udev nepřejmenuje zařízení USB Ethernet?

  3. Linux – Jak znovu připojit logicky odpojené USB zařízení?

  1. Nakonfigurujte Udev pro změnu oprávnění na USB Hid Device?

  2. nastavit zařízení pro vývoj (???????????? žádná oprávnění)

  3. pravidlo udev pro automatické načtení rozložení klávesnice, když je připojena USB klávesnice

  1. Určete NUMA uzel zařízení PCIe

  2. Získejte spotřebu energie zařízení USB

  3. Jak zjistit USB verze 1.1 nebo 2.0