Рейтинг:1

Открытый последовательный порт без привилегий root в Ubuntu (правила udev)

флаг um

Я следовал этому руководству, чтобы настроить доступ к последовательному порту камеры Flir Boson из пользовательского пространства:

https://www.forecr.io/blogs/connectivity/how-to-integrate-flir-boson-thermal-camera-to-nvidia-jetson-modules

Камера устанавливается как /dev/ttyACM0 а в учебнике есть .правила файл, который вы должны загрузить и скопировать в: /etc/udev/rules.d/. А потом перезагрузиться.

Это содержимое файла:

ACTION=="добавить", SUBSYSTEM=="usb", ATTRS{idVendor}=="09cb", OWNER="nvidia", MODE="0777", GROUP="nvidia"

Но это не работает для меня. Даже после перезагрузки мое приложение по-прежнему требует судо для связи с камерой.

Теперь мне кажется, что в учебнике предполагается, что у вас есть определенное имя пользователя, в данном случае, возможно, «nvidia». Поэтому я также попытался изменить OWNER на свое настоящее имя пользователя, но это тоже не помогает.

Часть проблемы может заключаться в том, что я действительно не понимаю, для чего именно нужны поля OWNER и GROUP, я только догадываюсь. Конечно, я пытался найти это в Google, но по какой-то причине я явно не могу правильно сформулировать запрос.

Это nVidia Jetson Xavier NX с JetpackSDK 4.6, который на самом деле является Ubuntu 18.04.

Спасибо!

флаг ru
Элементы «Владелец» и «Группа» предназначены для определения пользователя в системе, которому принадлежит устройство. Вы не можете получить доступ к камере, да? Без правил «udev» перезагрузите и подключите камеру. Что означает `ls -al /dev/ttyACM0` show? Это поможет нам идентифицировать группы, в которые нужно добавить вашего пользователя для доступа к устройству.
флаг um
Привет, он напечатает следующее: `crw-rw---- 1 root dialout 166, 0 pro 2 17:58 /dev/ttyACM0` Также я не уверен, что именно вы имеете в виду под вопросом, могу ли я для доступа к камере. Подача с камеры работает хорошо, но ttyACM0 не для этого. Это последовательный порт, который можно использовать для отправки некоторых команд управления, таких как изменение цветовых режимов, яркости, интервала автофокусировки и тому подобного.
флаг ru
неважно, что это такое, важна эта группа «дозвона». И очень легко добавить себя в эту группу.
Рейтинг:1
флаг ru

Ваш файл правил изменяет пользователя и группу на несуществующего пользователя и группу нвидиа - это не решит вашу проблему, на самом деле это просто не сработает, потому что пользователь и группа нвидиа не является группой по умолчанию, и ваш пользователь не входит в нее. Вы также не должны устанавливать свои сокеты на 777 разрешения - по той же причине вы не даете его файлам (см. эта почта относительно того, почему вы не должны давать 777 к /вар/www для аналогичных вопросов безопасности). Существуют дополнительные элементы управления доступом к устройствам как часть правил изоляции AppArmor для различных приложений, которые вы не можете преодолеть как обычный пользователь. Вот почему набор номера группа существует для дайте доступ к этим устройствам.

Учебник nVidia, вероятно, предназначен для какой-то другой системы или устарел - вам не нужно использовать свои правила, вместо этого просто дайте себе доступ с помощью набор номера.

При работе с привилегиями уровня пользователя специальные устройства, такие как связь через последовательный порт, требуют дополнительных привилегий. Они предоставляются набор номера группа (для таких устройств, как коммутируемые модемы, последовательные USB-адаптеры и т. д.)

Просто добавьте свою группу в набор номера group, перезагрузитесь, и у вас будет доступ. Используйте эту команду в командной строке:

sudo usermod -a -G dialout $USER

Заменять $ПОЛЬЗОВАТЕЛЬ с вашим именем пользователя на компьютере, то при перезагрузке и повторном входе в сеанс у вас будет доступ к этому устройству и другим устройствам. Последовательные коммуникационные порты требуют набор номера разрешения, в которые легко поставить себя.

Это должно быть все, что вам или любому другому пользователю нужно сделать для доступа к устройству. Вы должны оставить разрешения по умолчанию в покое, если у вас нет какого-то очень конкретного варианта использования, который нет указан в вашем вопросе.

флаг um
Это действительно решило проблему. Я попробовал это еще до того, как написал сюда, но проблема была в том, что в сочетании с этим файлом `.rules` это не сработало. Любое объяснение этому? Почему в этом учебнике все равно беспокоят эти `.rules`?
флаг ru
@Aros Файл правил диктует альтернативные правила для настройки прав доступа к файлам на устройствах. Добавив правила, вы изменили пользователя и группу на `nvidia`, которая (1) не является группой по умолчанию и (2) ваш пользователь не входит в нее. Пользователь и группа должны быть пользователем и группой, которые имеют * доступ* к устройству. Разрешения по умолчанию — чтение/запись для файла сокета устройства для владельца и группы репрезентативного файла — вы можете сделать его своим пользователем и группой или просто оставить значения по умолчанию и разрешить себе дозвон. Если вы используете файл правил, он *меняет* значения по умолчанию.
флаг ru
Поэтому *почему* я попросил вас `ls` без файла правил, потому что вам не *нужно* изменять права доступа к репрезентативному файлу устройства - вам просто нужно дать себе права доступа. То же самое для любого другого пользователя в системе, даже если это системный пользователь. Вы должны только **в чрезвычайно редких случаях** иметь собственное правило.
флаг um
Блестящий. Спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.