Моя ОС — Ubuntu 18.04, и Arduino работал до сих пор.
Хотя есть несколько решений, ни одно из них мне не подходит.
Я следовал этим инструкциям на сайте Arduino.
Затем я попробовал это на Arduino Stack Exchange, который должен работать в тех случаях, когда первое решение не сработало. Ответ говорит, что мы должны создать несколько правил /etc/udev/ruled.d/
дорожка.
Но никто из них не работал для меня.
Я также проверил Arduino в Windows 10, чтобы увидеть, была ли это аппаратная проблема, но она работала нормально.
У кого-нибудь есть еще идеи как решить эту проблему?
ОБНОВИТЬ:
- Мое имя пользователя, sergio, является частью обеих групп (tty и dialout);
- Я вышел из системы и вернулся, как объясняет официальный учебник Arduino;
- В Arduino IDE правильные конфигурации: Arduino UNO и ttyACM0
-
Это вывод
ll /dev/ttyACM0
после запуска обучающих команд:crw-rw-rw- 1 root dialout 166, 0 Jul 15 05:41 /dev/ttyACM0
ОБНОВЛЕНИЕ 2:
Я создал скрипт для решения этой проблемы: https://github.com/sergiomafra/iniarduino
2018-07-15 12:11
12
ответов
Решение
Переустановите ваш arduino, установленный из программного центра Ubuntu:
sudo apt install --reinstall arduino
Переустановка необходима, так как ваш which avrdude
Команда согласно вашему комментарию ничего не возвращает, но должна быть /usr/bin/avrdude
, Проверьте еще раз:
which avrdude
Запустите вашу Arduino IDE после переустановки и закройте ее.
Проверьте вашу конфигурацию arduino. открыто /home/sergio/.arduino/preferences.txt
файл и проверьте там serial.port
вариант. Попробуйте изменить это на /dev/ttyACM0
, Откройте этот файл:
sudo nano /home/sergio/.arduino/preferences.txt
и применить соответствующие изменения, т.е. вариант должен выглядеть
serial.port=/dev/ttyACM0
Перезагрузите компьютер после этого.
Bob
15 июл ’18 в 14:33
2018-07-15 14:33
2018-07-15 14:33
У меня была похожая проблема, когда я пытался загрузить эскиз в Arduino. Проблема была связана с отсутствием разрешений на чтение / запись на последовательный порт. Мне удалось исправить с помощью следующей команды:
Чтобы подтвердить, что порт существует, введите следующее из корневого каталога.
ls /dev/ttyACM0
Чтобы установить разрешения на чтение / запись, введите следующее
sudo chmod a+rw /dev/ttyACM0
Adrian
22 янв ’19 в 06:13
2019-01-22 06:13
2019-01-22 06:13
Вот что сработало для меня:
- Удалите версию с Apt, она не работает должным образом (
sudo apt uninstall arduino; sudo apt autoremove
) - Установите версию с сайта Arduino
sudo apt install avrdude
так как тот, что на сайте не включает егоsudo usermod -a -G dialout [your_username]
так как тот с сайта не делает это автоматически
И теперь все снова работает!
Draconis
28 май ’19 в 18:36
2019-05-28 18:36
2019-05-28 18:36
Это помогло решить проблему «невозможно открыть последовательный порт» (введите свое имя пользователя Ubuntu вместо
$USER
) после загрузки Arduino из Ubuntu Software.
sudo usermod -a -G dialout $USER
sudo chmod a+rw /dev/ttyUSB0
18 сен ’20 в 07:10
2020-09-18 07:10
2020-09-18 07:10
В сочетании со всеми сообщениями, которые я прочитал, это то, что я сделал, чтобы решить эту проблему, следуя указаниям из этой темы.
В новом терминале я набрал следующее, как показано ниже.
Обратите внимание, что fourplus — это мое имя пользователя.
2019-03-10 02:14
У меня была такая же проблема, я попытался установить из Ubuntu Store 18.04 и попробовать любое решение здесь. У меня ничего не работало. Так я скачал последний
Я извлек и запустил следующую команду, чтобы установить его:
$ sudo ./install.sh
После установки я запустил сценарий, входящий в последнюю версию, выполнив следующее:
$./arduino-linux-setup.sh <имя_пользователя>
Как только сценарий будет завершен, он покажет вам сообщение «Пожалуйста, перебронируйте систему». Я не перезапускал, когда пробовал решения здесь, может быть это то, что должны попробовать следующие пользователи.
Важно: при установке программного обеспечения, выполнив следующие действия, вам необходимо перейти в программное обеспечение Ubuntu и дать разрешение на «доступ к USB-оборудованию напрямую».
titusfx
14 сен ’20 в 17:39
2020-09-14 17:39
2020-09-14 17:39
Ха Я новичок и сделал несколько ошибок)) Не делай так, как я.
- Во-первых, в моей книге было плохое изображение схемы подключения светодиода. Нашел новый и переподключил провода. Теперь они подключены правильно.
- Потом подключил арудино к компьютеру (это важно).
-
Затем я выполнил следующие команды:
- ls -l /dev / ttyACM0
- sudo usermod -a -G dialout [my_username]
- sudo chmod a+rw /dev / ttyACM0
Когда я искал плату в меню программы Arduino (Инструменты -> Плата), я не нашел «Arduino/Genuino Uno», просто там была «Arduino Uno» (думаю, все в порядке)
01 май ’20 в 22:09
2020-05-01 22:09
2020-05-01 22:09
Я вижу, что вопрос уже принят, но ни одно из решений не помогло мне, поэтому у меня есть другое решение. Я установил IDE arduino через установщик программного обеспечения Ubuntu. Что вам нужно сделать, так это.
- Перейдите в IDE arduino в магазине программного обеспечения Ubuntu
- нажмите разрешения
- установить доступ к USB-оборудованию непосредственно на
22 мар ’20 в 16:24
2020-03-22 16:24
2020-03-22 16:24
Для меня любой
chmod
а также
udev
правило не сработало.
Только принуждение
avrdude
для запуска с правами root:
$ sudo chmod u+s /opt/arduino/hardware/tools/avr/bin/avrdude
eadmaster
16 июн ’21 в 03:47
2021-06-16 03:47
2021-06-16 03:47
Обновление 2 OP для создания скрипта отлично решает проблему. Проверьте это на GitHub.
2048@machine:~/Downloads/iniarduino-master$ iniarduino
[sudo] password for vipulgupta2048:
Arduino connected!
Checking if 2048 is part of dialout and tty groups
2048 added to dialout group
2048 added to tty group
Password required to change permissions of /dev/ttyACM0
Permissions to /dev/ttyACM0 changed to a+rw
Reloading UDEV Rules
UDEV Rules reloaded without the need to restart
All Done!
2022-02-19 20:50
Для меня сработала смесь двух приведенных выше ответов: во-первых, я не смог найти avrdude, which avrdude
это мне ничего не дало. Итак, мне пришлось переустановить ардуино.
sudo aptinstall --reinstall arduino
Это установило avrdude, и я мог найти его в /usr/bin/avrdude
. Следующим шагом было установить разрешение на чтение / запись для последовательного порта:
sudo chmod a+rw /dev/ttyACM0
Затем я мог загрузить скетч на свой ардуино!
2020-07-03 13:14
У меня есть решение.
-
Найдите свой порт, к которому подключен Arduino (например, мой был
/dev/ttyUSB0
). Вы можете найти это в сообщении об ошибке в Arduino IDE. -
Откройте терминал (Ctrl+Alt+T).
-
В терминале запустите:
sudo chmod 777 /dev/ttyUSB0
Приведенная выше команда устанавливает необходимые разрешения.
11 дек ’19 в 13:22
2019-12-11 13:22
2019-12-11 13:22
I just had this problem with my Genuine Arduino Mega 2560 trying to connect to it from an Ubuntu 18.04.5 LTS machine using a locally compiled Arduino IDE version 1.8.16. I was able to fix it in my case, so posting here to share the tips.
Came across several other forum topics reporting the same symptoms (even though not all are Mega and not all on Linux):
- https://arduino.stackexchange.com/questions/33505/why-do-i-get-avrdude-stk500v2-receivemessage-timeout-error-when-uploading-to?newreg=d5f1171d37394be584fc5de8dea6138f
- https://arduino.stackexchange.com/questions/3316/mega-2560-doesnt-respond
- https://forum.arduino.cc/t/mega2560-timeout-communicating-with-programmer/132479
- https://starter-kit.nettigo.eu/2015/serial-port-busy-for-avrdude-on-ubuntu-with-arduino-leonardo-eth/
After troubleshooting for several hours I was able to reliably connect to my Mega. It turned out there were multiple problems that prevented it from working that had to be understood and solved, and when I realized what they were I could not believe my eyes.
The posters who suggested making sure that udev rules are configured to prevent the ModemManager from hogging the Mega device, thereby making it unavailable to the Arduino IDE were on the right track. So I checked my /etc/udev/rules.d/70-snap.core.rules
and indeed confirmed that there already was a rule for ModemManager to ignore devices with USB vendor ID 2341, which is the Genuine Arduino:
...
ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"
...
However, when I did a tail -f /var/log/syslog
and plugged in the Mega, I could not believe my eyes to see that ModemManager was still trying to talk to it:
Dec 9 22:09:58 hostname ModemManager[999]: <info> [device /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2] creating modem with plugin 'Generic' and '1' ports
Dec 9 22:09:58 hostname ModemManager[999]: <warn> Could not grab port (tty/ttyACM0): 'Cannot add port 'tty/ttyACM0', unhandled serial type'
Dec 9 22:09:58 hostname ModemManager[999]: <warn> Couldn't create modem for device '/sys/devices/pci0000:00/0000:00:14.0/usb3/3-2': Failed to find primary AT port
It looks like the ModemManager was still trying to connect to it as a non-USB TTY device.
The problem was exacerbated in that the Arduino IDE was not handling this problem gracefully and kept hanging and trying to connect to the Mega even after I unplugged it from the USB. Nevertheless, I did a quick ps -ef | grep ModemManager
and then kill [PID]
, waited until the Arduino IDE stopped trying to connect to the disconnected Mega, then plugged it back in, specified the port via ‘Tools’ -> ‘Port’, and again attempted an upload, and it worked like a charm. (Conversely, had I just waited watching /var/log/syslog
for ModemManager to give up and free the device Arduino IDE might have also worked without me explicitly killing the ModemManager. That probably explains why it worked sporadically.)
So then I thought I solved all my problems and started bolting the Mega into my device. I tightened the connecting fasteners, and again could not believe my eyes that it stopped working again. Took the Mega back out, unbolted the whole board and now it worked, bolted it back in, and it stopped working. After several rounds, correlated the use of a brass standoff on the hole right next to the pin A6 as causing this problem. I surmise that the metal standoff was shorting out or somehow interfering with PCB traces that run very close to that hole. So stopped bolting in that hole, and the Mega started working fine assembled into my device.
So in my case, 2 problems were preventing the Mega from working and PC connecting to it via USB:
(1) ModemManager was hogging the device as soon as it was plugged in despite the udev USB rules. Solution — killed ModemManager (still need to look into modifying system config so that I don’t have to kill it each time).
(2) Hardware issue with the metal riser interfering with PCB traces near hole next to pin A6. Solution — stopped bolting in that hole.
Hope this is helpful.
If you use an Arduino IDE on Linux (e.g. Ubuntu, Linux Mint, etc.), you may get the following errors while trying to upload a sketch to the Arduino broad:
Caused by: processing.app.SerialException: Error touching serial port ‘/dev/ttyACM0’.
– and –
Caused by: jssc.SerialPortException: Port name – /dev/ttyACM0; Method name – openPort(); Exception type – Permission denied.
In this note i am showing how to permanently fix the “Permission denied” error on the serial port /dev/ttyACM0
while uploading the Arduino sketch.
Cool Tip: Add “Arduino Pro Micro” board to the Arduino IDE! Read more →
The /dev/ttyACM0
device has the group of dialout
:
$ stat /dev/ttyACM0
- sample output -
File: /dev/ttyACM0
Size: 0 Blocks: 0 IO Block: 4096 character special file
Device: 6h/6d Inode: 345 Links: 1 Device type: a6,0
Access: (0660/crw-rw----) Uid: ( 0/ root) Gid: ( 20/ dialout)
The members of the dialout
group have full and direct access to serial ports.
To permanently solve the issue with the permissions for /dev/ttyACM0
, all you need is to add your user to the dialout
group:
$ sudo usermod -a -G dialout <username>
Logout and then log back in for the group changes to take effect.
After that you should be able to upload your sketch to the Arduino broad connected to the serial port /dev/ttyACM0
without any “Permission denied” errors.
Cool Tip: Simulate keystrokes using the Arduino boards! Read more →
Was it useful? Share this post with the world!
I am running Debian 7 (Linux Crunchbang) and wanted to use The Arduino IDE to program my Arduino UNO. To do that I installed the package arduino
. When I started the Arduino I was asked to add my user to the dialout
group. So I did with sudo usermod -a -G dialout <my-username>
.
However when I start the Arduino IDE using arduino
in the commandline the IDE opens but I am not able to load my program to the Arduino. The error message is «Serial port COM1 not found. Did you select the right one from the Tools > Serial Port menu?» And when I went to select the Serial Port, the option «Tools > Serial Port» is greyed out.
I thought it is because I did not grant read and write permissions on my usb port (ttyACM0). So I did sudo chmod a+rw /dev/ttyACM0
but the option is still greyed out.
asked Oct 11, 2013 at 15:58
1
chdmod works for my under debian (proxmox):
# chmod a+rw /dev/ttyACM0
For installing arduino IDE:
# apt-get install arduino arduino-core arduino-mk
Add the user to dialout group:
# gpasswd -a user dialout
Restart Linux.
Try with the File > Examples > 01.Basic > Blink, change the 2 delays to delay(60) and click the upload button for testing on arduino, led must blink faster.
answered Dec 15, 2013 at 11:26
user3104260user3104260
5774 silver badges5 bronze badges
6
sudo arduino is the only way I get the Arduino IDE working (serial port and upload) on ubuntu 12.04 (64)
Indeed the serial port to use is /dev/ttyACM0 in my case too.
The other two (ttyS4 and ttyS0) gave an error when trying to upload to Uno.
Have fun
answered Jul 25, 2014 at 20:08
4
Try Disconnecting the usb and plugging it back in. Its only grayed out because the ide cannot find any com ports that the uno has been plugged into.
another solution is to try all the com ports and see which one works.
finally if all fails try restarting your computer.
answered Oct 12, 2013 at 5:01
Close all instances of the arduino IDE
open ~/.arduino/preferences.txt and look for the line:
serial.port=<not your port>
and change it to your port:
serial.port=/dev/ttyACM0
you may have to log out for it to take effect
answered Feb 21, 2016 at 17:20
chaggychaggy
1,1011 gold badge10 silver badges18 bronze badges
0
If it is helpful to anyone, I had this problem using Ubuntu 22.04. The issue stemmed from:
- apparmor (apparmor denied error, logging with dmesg)
- brltty (ch34x converter now disconnected from ttyUSB0)
Solved it by removing both:
- https://www.simplified.guide/ubuntu/remove-apparmor
- sudo apt remove brltty
You can disable apparmor and it should work, however this made applications like firefox useless. My recomendation would be to totally remove it
answered Apr 27, 2022 at 18:34
open $arduinoHome/arduino in text editor and modify last string:
java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base "$@"
to
java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dgnu.io.rxtx.SerialPorts="/dev/ttyACMN" processing.app.Base "$@"
(set property gnu.io.rxtx.SerialPorts to /dev/ttyACMN,where ttyACMN is name of serial port which you use)
it may temporary fix bug in rxtx library. helped me to upload sketch with arduino1.0.5 IDE.
Maybe would helpful for someone.
answered Jul 17, 2014 at 9:06
SildSild
3,0973 gold badges15 silver badges21 bronze badges
2
In my case this turned out to be a bad USB hub.
The ‘lsusb’ command can be used to display all recognized devices. If the unit is not plugged in the option to set the speed will be disabled.
The lsusb command should output something like the string ‘Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)’ if your device is recognized. Mine was an RFDuino
answered Feb 16, 2016 at 23:41
JayJay
13.9k4 gold badges42 silver badges70 bronze badges
In my case I solved this issue by uninstalling the version of Arduino that I installed via apt-get
and instead installed via the official website.
With the latest version of Arduino I didn’t have the problem described on Ubuntu 18.04.
answered Mar 2, 2019 at 18:19
Philip KirkbridePhilip Kirkbride
21.4k38 gold badges125 silver badges225 bronze badges
So I did with
sudo usermod -a -G dialout <my-username>
.
You need to log out after you add yourself to a group so those changes are applied. Just log out and log in again and the menu should be available.
answered Mar 16, 2015 at 0:50
install rx-tx lib for java run this command in terminal
sudo apt-get install librxtx-java -y
output port
sudo usermod -aG dialout $USER
sudo apt-get install gnome-system-tools
help regconize usb device
answered Feb 22, 2019 at 18:42
I solved following serial port related problems in ubuntu 18.04 as follows:
Problem 1 : Cannot open /dev/ttyACM0: Permission denied
Solution : Grant permissions to read/write to the serial port with this terminal command —> sudo chmod a+rw /dev/ttyACM0
Here replace tty port with your respective ubuntu port.
Problem 2 : Failed to open /dev/ttyACM0 (port busy)
Solution : This problem appears when serial port is busy or already occupied. So kill the busy serial port with command —> fuser -k /dev/ttyACM0
. Here replace tty port with your respective ubuntu port.
Problem 3 : Board at /dev/ttyACM0 is not available
Solution : In this case your serial port in tools menu will be greyed out. I googled a lot for this, but I none of solution worked for me. Atlast I tried different arduino board and usb connector and it was working for me. So, if you are having old arduino board (can be solved using required drivers) or defected arduino board then only this problem arises.
answered Feb 27, 2021 at 17:01
RahulRahul
7897 silver badges10 bronze badges
Same comment as Philip Kirkbride.
It wasn’t a permission issue, but using the Arduino IDE downloaded from their website solved my problem.
Thanks!
Michael
answered May 3, 2019 at 17:29
0
The following steps install the IDE and remove the error java.lang.NullPointerException thrown while loading gnu.io.RXTXCommDriver
which usually comes with arduino installed with apt-get
command in Ubuntu.
Install the IDE
sudo apt-get install arduino
for removing java error in IDE
sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-set-default
This also shows the Serial Port which was grayed out due to the error.
Zoe♦
27.1k21 gold badges119 silver badges148 bronze badges
answered Apr 2, 2019 at 19:28
I had the same problem, with which I struggled for few days, reading all the blog posts, watching videos and finally after i changed my uno board, it worked perfectly well. But before I did that, there were a few things I tried, which I think also had an effect.
- Extracted the files to opt folder, change the preference —> behavior —> executable text files —> ask what to do. After that, double clicked arduino on the folder, selected run by terminal
- added user dialout like described in other answers.
Hope this answer helps you.
clayRay
6831 gold badge15 silver badges32 bronze badges
answered Oct 16, 2020 at 5:36
For a Windows solution I’ve found that disabling and re-enabling the Arduino in Device Manager, then restarting the Arduino IDE does the trick without fail (no unplugging necessary). Why this error occurs in the first place is beyond me. Perhaps the corresponding method for Linux will fix your problem.
Slightly related (not really), I had an issue with an AVR board a while back which was fixed by setting the device to a new COM port in the driver settings. Again, however you linux bunnies do it, I’m sure it’ll be cookies and cream.
Cheers brother,
answered Feb 20, 2014 at 18:26
I encountered the same issue. My solution was to install and use java7:
sudo apt-get install openjdk-7-jre
sudo update-alternatives --config java
Select the number referring to the java-7 path.
answered Apr 15, 2014 at 15:44
You probably don’t have the correct permissions. Try adding yourself to these groups.
sudo adduser username ttyl
sudo adduser username serial
sudo adduser username uucp
Then restart your system and check if you got added to the groups.
groups username
Good Luck!
answered Apr 17, 2014 at 1:04
Try to run as an administrator…
Run terminal, type sudo arduino, type your root password, and…
answered Jul 17, 2014 at 16:34
JunsaJunsa
71 bronze badge
0
Loading