9.4. Управление устройствами

9.4.1. Работа с дубликатами устройств

Как поясняется в Раздел 9.3, «Взаимодействие с устройствами и модулями», порядок отображения устройства с одинаковой функциональностью в /dev является, как правило, случайным. Например, если у вас есть веб камера и TV тюнер, иногда /dev/video0 ссылается на камеру, а /dev/video1 ссылается на TV тюнер, а иногда, например, после перезагрузки системы, порядок поменяется на противоположный. Для всех классов оборудования, за исключением звуковых и сетевых карт, это можно исправить, написав правила udev для создания постоянных символических ссылок. Случай с сетевыми картами описан отдельно в Раздел 9.2, «Настройка сети», инструкции по настройке звуковых карт можно найти в BLFS.

Для каждого из ваших устройств, которые могут иметь такую проблему (даже если проблема не существует в текущем дистрибутиве Linux ), найдите соответствующий каталог в /sys/class или /sys/block. Для видеоустройств это может быть /sys/class/video4linux/videoX. Определите атрибуты, которые однозначно идентифицируют устройство (обычно это идентификаторы поставщика и продукта и/или серийные номера):

udevadm info -a -p /sys/class/video4linux/video0

Затем напишите правила, которые создают символические ссылки, например:

cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"

# Persistent symlinks for webcam and tuner
KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="webcam"
KERNEL=="video*", ATTRS{device}=="0x036f",  ATTRS{vendor}=="0x109e", SYMLINK+="tvtuner"

EOF

В результате устройства /dev/video0 и /dev/video1 по-прежнему случайным образом ссылаются на TV тюнер и веб-камеру (и, следовательно, никогда не должны использоваться напрямую), но есть символические ссылки /dev/tvtuner и /dev/webcam, которые всегда указывают на правильное устройство.