Portál AbcLinuxu, 17. května 2024 16:46


Dotaz: udev + usb grps modem

28.4.2009 14:23 mrate
udev + usb grps modem
Přečteno: 231×
Odpovědět | Admin

Zdravim,

potreboval bych zporvoznit udev na embedded zarizeni bezici na kernelu verze 2.6.19.2. Zarizeni ma 2 USB porty, na ktere bych potreboval pripojit 2 USB gprs modemy. Problem je v tom, aby kazdy modem byl identifikovat podel pripojeni (port1 - zarizeni /dev/modem1, port2 - zarizen /dev/modem2). Pro tyto ucely jsem nastavil udev, pridal mu pravidla pro jednotlive modemy:

KERNELS=="1-1:1.0", SUBSYSTEM=="tty", SYMLINK+="modem1"

KERNELS=="1-2:1.0", SUBSYSTEM=="tty", SYMLINK+="modem2"

Udaje jsem opsal z vypisu udevinfo. Problem je, ze symlinky se nevytvori a dokonce udevtest na /class/tty/ttyACM0 nevypise nic, ze by provadel nejakou akci. Pokud do udev.rules pridama pravidlo:

KERNEL=="eth0", SYMLINK+="test_sit"

a spustim udevinfo /class/net/eth0 pak se vypise, ze by se vytvoril symlink test_sit, cili udev jako takovy funguje. Nemate nekdo tuseni, proc udev nefunguje na usb zarizeni, ale funguje na sit? Pripadne jak rozlisit 2 usb modemy podle toho, do jakeho portu jsou pripojeny?

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.4.2009 14:33 Ash | skóre: 53
Rozbalit Rozbalit vše Re: udev + usb grps modem
Odpovědět | | Sbalit | Link | Blokovat | Admin
KERNELS=="1-1:1.0"
vs
KERNEL=="1-1:1.0"
?
28.4.2009 14:34 Ash | skóre: 53
Rozbalit Rozbalit vše Re: udev + usb grps modem
Ale netvrdím že to je špatně, jen možná.
28.4.2009 14:45 Ash | skóre: 53
Rozbalit Rozbalit vše Re: udev + usb grps modem
Hm, tak to bude asi dobře, SUBSYSTEM tty je předpokládám přímo z toho zařízení a KERNELS je z jednoho rodiče (i když asi objednoho, ale to by snad nemělo vadit). Takže nevím.
28.4.2009 14:48 mrate
Rozbalit Rozbalit vše Re: udev + usb grps modem

Zkousel jsem i SUBSYSTEM=="usb", ale ani tak to nereagovalo. Nechapu, ze napr. pro sit to funguje, ale usb udev nejak odmita. Zkousel jsem vytvaret pravidla pro disk KERNEL=="hda1" (pripadne SUBSYSTEM=="block") a taky nic (i kdyz podle vypisu udevinfo by to melo byt spravne).

28.4.2009 14:36 mrate
Rozbalit Rozbalit vše Re: udev + usb grps modem

udevinfo vypisuje KERNELS, primo u zarizeni je KERNEL=="ttyACM0", ale z toho nejsem schopen rozpoznat, na ktery USB port je zarizeni propjeno. Prvnich nekolik zaznamu v udevinfo:

$ udevinfo -a -p /class/tty/ttyACM0

  looking at device '/class/tty/ttyACM0':
    KERNEL=="ttyACM0"
    SUBSYSTEM=="tty"
    DRIVER==""
    ATTR{dev}=="166:0"

  looking at parent device '/devices/pci0000:00/0000:00:0f.0/usb1/1-2/1-2:1.0':
    KERNELS=="1-2:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="cdc_acm"
    ATTRS{modalias}=="usb:v0681p0034d0000dc02dsc00dp00ic02isc02ip01"
    ATTRS{bInterfaceProtocol}=="01"
    ATTRS{bInterfaceSubClass}=="02"
    ATTRS{bInterfaceClass}=="02"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceNumber}=="00"

  looking at parent device '/devices/pci0000:00/0000:00:0f.0/usb1/1-2':
    KERNELS=="1-2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{product}=="MC75"
    ATTRS{manufacturer}=="Siemens AG Wireless Modules"
    ATTRS{maxchild}=="0"
    ATTRS{version}==" 1.10"
    ATTRS{devnum}=="12"
    ATTRS{speed}=="12"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceClass}=="02"
    ATTRS{bcdDevice}=="0000"
    ATTRS{idProduct}=="0034"
    ATTRS{idVendor}=="0681"
    ATTRS{bMaxPower}=="  0mA"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bNumInterfaces}==" 2"
    ATTRS{configuration}==""
 

....

 

