Re: Jak změnit jméno zařízení USB v /dev?

Vlastimil Páviček vlastimil.pavicek na centrum.cz
Pátek Duben 11 11:44:58 CEST 2014


Dobrý den,

žádané symlinky by měly jít vytvořit na základě toho, kam ukazuje "/sys/class/tty/ttyUSB[01]".
Je to silně závislé na Vašem HW, ale mohlo by to fungovat.

Něco ve stylu:

case `readlink /sys/class/tty/ttyUSB0` in 
    "../../devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.0/ttyUSB0/tty/ttyUSB0")
        ln -s /dev/ttyUSB0 /dev/ttyS4
        ;;
    "../../devices/pci0000:00/0000:00:1d.0/usb6/6-2/6-2:1.0/ttyUSB0/tty/ttyUSB0")
        ln -s /dev/ttyUSB0 /dev/ttyS5
        ;;
    *)
        failed()
        ;; 
esac

+ analogicky pro ttyUSB1

Případně se chytat pouze na číslo portu z téhož zdroje.

Hodně štěstí

HAllellujAH
VLP

______________________________________________________________
> Od: "d.petr" <d.petr na post.cz>
> Komu: Diskuse o Linuxu v cestine <linux na linux.cz>
> Datum: 10.04.2014 16:07
> Předmět: Re: Jak změnit jméno zařízení USB v /dev?
>
>iSerialNumber nepoužívají, rozlišit se nedají. Ale o to mi ani nejde, 
>držel bych se konektoru (portu), kam byla ta zařízení připojena.
>
>	Asi jsem se nevyjádřil pořádně, tak tedy dodávám: Mám program 
>(programy) komunikující po ttyS0, ttyS1, ... Je lákavé tyto pevné porty 
>doplnit převodníky USB/seriova_linka a k nim vytvořit trvalé symlinky 
>ttyS4->ttyUSB0, ttyS5->ttyUSB1 atd. Starý program pak může pracovat s 
>USBčkovými převodníky beze změny (ví se, jak jsou defaultně očíslovány 
>USBporty, takže je i jasné, kde je např. ttyS7). Je to pěkně srovnané, 
>přehledné, standardní - paráda. Potíž ale nastává ve chvíli, kdy 
>převodníky USB začnou odpadávat a znovu se připojovat, pak se jejich 
>soubory v /dev přejmenují a všechno je špatně. Proto bych rád dopsal 
>funkci, která by se aktivovala v případě, že odpadne převodník, občas by 
>koukla na seznam zařízení USB a kdyby ho (něco) našla na původním portu 
>USB, zjistila by, jaký tomu teď odpovídá soubor a přejmenovala ten 
>soubor na původní název.
>
>	No, vypadá to, že moji původní myšlenku uskutečnit nejde. Tak to budu 
>muset zkusit nějak jinak, složitěji, ošklivěji. Asi zkusím nějak 
>upravovat ty symlinky ttySx->ttyUSBy.
>
>PM
>
>
>
>Artur Kudělka wrote:
>> Dobrý den,
>> teoreticky by se měla dát zařízení rozlišit pomocí iSerialNumber, ale
>> záleží zda jej používají - není povinné (viz) :
>>
>> http://www.beyondlogic.org/usbnutshell/usb5.shtml
>>
>>
>> Zdraví
>>      Artur Kudelka
>>
>>
>> Dne 10. dubna 2014 12:52 d.petr<d.petr na post.cz>  napsal(a):
>>
>>> Adam Pribyl wrote:
>>>
>>>> On Thu, 10 Apr 2014, d.petr wrote:
>>>>
>>>>   Dobrý den.
>>>>> Mám více stejných periférií USB. Při startu systému jsou pojmenovány
>>>>> způsobem xUSB0, xUSB1, xUSB2 atd. (konkrétně ttyUSB0, ...). Když se
>>>>> např. xUSB1 a xUSB2 za běhu odpojí a znovu připojí, ale v opačném
>>>>> pořadí (i když do původních konektorů USB), dostanou ta zařízení
>>>>> prohozená jména v /dev. A já potřebuji svým c-čkovým programem ta
>>>>> jména vrátit do původního stavu. Má někdo myšlenku, kudy na to? Nějak
>>>>> se mi nedaří najít žádnou radu.
>>>>>
>>>>> Doplňkové informace: Nemám udev, hal&spol. Systém pracuje
>>>>>
>>>>
>>>> Pokud nemate udev, pomoci ktereho lze vytvorit presistentni nazvy na
>>>> zaklade serioveho cisla
>>>> http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/
>>>>
>>>> pak vam nezbyva nez to same delat "rucne" ve vasi aplikaci.
>>>>
>>>>   PM
>>>>>
>>>>
>>>> Adam Pribyl
>>>>
>>>
>>>
>>> Ano, toto (ručně ve své aplikaci) bych právě moc rád učinil. Jenže nemůžu
>>> přijít na to, jak. Když se třeba odpojí xUSB1 a xUSB2 a pak se připojí jen
>>> xUSB2, dostane "špatný" název xUSB1. A já bych ho rád změnil na správný
>>> xUSB2. Jenže jak? Nebo to vůbec nejde a musím vytvářet nějaké jinak nazvané
>>> symlinky a při startu svého programu je smazat a testovat, které soubory
>>> /dev/xUSBx zrovna existují a do kterého z nich je které zařízení zrovna
>>> připojeno a zas všechny symlinky vytvořit?
>>>
>>> PM
>>> _______________________________________________
>>> Linux mailing list
>>> Linux na linux.cz
>>> http://www.linux.cz/mailman/listinfo/linux
>>>
>> _______________________________________________
>> Linux mailing list
>> Linux na linux.cz
>> http://www.linux.cz/mailman/listinfo/linux
>
>_______________________________________________
>Linux mailing list
>Linux na linux.cz
>http://www.linux.cz/mailman/listinfo/linux
>


Další informace o konferenci Linux