Получить доступ к USB-устройству на Linux (libusb-1.0)?

Я пишу небольшую программу для связи с конкретным продуктом USB HID (идентифицированным поставщиком и идентификаторами продукта), используя libusb-1.0 в Linux. Прямо сейчас, я должен запустить программу как root, потому что"libusb требует доступа на запись к узлам USB-устройств". Есть ли способ изменить разрешения на устройстве, которое мне нужно, чтобы мне не нужно было запускать мою программу как root?

1 ответов


в современных системах Linux,udevd (man 7 udev) создает файлы устройств для USB-устройств, когда они подключены. Добавьте правило udev, соответствующее вашему устройству (например. вы можете соответствовать идентификаторам поставщика USB и продукта), и устанавливает OWNER / GROUP / MODE узла устройства.

лучшим подходом, вероятно, является создание новой группы для пользователей, которые должны иметь доступ к устройству, а затем установить это как владелец группы в правиле udev. Вам также может потребоваться использовать MODE для обеспечения что у него есть разрешения на чтение/запись группы. Например. ваше правило будет выглядеть примерно так:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="ffee", ATTRS{idProduct}=="5a5a", MODE="0660", GROUP="foobar"