Linux: подключение к виртуальному com-порту USB без доступа root?

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

когда я пытаюсь подключиться к нему с помощью pyserial модуль, возникает ошибка "отказано в разрешении".

есть ли способ обойти это без использования каких-либо команд судо?
Может быть, каким-то образом заставляя микроконтроллер заявить о себе не as 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, но я надеялся, что есть способ избежать этого.

18
задан a CVn
13.04.2023 5:27 Количество просмотров материала 2652
Распечатать страницу

2 ответа

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

вы можете изменить разрешения с chmod и chown:

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

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

2
отвечен mtak 2023-04-14 13:15

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

после этого, вы можете открыть устройство, не будучи корень.

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

0
отвечен dirkt 2023-04-14 15:32

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх