3

Я пытаюсь подключить микроконтроллер к главному компьютеру через виртуальный com-порт USB. Однако у меня нет привилегий root на хост-компьютере. Контроллер отображается как /dev /ttyACM0.

Когда я пытаюсь подключиться к нему с помощью модуля pyserial , появляется сообщение «Отказано в доступе ».

Есть ли способ обойти это без использования каких-либо команд sudo? Может быть, как-то заставить микроконтроллер объявить себя не как ACM? Можно ли таким образом избежать проблемы с разрешениями?

$ ls -l /dev/ttyACM0
crw-rw----. 1 root dialout 166, 0 Apr 4 13:44 /dev/ttyACM0
$ id
uid=1003(mri) gid=1001(nmruser) groups=1001(nmruser),100(users),1000(nmrsu) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c102‌​3

К сожалению, я не могу изменить разрешения. Хост - это компьютер МРТ сканера. Его система поддерживается производителем сканера. Я подумал об использовании Ethernet, но я надеялся, что есть способ избежать этого.

2 ответа2

2

По умолчанию необработанный доступ к большинству (если не ко всем) устройствам разрешен только для пользователя root. Вам нужно изменить разрешения на /dev/ACM0 чтобы ваша учетная запись пользователя могла его использовать. Обычной группой для этого использования является dailout , но это может быть любой пользователь / группа с правами записи в «файл».

Вы можете изменить разрешения с помощью chmod и chown:

$ chmod 664 /dev/ttyACM0
$ chown root:dailout /dev/ttyACM0

Каждое последовательное соединение, которое вы собираетесь установить, будет иметь эту проблему. Если вы хотите избежать этого, вам придется использовать внешнюю среду, которая по умолчанию не заблокирована, например, Ethernet. Затем можно настроить сервер HTTP или MQTT для передачи данных между хостом и микроконтроллером.

0

Попросите человека, у которого есть права доступа root, установить правило udev которое назначает пользовательские права для имени, группы и группы для чтения / записи тому, что сейчас /dev/ttyACM0 . Также вы должны стать участником этой группы.

После этого вы можете открыть устройство без рута.

Вы не можете сделать это изменение, не имея root-прав или физического доступа, так что вы можете стать пользователем root по этому случаю.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .