Я установил Arduino, но, как говорится в названии, я могу загрузить только с помощью sudo. И да, мой пользователь является частью группы dialout, так что это странно.
Ардуино действовал до моей системы. Что может быть неправильно?
Выход ls -l:
ls -l /dev/ttyUSB*
crw-rw-rw- 1 root dialout 188, 0 apr 2 09:23 /dev/ttyUSB0
Как показано на выходе вашей команды ls, /dev/ttyUSB0 и все файлы устройства similart tty принадлежат к группе dialout.
crw-rw-rw- 1 root dialout 188, 0 apr 2 09:23 /dev/ttyUSB0
Таким образом вам нужно добавить себя в эту группу с помощью команды usemod:
sudo usermod -a -G dialout $USER
Для изменения требуется выход из системы и вход в систему. Это очень частое решение, и я использую его самостоятельно для всех моих плат разработки для которых требуется последовательная консоль.
Альтернативой может быть установка скрипта udev, который будет изменять принадлежность этого файла всякий раз, когда он подключен, но изменение группы для пользователя является предпочтительным подходом в много случаев
В частности, вы должны изучить вывод dmesg, чтобы получить информацию об идентификаторе поставщика и продукта вашего arduino. Затем в /etc/udev/rules.d/ вы можете настроить скрипт 50-arduino.rules. Например, вот пример того, что я использую для платы FPGA Altera:
$ cat /etc/udev/rules.d/51-usbblaster.rules
# USB-Blaster II
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="*", \
ENV{DEVTYPE}=="usb_device",MODE="0666"
Замените "09fb" на идентификатор поставщика Arduino. ATTR часть может отменить то же самое. Вы можете запустить chown с аргументом RUN. Например, используйте `RUN = +" / path / to / chmod_script.sh root: myuser% k ". См. Это для получения дополнительной информации.
Как показано на выходе вашей команды ls, /dev/ttyUSB0 и все файлы устройства similart tty принадлежат к группе dialout.
crw-rw-rw- 1 root dialout 188, 0 apr 2 09:23 /dev/ttyUSB0
Таким образом вам нужно добавить себя в эту группу с помощью команды usemod:
sudo usermod -a -G dialout $USER
Для изменения требуется выход из системы и вход в систему. Это очень частое решение, и я использую его самостоятельно для всех моих плат разработки для которых требуется последовательная консоль.
Альтернативой может быть установка скрипта udev, который будет изменять принадлежность этого файла всякий раз, когда он подключен, но изменение группы для пользователя является предпочтительным подходом в много случаев
В частности, вы должны изучить вывод dmesg, чтобы получить информацию об идентификаторе поставщика и продукта вашего arduino. Затем в /etc/udev/rules.d/ вы можете настроить скрипт 50-arduino.rules. Например, вот пример того, что я использую для платы FPGA Altera:
$ cat /etc/udev/rules.d/51-usbblaster.rules
# USB-Blaster II
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="*", \
ENV{DEVTYPE}=="usb_device",MODE="0666"
Замените "09fb" на идентификатор поставщика Arduino. ATTR часть может отменить то же самое. Вы можете запустить chown с аргументом RUN. Например, используйте `RUN = +" / path / to / chmod_script.sh root: myuser% k ". См. Это для получения дополнительной информации.
Как показано на выходе вашей команды ls, /dev/ttyUSB0 и все файлы устройства similart tty принадлежат к группе dialout.
crw-rw-rw- 1 root dialout 188, 0 apr 2 09:23 /dev/ttyUSB0
Таким образом вам нужно добавить себя в эту группу с помощью команды usemod:
sudo usermod -a -G dialout $USER
Для изменения требуется выход из системы и вход в систему. Это очень частое решение, и я использую его самостоятельно для всех моих плат разработки для которых требуется последовательная консоль.
Альтернативой может быть установка скрипта udev, который будет изменять принадлежность этого файла всякий раз, когда он подключен, но изменение группы для пользователя является предпочтительным подходом в много случаев
В частности, вы должны изучить вывод dmesg, чтобы получить информацию об идентификаторе поставщика и продукта вашего arduino. Затем в /etc/udev/rules.d/ вы можете настроить скрипт 50-arduino.rules. Например, вот пример того, что я использую для платы FPGA Altera:
$ cat /etc/udev/rules.d/51-usbblaster.rules
# USB-Blaster II
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="*", \
ENV{DEVTYPE}=="usb_device",MODE="0666"
Замените "09fb" на идентификатор поставщика Arduino. ATTR часть может отменить то же самое. Вы можете запустить chown с аргументом RUN. Например, используйте `RUN = +" / path / to / chmod_script.sh root: myuser% k ". См. Это для получения дополнительной информации.