Všechna vaše pravidla obsahují chyby syntaxe:
=
je pro přiřazení==
je pro srovnání, takže jste se ve skutečnosti nedívali na to, coDEV
rovná se, přidělovali jste to.- Potřebujete
,
mezi všemi příkazy nebyl žádný předSYMLINK+=
.
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.