28.4.2009 14:49 Ash | skóre: 53
Rozbalit Rozbalit vše Re: udev + usb grps modem
No... jestli vám jde o to který USB port to je, tak to jsem si nedávno udělal na T61čku:
# USB device by USB bus
KERNEL=="sd?1", KERNELS=="3-3", ATTRS{busnum}=="3", SYMLINK+="usb_left"
KERNEL=="sd?1", KERNELS=="7-2", ATTRS{busnum}=="7", SYMLINK+="usb_right_top"
KERNEL=="sd?1", KERNELS=="7-1", ATTRS{busnum}=="7", SYMLINK+="usb_right_bottom
myslím že to funguje dobře. Ale busnum u vás nevidím...? Očekával bych to tam co KERNELS=="1-2" :(
28.4.2009 15:03 mrate
Rozbalit Rozbalit vše Re: udev + usb grps modem

busnum opravdu v kompletnim vypisu udevinfo chybi... Zkousel jsem pravidlo prepsat na:

KERNEL=="ttyACM*", KERNELS="1-2", SYMLINK+="modem2"

ale porad nic..

Pavel Stárek avatar 28.4.2009 16:52 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: udev + usb grps modem
Škoda že v tom výpisu chybí ATTRS{serial}, to by se to pak napsalo lehce:
SUBSYSTEM=="usb", ATTRS{serial}=="nejakyserial", SYMLINK+="modem1"
Ještě bych se podíval, jestli někde v jiných udev pravidlech není použita podmínka last_rule pro tento typ zařízení, to by pak tvoje další pravidla nebyla brána v potaz. Hledej něco jako (například):
KERNEL=="ttyACM[0-9]*", GROUP="modem", OPTIONS+="last_rule"

Kdo chce, hledá způsob; kdo nechce, hledá důvod.
28.4.2009 16:57 mrate
Rozbalit Rozbalit vše Re: udev + usb grps modem

No on momentalne hlavni problem je ten, ze se na usb zarizeni neaplikuje zadne pravidlo (ani bez serioveho cisla). Ani s pravidlem:

SUBSYSTEM=="usb", SYMLINK+="modem1"

(coz by podle me melo platit pro vsechna usb zarizeni) se neprovede nic.

Pravidla popsana v puvodnim prispevku jsou jedina, co tam jsou, jine soubory s pravidly tam nemam.

28.4.2009 15:41 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: udev + usb grps modem
Odpovědět | | Sbalit | Link | Blokovat | Admin

Možná hloupá otázka, ale není ten udev na embedded routeru třeba nějaký ořezaný?

28.4.2009 15:54 mrate
Rozbalit Rozbalit vše Re: udev + usb grps modem

On to neni router. Ten udev jsem tam kopiroval rucne a je dost mozne, ze jsem neco vynechal. Nakopiroval jsem binarky udevd, udevinfo, udevtest, udevtrigger, udevmonitor a udevcontrol + knihovny nutne pro spusteni techto programu. V adresari /etc/udev/rules.d/ jsem vytvoril soubor s pravidlama, v kernelu je podpora pro sysfs, ktery se po nabootovani primountuje do /sys. Nevim, jestli nejsou pri prekladu kernelu nejake volby, ktere by mely zasadni vliv na funkci udev (krome hotplug).

28.4.2009 16:32 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: udev + usb grps modem
Nevím, jakou verzi udevu máte, ale od jisté doby jsou pomocné skripty v /lib/udev. Nezapomněl jste na ně?
28.4.2009 16:41 mrate
Rozbalit Rozbalit vše Re: udev + usb grps modem

Adresar /lib/udev tam mam, obsah je nasledujici:

-rwxr-xr-x    1 root     root         7684 Apr 21 11:29 ata_id
-rwxr-xr-x    1 root     root         7140 Apr 21 11:29 cdrom_id
-rwxr-xr-x    1 root     root          499 Apr 21 11:29 check_driver
drwxr-xr-x    2 root     root         1024 Apr 21 11:29 devices
-rwxr-xr-x    1 root     root         9012 Apr 21 11:29 edd_id
-rwxr-xr-x    1 root     root          496 Apr 21 11:29 firmware.agent
-rw-r--r--    1 root     root         3105 Apr 21 11:29 hotplug.functions
-rwxr-xr-x    1 root     root         1259 Apr 21 11:29 ide-devfs.sh
-rwxr-xr-x    1 root     root          688 Apr 21 11:29 ide.agent
-rwxr-xr-x    1 root     root          614 Apr 21 11:29 logger.agent
-rwxr-xr-x    1 root     root         2042 Apr 21 11:29 net.agent
-rwxr-xr-x    1 root     root        11717 Apr 21 11:29 path_id
-rwxr-xr-x    1 root     root         1298 Apr 21 11:29 raid-devfs.sh
-rwxr-xr-x    1 root     root         1576 Apr 21 11:29 scsi-devfs.sh
-rwxr-xr-x    1 root     root          559 Apr 21 11:29 scsi-re-add
-rwxr-xr-x    1 root     root        20156 Apr 21 11:29 scsi_id
-rwxr-xr-x    1 root     root         7412 Apr 21 11:29 udev_run_devd
-rwxr-xr-x    1 root     root         7280 Apr 21 11:29 udev_run_hotplugd
-rwxr-xr-x    1 root     root        13912 Apr 21 11:29 usb_id
-rwxr-xr-x    1 root     root        14036 Apr 21 11:29 vol_id
-rwxr-xr-x    1 root     root         2784 Apr 21 11:29 write_cd_rules
-rwxr-xr-x    1 root     root         3477 Apr 21 11:29 write_net_rules

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.