Изменение разрешений на последовательный порт
Я использую Arduino IDE в Ubuntu, и у меня проблемы с последовательным портом. В прошлом это работало, но по причинам, которые могут быть излишними, я почувствовал необходимость сменить владельца некоторых файлов с корневого на владение моих пользователей.
Это заставило IDE работать правильно, но я потерял способность использовать правильный последовательный порт. В папке dev нужный мне порт указан как разрешение 166. Кто-то (кто больше не в этом районе, чтобы помочь мне) поменял разрешения на 666, и все это заработало великолепно.
Тем не менее, он вернулся обратно, как только я перезагрузил компьютер, и теперь, если я попытаюсь использовать команду:
sudo chmod 666 ttyACM0
Ничего не произошло. Нет сообщений об ошибках, но нет изменения разрешения.
Как я могу изменить это, и как я могу заставить это измениться навсегда.
Я прошу прощения, если этот вопрос слишком упрощен или неясен, я нуб Ubuntu, и я не буду жалеть обратную связь!
5 ответов
Вопрос с разрешениями для /dev/ttyACM0
можно навсегда решить, добавив себя в dialout
группа. Вам придется выйти из системы, а затем снова войти в нее, прежде чем изменение группы будет распознано.
Вы можете сделать это с sudo usermod -a -G dialout $USER
Я не смог получить предложение Ринзвинда, потому что он жаловался, что учетная запись пользователя уже существует. Вместо этого я использовал эту команду, чтобы добавить существующего пользователя (terrik
) к существующей группе (dialout
), как описано в Справке по Ubuntu.
sudo adduser terrik dialout
Также полезна эта команда для вывода списка ваших текущих групп, хотя, как говорит Ринзвинд, вы должны выйти из системы и войти в систему, прежде чем последовательный порт начнет вас впускать.
groups terrik
Другая возможность - создать файл правил в /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.
Я не мог заставить работать ответ Террика, но я мог бы, если бы сделал эту небольшую корректировку пути для ttyACM0
,
sudo chmod 666 /dev/ttyACM0
Разместил бы как комментарий, но у меня еще нет привилегий для этого...
Попробуйте зайти в раздел "Система / Пользователи" и "Группы" и установить флажок для своего имени пользователя в группе TTY.