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

Я использую 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.

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