Пустой проект выдает ошибки при загрузке Arduino Leonardo в Linux Manjaro

У меня Linux Manjaro. Я подключил свой клон Arduino Leonardo (который, как я знаю, работает правильно). И попытался прошить на него пустой проект: (Моя версия IDE - 1.8.12)

void setup() {
  // поместите сюда код установки для однократного запуска:

}

void loop() {
  // поместите сюда ваш основной код для многократного запуска:

}

Это дает мне эту ошибку:

Sketch uses 3410 bytes (11%) of program storage space. Maximum is 28672 bytes.
Global variables use 149 bytes (5%) of dynamic memory, leaving 2411 bytes for local variables. Maximum is 2560 bytes.
processing.app.debug.RunnerException
    at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:152)
    at cc.arduino.UploaderUtils.upload(UploaderUtils.java:77)
    at processing.app.SketchController.upload(SketchController.java:732)
    at processing.app.SketchController.exportApplet(SketchController.java:703)
    at processing.app.Editor$UploadHandler.run(Editor.java:2047)
    at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: processing.app.SerialException: Error touching serial port '/dev/ttyACM1'.
    at processing.app.Serial.touchForCDCReset(Serial.java:107)
    at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:136)
    ... 5 more
Caused by: jssc.SerialPortException: Port name - /dev/ttyACM1; Method name - openPort(); Exception type - Permission denied.
    at jssc.SerialPort.openPort(SerialPort.java:170)
    at processing.app.Serial.touchForCDCReset(Serial.java:101)
    ... 6 more

, 👍1

Обсуждение

TL; DR этого чрезмерно подробного сообщения об ошибке: «/dev/ttyACM1: Отказано в доступе»., @Edgar Bonet

В настоящее время я переустанавливаю Arduino IDE (с моим плохим интернетом это займет несколько минут). Так что я должен попытаться запустить Arduino IDE в sudo?, @John

См. https://arduino.stackexchange.com/search?q=Linux+permission+denied, @Edgar Bonet

Присоединяйтесь к правильной группе (группам). Дайте пользователю правильные разрешения. Затем перезагрузитесь и повторите попытку., @Majenko

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

@jsotola, лол, спасибо Завтра я опубликую точный ответ, как восстановить его для моего дистрибутива, потому что сегодня у меня больше нет времени играть с ардуино., @John

https://www.arduino.cc/en/Guide/Linux#toc6, @Juraj


1 ответ


Лучший ответ:

2

Хорошо, я нашел способ сделать это. Откройте Терминал и введите:

ls -l /dev/ttyACM*

вы получите что-то вроде:

crw-rw---- 1 root dialout 188, 0 5 апр 23.01 ttyACM0

"0" в конце ACM может быть другим числом или может быть возвращено несколько записей. Нам нужны данные dialout (группа-владелец файла).

Теперь нам просто нужно добавить нашего пользователя в группу:

sudo usermod -a -G dialout <username>

Итак, для меня это будет:

sudo usermod -a -G dialout john

НО похоже, что он работает с dialout в дистрибутивах на основе Ubuntu/Debian. Я использую Manjaro, и вместо dialout мне пришлось использовать uucp (и вообще в дистрибутивах на основе Arch) так:

sudo usermod -a -G uucp john

Чтобы это изменение вступило в силу, вам потребуется выйти и снова войти в систему.

Это процедура доступа к последовательному порту из программного обеспечения Arduino (IDE), если вы получаете сообщение об ошибке

После этой процедуры вы сможете продолжить работу в обычном режиме и загрузить скетч на свою плату или использовать Serial Monitor.

Хотя для меня это еще не конец. После этого единственной ошибкой, которую я получил, было то, что Arduino IDe просто сказал, что у него нет разрешения на запись в этот порт. Поэтому мне пришлось запустить Arduino IDE следующим образом:

sudo arduino

в терминале. После этого все работает нормально.

Я нашел помощь по этим ссылкам:

  • https://www.arduino.cc/en/Guide/Linux#toc6
  • https://forum.manjaro .org/t/how-to- enable-putty-usb-serial-converter-access-without-sudo/82736
,