Portál AbcLinuxu, 8. května 2025 00:48

Dotaz: Rezervace ttyUSBx na konkrétní hardware

13.1.2009 00:00 dan | skóre: 9 | blog: paranoia | JO60WA
Rezervace ttyUSBx na konkrétní hardware
Přečteno: 543×
Odpovědět | Admin

Mam připojena tři sériová rozhraní na usb

$lsusb
Bus 002 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 002 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 002 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 1005:b113 Apacer Technology, Inc. Handy Steno 2.0/HT203
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Po rebootu nedostanou vždy stejné názvy v systému (/dev/ttyUSB0 až ttyUSB2).
Je možné nějakým způsobem rezervovat jednotlivé názvy v /dev pro fizicky konkrétní zařízení?
Aby nebylo po rebootu nutné měnit nastavení softwaru (ser2net).
Díky za pomoc.
Víra se nikdy nezrodí jako výsledek racionální argumentace
Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.1.2009 12:32 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Rezervace ttyUSBx na konkrétní hardware
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pravidla pojmenování zařízení pro udev?
13.1.2009 12:35 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Rezervace ttyUSBx na konkrétní hardware
Odpovědět | | Sbalit | Link | Blokovat | Admin
Akorát nevím, jak rozlišit dvě stejná zařízení na na stejném hubu (PL2303). Pochybuji, že mají nějaká sériová čísla.
13.1.2009 13:25 Tomas
Rozbalit Rozbalit vše Re: Rezervace ttyUSBx na konkrétní hardware
Odpovědět | | Sbalit | Link | Blokovat | Admin

Ano je možné toto nastavit. Je potřeba napsat udev pravidla pro pojmenování těchto zařízení. Pravidla se zapíší do souboru v adresáři /etc/udev/rules.d/ . Souborů ve zmíněném adresáři je spousta a jsou dobrým příkladem pro psaní vlastních pravidel. Vlastní pravidla doporučuji napsat do dalšího souboru v tomto adresáři. Nezapomeňte na správné nastavení přístupových práv k tomuto souboru.

Podmínka pravidla může být např. typ chipu v USB2serial převodníku. Pokud máte 2 stejné chipy Prolific, budete je muset nejspíše rozlišit pomocí čísla USB portu (Bus/Device ID).

Místo jména zařízení, bych doporučil spíše vytvořit pomocí pravidel symbolický link na odpovídající zařízení (SYMLINK+="moje_jmeno"). Budete mít jistotu,  že pokuď byste připojil ještě další zařízení, který by ukradlo jméno ttyUSBx, Váš symbolický link bude stále ukazovat na správné zařízení.

Odkazy:

www.reactivated.net/writing_udev_rules.html - podrobný návod na psaní pravidel

www.volny.cz/t.jura/udevbrowser - Program pro ulehčení prohledávání /sys stromu. Po rozkliknutí ukazuje i atributy zařízení potřebné pro psaní udev pravidel. Program potřebuje ke svému běhu Tcl/Tk.

 

13.1.2009 20:53 dan | skóre: 9 | blog: paranoia | JO60WA
Rozbalit Rozbalit vše Re: Rezervace ttyUSBx na konkrétní hardware

Diky za namet, je to sice slozite jak cukrovar ;)

ale pokusim se tim prokousat.

Víra se nikdy nezrodí jako výsledek racionální argumentace
Pavel Vymetálek avatar 13.1.2009 13:25 Pavel Vymetálek | skóre: 15 | Náchod
Rozbalit Rozbalit vše Re: Rezervace ttyUSBx na konkrétní hardware
Odpovědět | | Sbalit | Link | Blokovat | Admin
Shodou okolností tu mám taky tři tyto převodníky USB->Serial. Nechtělo se mi věřit, že by neměl každý svoje SerialNumber, ale opravdu nemá.
kernel: usb 2-7: new full speed USB device using ohci_hcd and address 14
kernel: usb 2-7: configuration #1 chosen from 1 choice
kernel: pl2303 2-7:1.0: pl2303 converter detected
kernel: usb 2-7: pl2303 converter now attached to ttyUSB1
kernel: usb 2-7: New USB device found, idVendor=067b, idProduct=2303
kernel: usb 2-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0
kernel: usb 2-7: Product: USB-Serial Controller
kernel: usb 2-7: Manufacturer: Prolific Technology Inc.
kernel: usb 2-8: new full speed USB device using ohci_hcd and address 15
kernel: usb 2-8: configuration #1 chosen from 1 choice
kernel: pl2303 2-8:1.0: pl2303 converter detected
kernel: usb 2-8: pl2303 converter now attached to ttyUSB2
kernel: usb 2-8: New USB device found, idVendor=067b, idProduct=2303
kernel: usb 2-8: New USB device strings: Mfr=1, Product=2, SerialNumber=0
kernel: usb 2-8: Product: USB-Serial Controller
kernel: usb 2-8: Manufacturer: Prolific Technology Inc.
kernel: usb 2-4: new full speed USB device using ohci_hcd and address 16
kernel: usb 2-4: configuration #1 chosen from 1 choice
kernel: pl2303 2-4:1.0: pl2303 converter detected
kernel: usb 2-4: pl2303 converter now attached to ttyUSB3
kernel: usb 2-4: New USB device found, idVendor=067b, idProduct=2303
kernel: usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
kernel: usb 2-4: Product: USB-Serial Controller
kernel: usb 2-4: Manufacturer: Prolific Technology Inc.
To převodník s FTDI FT8U232 AB/BM může mít sériové číslo uložené v eeprom. Cesta asi vede tudy...
kernel: usb 2-9: new full speed USB device using ohci_hcd and address 17
kernel: usb 2-9: configuration #1 chosen from 1 choice
kernel: ftdi_sio 2-9:1.0: FTDI USB Serial Device converter detected
kernel: ftdi_sio: Detected FT8U232AM
kernel: usb 2-9: FTDI USB Serial Device converter now attached to ttyUSB0
kernel: usb 2-9: New USB device found, idVendor=0403, idProduct=6001
kernel: usb 2-9: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: usb 2-9: Product: USB <-> Serial
kernel: usb 2-9: Manufacturer: FTDI
kernel: usb 2-9: SerialNumber: 12345678
Možná by to šlo zařídit přes path:usb-0000:00:02.0-X, ale pak by asi záleželo, do kterého usb konektoru to připojíte. Pak by se to chovalo jako na windows...
cat /proc/tty/driver/usbserial
usbserinfo:1.0 driver:2.0
1: module:pl2303 name:"pl2303" vendor:067b product:2303 num_ports:1 port:1 path:usb-0000:00:02.0-7
2: module:pl2303 name:"pl2303" vendor:067b product:2303 num_ports:1 port:1 path:usb-0000:00:02.0-8
3: module:pl2303 name:"pl2303" vendor:067b product:2303 num_ports:1 port:1 path:usb-0000:00:02.0-4
14.1.2009 21:19 Tomas
Rozbalit Rozbalit vše Re: Rezervace ttyUSBx na konkrétní hardware

Možná by to šlo zařídit přes path:usb-0000:00:02.0-X, ale pak by asi záleželo, do kterého usb konektoru to připojíte. Pak by se to chovalo jako na windows...

Na Windows je přiřazení COMx totálně neřiditelné. I když připojíte stejné zařízení vícekrát do stejného portu, tak Vám pokaždé může udělat jiný COMx. Toto chování "oceníte" zejména při připojování GSM modemů, kdy je nutné pokaždé ručně najít vytvořený COM port a  poté modem znovu nainstalovat. :-(

Na linuxu máte alespoň šanci, konkrétnímu převodníku přiřadit link podle typu převodníku nebo USB portu. Případně lze zavolat i externí program, který je schopen identifikaci zařízení provést. Například u modemu se můžete zeptat pomocí AT příkazu na jeho seriové číslo a známým seriovým číslům přiřadit odpovídající jméno v /dev.

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.