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

d.petr d.petr na post.cz
Pátek Duben 11 16:56:46 CEST 2014


	Dobrý den,
	/sys/class/tty je pěkné místo, nehluboké, vše (zatím používané) tam je, 
... To je cesta, kterou už se vydávám. :)

Děkuji. Děkuji i všem předchozím.
PM


Vlastimil Páviček wrote:
> 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


Další informace o konferenci Linux