Ошибка при открытии последовательного порта dev ttyacm0

Моя ОС — 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

В сочетании со всеми сообщениями, которые я прочитал, это то, что я сделал, чтобы решить эту проблему, следуя указаниям из этой темы.

В новом терминале я набрал следующее, как показано ниже.

https://ask-ubuntu.ru/images/5c39e76298639ac790d3dab9915f32a20157efc4.png

Обратите внимание, что 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

Ха Я новичок и сделал несколько ошибок)) Не делай так, как я.

  1. Во-первых, в моей книге было плохое изображение схемы подключения светодиода. Нашел новый и переподключил провода. Теперь они подключены правильно.
  2. Потом подключил арудино к компьютеру (это важно).
  3. Затем я выполнил следующие команды:

    • 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. Что вам нужно сделать, так это.

  1. Перейдите в IDE arduino в магазине программного обеспечения Ubuntu
  2. нажмите разрешения
  3. установить доступ к 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

У меня есть решение.

  1. Найдите свой порт, к которому подключен Arduino (например, мой был
    /dev/ttyUSB0). Вы можете найти это в сообщении об ошибке в Arduino IDE.

  2. Откройте терминал (Ctrl+Alt+T).

  3. В терминале запустите:

    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.

Braiam's user avatar

asked Oct 11, 2013 at 15:58

Moonlit's user avatar

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. ;)

Braiam's user avatar

answered Dec 15, 2013 at 11:26

user3104260's user avatar

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

user3878345's user avatar

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

user2375589's user avatar

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

chaggy's user avatar

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

deguez07's user avatar

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

Sild's user avatar

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

Jay's user avatar

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 Kirkbride's user avatar

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

Braiam's user avatar

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

Rakibul Hasan's user avatar

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

Rahul's user avatar

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

Michael Opdenacker's user avatar

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's user avatar

Zoe

27.1k21 gold badges119 silver badges148 bronze badges

answered Apr 2, 2019 at 19:28

Sheetal gupta's user avatar

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's user avatar

clayRay

6831 gold badge15 silver badges32 bronze badges

answered Oct 16, 2020 at 5:36

Manodhya Opallage's user avatar

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

Eddie Spaghetti's user avatar

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

Tones29's user avatar

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

Numbers San's user avatar

Try to run as an administrator…
Run terminal, type sudo arduino, type your root password, and… :)

answered Jul 17, 2014 at 16:34

Junsa's user avatar

JunsaJunsa

71 bronze badge

0

Arduino Forum

Loading

Like this post? Please share to your friends:
  • Ошибка при объединении разделов жесткого диска
  • Ошибка при открытии папок
  • Ошибка при обновлении варфейс
  • Ошибка при обращении к серверу обновления garmin
  • Ошибка при открытии папки crc