Робимо usb вебкамеру унікальною для Raspberry Pi за допомогою символічного посилання (udev rules)

zCx1wSqT2pQ


Шановні друзі, прийміть мої найщиріші та найтепліші вітання! Після тривалої паузи настав нарешті час і (сподіваюсь) можливість для того, аби воскресити та освіжити цей блог. Дякую всім відвідувачам, особливо дякую за ваші коментарі, приємно, що проект має відгук. Дуже перепрошую за масу коментарів, які лишив без відповіді (часу катастрофічно не вистачало навіть на банальну піблікацію в блог 🙁 ). Потішили (неспамерські!) коментарі іноземномовних відвідувачів.

Отже.. стикнувся я одного разу із цікавою задачкою: підключити декілька usb вебок до малинки і в певний момент зі скрипта запускати якусь конкретну з них. “В чому ж проблема?” – скаже хтось, не ви, ви ж розумієте 😉 А проблема як не дивно в лінуХі.

Так от в лінуксі при завантаженні веб-камер їм випадково присвоюються імена виду /dev/video[0..n]. Ключове слово ВИПАДКОВО. Тобто якщо скрипт призначений запускати камеру, скажімо video0 (формат звернення по назві пристрою притаманний більшості програм для роботи з вебками в терміналі під лінуксом), то все буде гарно і чудово. Рівно до тих пір, поки в системі не з’являться нові камери. Тоді наша video0 може випадково стати і video1, і video2, і videoN… Рекомендоване рішення полягає у створенні символічних посилань з використанням правил udev. В такому випадку ми будемо звертатися зі скрипта до камери по унікальному посиланню, яке зав’язане на унікальних (відносно) ID виробника та моделі вебкамери. Відносно тому, що підключав я до малини ВЕЛИЧЕЗНУ кількість юсб камер і були в мене дивні (принаймні для мене) ситуації, коли в моєму Распбіані абсолютно різні камери в lsusb мали повністю ідентичні ID. Може я чогось не знаю чи не розумію, і якщо з вами такого нема, то чекаю знущання в коментарях :Р

Отже не будемо тягнути кота за вуса 🙂 Все елементарно просто:
1. Підключаємо камеру до малини і дивимося за допомогою lsusb на id. id буде мати вигляд ID <05a9:4519. Код до двокрапки це шифр виробника, код після – шифр продукту.
2. Редагуємо(створюємо) /etc/udev/rules.d/83-webcam.rules з таким вмістом

KERNEL=="video[0-9]*", SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{idVendor}=="05a9", ATTRS{idProduct}=="4519", SYMLINK+="video-cam1"

(детальніше ТИЦЬ)

Міняємо:
ATTRS{idVendor}==”айді виробника вашої камери”
ATTRS{idProduct}==”айді продукту вашої камери”

Отримуємо:
SYMLINK+=”video-cam1″ – символічне посилання на камеру. Тепер можемо звертатися до камери не по videoN, а по унікальному video-cam1. Дана камера в системі завжди буде video-cam1. Називати можете інакше. Процедура повторюється для кожної наступної камери. Якщо чогось незрозуміло є коментарі. Тепер буду тут активнішим.
Дякую, що дочитали 🙂

Джерело: багатостраждальний власний досвід

Оставить ответ

Обязательные поля помечены*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.