* [sisyphus] настройка usb-устройств в udev
@ 2018-02-10 12:12 Vladislav Zavjalov
2018-02-10 14:53 ` Leonid Krivoshein
0 siblings, 1 reply; 7+ messages in thread
From: Vladislav Zavjalov @ 2018-02-10 12:12 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
Добрый день!
Задача такая: есть десяток простых и дешевых примерно одинаковых
USB-устройств, которые хочется использовать одновременно. Проблема в том,
что, с точки зрения USB, устройства не имеют уникальных ID. При этом,
разумеется, хочется быть уверенным, что если я пишу на /dev/my_dev7, то
это будет именно устройство 7, а не какое-то другое.
Что я делаю. Сперва собираю информацию об устройствах (у них всех
usb vendor:product равен 0416:5011):
---------
lsusb |
sed -n -r -e '/0416:5011/{s/Bus ([0-9]+) Device ([0-9]+).*/\1 \2/p}' |
while read bus dev; do
udevadm info -a /dev/bus/usb/$bus/$dev > dev$dev
done
---------
Действительно, различий немного:
---------
$ diff dev084 dev085
8,9c8,9
< looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.3':
< KERNEL=="1-2.3"
---
> looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4':
> KERNEL=="1-2.4"
26,27c26,27
< ATTR{devnum}=="84"
< ATTR{devpath}=="2.3"
---
> ATTR{devnum}=="85"
> ATTR{devpath}=="2.4"
---------
Моя гипотеза состоит в том, что можно различить их по devpath. Они подключены
у меня к нескольким простым 4-портовым USB-хабам, и, действительно, devpath
соответствует порядку их портов: 1.1, 1.2, 1.3, 1.4, 2.1 и т.д.
Поэтому я пишу такие правила для udev (в /etc/udev/rules.d/)
---------
ACTION=="add",\
ATTRS{idVendor}=="0416", ATTRS{idProduct}=="5011",\
ATTRS{devpath}=="1.1", GROUP="users", SYMLINK+="my_dev7"
и т.д.
---------
Естественно, придется все промаркировать и заботиться о том,
чтобы все всегда было воткнуто в нужном порядке.
Я довольно смутно представляю себе концепцию usb и udev, поэтому
хочется попросить о критике этого рецепта. Насколько на devpath
можно полагаться, какие могут быть проблемы и т.п.
Ну и, если все нормально, то, может быть, оно кому-то еще пригодится.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [sisyphus] настройка usb-устройств в udev
2018-02-10 12:12 [sisyphus] настройка usb-устройств в udev Vladislav Zavjalov
@ 2018-02-10 14:53 ` Leonid Krivoshein
2018-02-10 15:00 ` Шенцев Алексей
2018-02-10 18:04 ` Vladislav Zavjalov
0 siblings, 2 replies; 7+ messages in thread
From: Leonid Krivoshein @ 2018-02-10 14:53 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
Здравствуйте!
10.02.2018 15:12, Vladislav Zavjalov пишет:
> Задача такая: есть десяток простых и дешевых примерно одинаковых
> USB-устройств, которые хочется использовать одновременно. Проблема в том,
> что, с точки зрения USB, устройства не имеют уникальных ID.
...
> Естественно, придется все промаркировать и заботиться о том,
> чтобы все всегда было воткнуто в нужном порядке.
Очевидно, раз нет различий по уникальным ID, например, ATTRS{serial}, то
и двигаться в этом направлении бессмысленно. Если бы речь шла об
устройстве хранения, можно сделать скрипт, который берёт что-то с него,
например, файл с ID или метку тома. Здесь же номера присваиваются
условно в хаотичном порядке. Попробуйте проделать сначала с одним
устройством такие действия, а потом с другим: вставьте последовательно
во все USB-порты с запущенным udevadm monitor | tee savedX.log, и
смотрите, что выводится. Если вывод зависит только от места, КУДА
вставили, а не от устройства, КОТОРОЕ вставляли, повторите проделанное с
любым ДРУГИМ ядром. Также можно смотреть, как эти "промаркированные на
своём месте" устройства определятся ядром в процессе нескольких
перезапусков.
--
Best regards,
Leonid Krivoshein.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [sisyphus] настройка usb-устройств в udev
2018-02-10 14:53 ` Leonid Krivoshein
@ 2018-02-10 15:00 ` Шенцев Алексей
2018-02-10 15:06 ` Leonid Krivoshein
2018-02-10 18:04 ` Vladislav Zavjalov
1 sibling, 1 reply; 7+ messages in thread
From: Шенцев Алексей @ 2018-02-10 15:00 UTC (permalink / raw)
To: sisyphus@lists.altlinux.org >> ALT Linux Sisyphus discussions
10.02.2018 17:53, Leonid Krivoshein пишет:
> Здравствуйте!
>
>
> 10.02.2018 15:12, Vladislav Zavjalov пишет:
>> Задача такая: есть десяток простых и дешевых примерно одинаковых
>> USB-устройств, которые хочется использовать одновременно. Проблема в
>> том,
>> что, с точки зрения USB, устройства не имеют уникальных ID.
> ...
>> Естественно, придется все промаркировать и заботиться о том,
>> чтобы все всегда было воткнуто в нужном порядке.
>
> Очевидно, раз нет различий по уникальным ID, например, ATTRS{serial},
> то и двигаться в этом направлении бессмысленно. Если бы речь шла об
> устройстве хранения, можно сделать скрипт, который берёт что-то с
> него, например, файл с ID или метку тома.
В данном случае, imho, лучше по метке тома на устройстве.
Примерно как рассказано здесь:
http://wiki.specialistoff.net/index.php/RAID_%D0%BD%D0%B0_microSD_%D0%B4%D0%B8%D1%81%D0%BA%D0%B0%D1%85
--
С уважением,
Шенцев Алексей
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [sisyphus] настройка usb-устройств в udev
2018-02-10 15:00 ` Шенцев Алексей
@ 2018-02-10 15:06 ` Leonid Krivoshein
0 siblings, 0 replies; 7+ messages in thread
From: Leonid Krivoshein @ 2018-02-10 15:06 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
10.02.2018 18:00, Шенцев Алексей пишет:
> В данном случае, imho, лучше по метке тома на устройстве.
> Примерно как рассказано здесь:
>
> http://wiki.specialistoff.net/index.php/RAID_%D0%BD%D0%B0_microSD_%D0%B4%D0%B8%D1%81%D0%BA%D0%B0%D1%85
>
>
Если бы мы знали точно, что речь идёт об устройствах хранения, тем более
предназначенных для RAID, то вообще бы не заботились -- md сам
отмаркирует диски своим UUID'ами и ядро соберёт массив как надо,
независимо от того, куда вставили. Здесь же USB ID похоже на какое-то
печатающее устройство.
--
Best regards,
Leonid Krivoshein.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [sisyphus] настройка usb-устройств в udev
2018-02-10 14:53 ` Leonid Krivoshein
2018-02-10 15:00 ` Шенцев Алексей
@ 2018-02-10 18:04 ` Vladislav Zavjalov
2018-02-11 11:34 ` Leonid Krivoshein
1 sibling, 1 reply; 7+ messages in thread
From: Vladislav Zavjalov @ 2018-02-10 18:04 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
On Sat, Feb 10, 2018 at 05:53:39PM +0300, Leonid Krivoshein wrote:
> Здравствуйте!
>
>
> 10.02.2018 15:12, Vladislav Zavjalov пишет:
> > Задача такая: есть десяток простых и дешевых примерно одинаковых
> > USB-устройств, которые хочется использовать одновременно. Проблема в том,
> > что, с точки зрения USB, устройства не имеют уникальных ID.
> ...
> > Естественно, придется все промаркировать и заботиться о том,
> > чтобы все всегда было воткнуто в нужном порядке.
>
> Очевидно, раз нет различий по уникальным ID, например, ATTRS{serial}, то
> и двигаться в этом направлении бессмысленно. Если бы речь шла об
> устройстве хранения, можно сделать скрипт, который берёт что-то с него,
> например, файл с ID или метку тома. Здесь же номера присваиваются
> условно в хаотичном порядке. Попробуйте проделать сначала с одним
> устройством такие действия, а потом с другим: вставьте последовательно
> во все USB-порты с запущенным udevadm monitor | tee savedX.log, и
> смотрите, что выводится. Если вывод зависит только от места, КУДА
> вставили, а не от устройства, КОТОРОЕ вставляли, повторите проделанное с
> любым ДРУГИМ ядром. Также можно смотреть, как эти "промаркированные на
> своём месте" устройства определятся ядром в процессе нескольких
> перезапусков.
Это не устройство хранения, это источники тока/напряжения. ATTRS{serial}
у них одинаковый (не на всех, но в большинстве случаев).
То есть, вы хотите сказать, что devpath может не отражать то место, куда
устройство воткнули? У меня, кажется, отражает, но это-то и хочется
выяснить, чтоб потом случайно не загнать 5 ампер куда-нибудь не туда...
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [sisyphus] настройка usb-устройств в udev
2018-02-10 18:04 ` Vladislav Zavjalov
@ 2018-02-11 11:34 ` Leonid Krivoshein
2018-02-11 19:23 ` Vladislav Zavjalov
0 siblings, 1 reply; 7+ messages in thread
From: Leonid Krivoshein @ 2018-02-11 11:34 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
10.02.2018 21:04, Vladislav Zavjalov пишет:
> То есть, вы хотите сказать, что devpath может не отражать то место, куда
> устройство воткнули? У меня, кажется, отражает, но это-то и хочется
> выяснить, чтоб потом случайно не загнать 5 ампер куда-нибудь не туда...
Скорее, не могу это гарантировать. Особенно, от реализации к реализации
sysfs в ядре. Но ведь можно проверить экспериментально. При смене ядра
до эксплуатации снова проверять. А так везде пишут, что в таких случаях
действительно ничего не остаётся, как ориентироваться на топологию
подключения, к примеру:
https://txlab.wordpress.com/2016/06/14/udev-rules-for-ttyusb-devices/
--
Best regards,
Leonid Krivoshein.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [sisyphus] настройка usb-устройств в udev
2018-02-11 11:34 ` Leonid Krivoshein
@ 2018-02-11 19:23 ` Vladislav Zavjalov
0 siblings, 0 replies; 7+ messages in thread
From: Vladislav Zavjalov @ 2018-02-11 19:23 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
On Sun, Feb 11, 2018 at 02:34:38PM +0300, Leonid Krivoshein wrote:
>
> 10.02.2018 21:04, Vladislav Zavjalov пишет:
> > То есть, вы хотите сказать, что devpath может не отражать то место, куда
> > устройство воткнули? У меня, кажется, отражает, но это-то и хочется
> > выяснить, чтоб потом случайно не загнать 5 ампер куда-нибудь не туда...
>
> Скорее, не могу это гарантировать. Особенно, от реализации к реализации
> sysfs в ядре. Но ведь можно проверить экспериментально. При смене ядра
> до эксплуатации снова проверять.
Ну да, не забыть перепроверять после обновлений ядра. Посмотрим...
> А так везде пишут, что в таких случаях
> действительно ничего не остаётся, как ориентироваться на топологию
> подключения, к примеру:
>
> https://txlab.wordpress.com/2016/06/14/udev-rules-for-ttyusb-devices/
Спасибо. А ни к чему больше и не прицепиться.
Может быть, можно найти какие-то более умные usb-хабы, у которых
каждый порт - это устройство со своим id.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-02-11 19:23 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-10 12:12 [sisyphus] настройка usb-устройств в udev Vladislav Zavjalov
2018-02-10 14:53 ` Leonid Krivoshein
2018-02-10 15:00 ` Шенцев Алексей
2018-02-10 15:06 ` Leonid Krivoshein
2018-02-10 18:04 ` Vladislav Zavjalov
2018-02-11 11:34 ` Leonid Krivoshein
2018-02-11 19:23 ` Vladislav Zavjalov
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git