Ардуино работает только в корне

Я установил Arduino, но, как говорится в названии, я могу загрузить только с помощью sudo. И да, мой пользователь является частью группы dialout, так что это странно.

Ардуино действовал до моей системы. Что может быть неправильно?

Выход ls -l:

ls -l /dev/ttyUSB* crw-rw-rw- 1 root dialout 188, 0 apr 2 09:23 /dev/ttyUSB0
4
задан 2 April 2017 в 12:24

3 ответа

Как показано на выходе вашей команды 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 ". См. Это для получения дополнительной информации.

1
ответ дан 18 July 2018 в 15:40

Как показано на выходе вашей команды 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 ". См. Это для получения дополнительной информации.

1
ответ дан 24 July 2018 в 20:41
  • 1
    Спасибо за Ваш ответ. Но я применял usemod несколько раз, поэтому я застрял. Разве я сломал свой ubuntu? Я не знаком с скриптом, поэтому пока не могу с ним работать. сожалею – Sjors123 4 April 2017 в 20:38

Как показано на выходе вашей команды 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 ". См. Это для получения дополнительной информации.

1
ответ дан 31 July 2018 в 23:43
  • 1
    Спасибо за Ваш ответ. Но я применял usemod несколько раз, поэтому я застрял. Разве я сломал свой ubuntu? Я не знаком с скриптом, поэтому пока не могу с ним работать. сожалею – Sjors123 4 April 2017 в 20:38

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

Похожие вопросы: