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

Я использую Arduino IDE в Ubuntu, и у меня возникли проблемы с последовательным портом. В прошлом это работало, но по причинам, которые могут быть излишними, я почувствовал необходимость сменить владельца некоторых файлов с root-владельца на моего пользователя.

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

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

sudo chmod 666 ttyACM0

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

Как я могу его изменить и как я могу заставить его измениться навсегда?

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

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

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

  1. sudo usermod -a -G dialout $USER

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

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

sudo adduser terrik dialout

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

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

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

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

sudo chmod 666 /dev / ttyACM0 Это было единственное предложение на этой странице, которое работало в моей живой среде 14.04 beta2. Спасибо!