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

d.petr d.petr na post.cz
Čtvrtek Duben 10 16:06:51 CEST 2014


	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



Další informace o konferenci Linux