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