Изменение полномочий на последовательном порте

Я использую IDE Ардуино в Ubuntu и имею проблемы с последовательным портом. Это работало в прошлом, но по причинам, которые могут быть ненужными, я чувствовал потребность изменить владение некоторых файлов от корневого владения до моего пользовательского владения.

Это заставило IDE работать правильно, но я потерял способность использовать корректный последовательный порт. В dev папке порт, в котором я нуждаюсь, перечислен как разрешение 166. Кто-то (кто больше не находится в области для помощи мне) подкачал полномочия к 666, который заставил все это работать великолепно.

Однако это вернулось назад, как только я перезапустил свой компьютер, и если я теперь пытаюсь использовать команду:

sudo chmod 666 ttyACM0

ничего не происходит. Никакие сообщения об ошибках, но никакое разрешение не изменяются также.

Как я могу изменить его, и как я могу заставить это изменяться постоянно.

Я приношу извинения, если бы этот вопрос чрезмерно упрощен или неясен, я - новичок человечности, и я не завидовал бы обратной связи!

62
задан 22 August 2012 в 15:57

5 ответов

Проблема с разрешениями для /dev/ttyACM0 может быть решена постоянно, добавив себя в группу dialout.

Вы можете сделать это с:

  1. sudo usermod -a -G dialout $USER

  2. Logout и затем снова войти в группу, чтобы изменения вступили в силу.

91
ответ дан 22 November 2019 в 23:46

Я не смог заставить предложение Ринзвинда работать, потому что оно жаловалось, что учетная запись пользователя уже существует. Вместо этого я использовал эту команду, чтобы добавить существующего пользователя ( terrik ) в существующую группу ( dialout ), как описано в Ubuntu Help Wiki .

sudo adduser terrik dialout

] Также полезна эта команда для вывода списка ваших текущих групп, хотя, как говорит Ринзвинд, вы должны выйти и войти в систему до того, как последовательный порт начнет пропускать вас.

groups terrik
21
ответ дан 22 November 2019 в 23:46

Я не смог заставить работать ответ Террика, но смог бы, если бы сделал эту небольшую настройку пути для ttyACM0.

sudo chmod 666 /dev/ttyACM0

Оставил бы комментарий, но у меня пока нет для этого привилегий...

12
ответ дан 22 November 2019 в 23:46

Попробуйте войти в Система / Пользователи и группы и установите флажок рядом с вашим именем пользователя в группе TTY.

2
ответ дан 22 November 2019 в 23:46

Другая возможность - сделать файл с правилами в каталоге /etc/udev/rules.d/. У меня была похожая проблема, и я создал файл 50-myusb.rules в указанном выше каталоге с таким содержимым:

KERNEL=="ttyACM[0-9]*",MODE="0666"

Обратите внимание, что это даст любому устройству, подключенному к ttyACM сокету, права на чтение/запись. Если вам нужно только определенное устройство для получения разрешений на чтение/запись, вы должны также проверить idVendor и idProduct. Их можно найти, выполнив команду lsusb дважды, один раз без подключения устройства и один раз при его подключении, после чего обратите внимание на дополнительную линию на выходе. Там Вы увидите нечто вроде Bus 003 Device 005: ID ffff:0005. В этом случае idVendor = ffff и idProduct = 0005. Ваш будет отличаться. Чем Вы изменяете файл правил на:

ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0005", MODE="0666"

Теперь только это устройство получает разрешения. Прочтите это, чтобы узнать больше о написании правил udev.

14
ответ дан 22 November 2019 в 23:46

Другие вопросы по тегам:

Похожие вопросы: