From: Vladislav Zavjalov <slazav@altlinux.org>
To: ALT Linux Sisyphus discussions <sisyphus@lists.altlinux.org>
Subject: [sisyphus] настройка usb-устройств в udev
Date: Sat, 10 Feb 2018 15:12:32 +0300
Message-ID: <20180210121231.GA29978@imap.altlinux.org> (raw)
Добрый день!
Задача такая: есть десяток простых и дешевых примерно одинаковых
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
можно полагаться, какие могут быть проблемы и т.п.
Ну и, если все нормально, то, может быть, оно кому-то еще пригодится.
next reply other threads:[~2018-02-10 12:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-10 12:12 Vladislav Zavjalov [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180210121231.GA29978@imap.altlinux.org \
--to=slazav@altlinux.org \
--cc=sisyphus@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
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