我在 Ubuntu 中使用 Arduino IDE,但串行端口出现问题。它在过去一直有效,但由于可能不必要的原因,我觉得需要将某些文件的所有权从 root 所有权更改为我的用户所有权。
这使 IDE 正常工作,但我无法使用正确的串行端口。在 dev 文件夹中,我需要的端口被列为权限 166。有人(不再在该区域帮助我)将权限交换为 666,这使得它一切正常。
但是,一旦我重新启动计算机,它就会恢复,如果我现在尝试使用以下命令:
sudo chmod 666 ttyACM0
Run Code Online (Sandbox Code Playgroud)
没发生什么事。没有错误消息,但也没有权限更改。
我怎样才能改变它,我怎样才能让它永久改变。
如果这个问题过于简单或不清楚,我深表歉意,我是一个 ubuntu 菜鸟,我不会吝啬反馈!
我的操作系统是 Ubuntu 18.04,arduino 一直工作到现在。
尽管有一些解决方案,但似乎没有一个对我有用。
然后我在 arduino Stack Exchange 上尝试了这个,它应该在第一个解决方案没有的情况下工作。答案是我们应该在/etc/udev/ruled.d/
路径上创建一些规则。
但他们都没有为我工作。
我还在 Windows 10 中测试了 arduino,看看它是否是硬件问题,但它运行良好。
有没有人对如何解决这个问题有任何其他想法?
更新:
这是ll /dev/ttyACM0
运行教程命令后的输出:
crw-rw-rw- 1 root dialout 166, 0 Jul 15 05:41 /dev/ttyACM0
Run Code Online (Sandbox Code Playgroud)更新 2:
我创建了一个脚本来解决这个问题:https : //github.com/sergiomafra/iniarduino
我有一个 Arduino UNO,我需要它来使用 Ubuntu。
有人可以向我解释在 Ubuntu 上安装 IDE 所需的步骤吗?
我买了一个Arduino Uno并安装了 Arduino IDE 1.6.5。但是当我想将草图上传到 Arduino 板时,我收到此错误:
avrdude: ser_open(): 无法打开设备 "COM1": 没有这样的文件或目录
ioctl("TIOCMGET"): 设备的 ioctl 不合适
我正在使用 Ubuntu 14.04 (Trusty Tahr) LTS。
hakan@hakan-pc:~$ ls -l /dev/ttyUSB0
ls: /dev/ttyUSB0'e eri?ilemedi: Böyle bir dosya ya da dizin yok(In English: No such a file like this)
hakan@hakan-pc:~$ ls -l /dev/ttyS0
crw-rw-rw- 1 root dialout 4, 64 Tem 8 22:40 /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)
当 Arduino 插入计算机时,dmesg | tail
显示:
hakan@hakan-pc:~$ dmesg | tail
[ 21.784795] sound hdaudioC1D3: hda-codec: out of range cmd 3:5:707:ffffffff …
Run Code Online (Sandbox Code Playgroud) 我是 Ubuntu 的新手(我喜欢它)。我想将代码刻录到我的 Arduino Uno。上传代码时,有一条错误消息说,Serial Port COM1 not fount found. Did you select the correct one from tools -> serial port menu?
。现在,访问工具,我无法选择串口,因为它被禁用了。我附上了它的外观截图。我在 Windows 中做过类似的事情。如何在 Ubuntu 上找到串口?
正如我们所知,Arduino 有非官方的 Snap,它只有在安装为经典时才能访问串行端口(但未在snap find
输出中指明):
$ snap find arduino
Name Version Developer Notes Summary
arduino-mhall119 1.8.5 mhall119 - Arduino IDE
Run Code Online (Sandbox Code Playgroud)
封装 arduino
Run Code Online (Sandbox Code Playgroud)trusty (14.04LTS) (electronics): AVR development board IDE and built-in libraries [universe] 1:1.0.5+dfsg2-2: all xenial (16.04LTS) (electronics): AVR development board IDE and built-in libraries [universe] 2:1.0.5+dfsg2-4: all artful (electronics): AVR development board IDE and built-in libraries [universe] 2:1.0.5+dfsg2-4.1: all bionic (electronics): AVR development board IDE and built-in libraries [universe] …
我安装了 Ubuntu 18.04 LTS。
我安装了 Arduino IDE v1.8.5
snap install arduino-mhall119
Run Code Online (Sandbox Code Playgroud)
我已将我的用户添加到拨出组并重新启动:
sudo usermod -a -G dialout $USER
$ groups
username adm dialout cdrom sudo dip plugdev lpadmin sambashare
Run Code Online (Sandbox Code Playgroud)
我将 Arduino Nano 连接到笔记本电脑,在端口/dev/ttyUSB0 ( ch341-uart )上检测到它。
$ ls /dev/ttyUSB0 -al
crw-rw---- 1 root dialout 188, 0 ??? 13 11:59 /dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)
我尝试上传最简单的Blink草图并在终端中收到以下错误:
$ arduino-mhall119.arduino
avrdude: ser_open(): can't open device "/dev/ttyUSB0": Permission denied
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.**
Run Code Online (Sandbox Code Playgroud)
我还安装了arduino
1.8.5 和 umake - 它可以以通常的方式访问串行端口。
注意:我们在这里已经有 …
尝试通过 USB 串行连接连接到 Arduino 时出现此错误。我使用的是 Arduino IDE 1.0.1 和 64 位版本的 Ubuntu 12.04。自 10.04 以来,这一直是一个反复出现的问题,并且也发生在其他一些使用串行连接的程序中。我使用 Python 或 Screen 从 Arduino 获取串行数据没有问题。否则 Arduino IDE 似乎工作得很好。
processing.app.SerialException: Error opening serial port '/dev/ttyACM0'.
at processing.app.Serial.<init>(Serial.java:178)
at processing.app.Serial.<init>(Serial.java:92)
at processing.app.SerialMonitor.openSerialPort(SerialMonitor.java:207)
at processing.app.Editor.handleSerial(Editor.java:2447)
at processing.app.EditorToolbar.mousePressed(EditorToolbar.java:353)
at java.awt.Component.processMouseEvent(Component.java:6386)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3268)
at java.awt.Component.processEvent(Component.java:6154)
at java.awt.Container.processEvent(Container.java:2045)
at java.awt.Component.dispatchEventImpl(Component.java:4750)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4294)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
at java.awt.Container.dispatchEventImpl(Container.java:2089)
at java.awt.Window.dispatchEventImpl(Window.java:2518)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672)
at java.awt.EventQueue.access$400(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:631)
at java.awt.EventQueue$2.run(EventQueue.java:629)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at …
Run Code Online (Sandbox Code Playgroud) 全新安装 Ubuntu 后,我尝试使用 Arduino IDE v1.8.16 上传草图(使用.deb
从网络下载的文件安装)。
An error occurred while uploading the sketch avrdude: ser_open(): can't open device "/dev/ttyACM0": Device or resource busy
在新的 Linux 机器上首次安装 Arduino IDE 后,需要成为 : 的成员,sudo usermod -a -G dialout $USER
并注销、登录,这并没有按预期改变。
所以我尝试chmod
连接端口/dev/ttyUSB0
,这并没有改变错误消息(顺便说一句,在 USB1 和 ACM0 上我也得到了相同的输出 - 当尝试上传到时Nano
)。
现在我得到这个错误:
esptool.py v3.0
Serial port /dev/ttyUSB0
Connecting........_____....._____....._____....._____....._____....._____....._____
Traceback (most recent call last):
File "/home/guy/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/upload.py", line 66, in <module>
esptool.main(cmdline)
File "/home/guy/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 3552, in main
esp.connect(args.before, …
Run Code Online (Sandbox Code Playgroud) 对于亲密的选民:似乎是个骗子,但不完全是,至少不是建议的人:在链接的问题中,可以将命令安全地添加到 sudoers 文件中。在 IDE 的情况下,这是一个坏主意。
所以我从软件中心安装了arduino IDE。事情就是这样,我需要从终端运行命令“sudo arduino”,以便 arduino IDE 为我正常工作。不要误会我的意思,每当我从普通图标运行 arduino 时,它也能正常工作。如果我不使用“sudo arduino”命令打开我的 IDE(不知道为什么),我只是使用了一个无法正确编译的特定库。
由于我需要始终打开终端,我想知道是否可以创建一个 .desktop 文件(或者一个 .sh 也许?),我只需单击即可运行“sudo arduino”IDE。如果可能的话,我想避免每次都打开终端。
提前致谢!
更新 1 ---------------------------------------
我对在从终端启动 IDE 时避免使用 sudo 命令不感兴趣(所以不要写“sudo arduion”来写“arduino”)。我想要的是避免一起使用终端,并在我的桌面上有一个图标,单击该图标将运行 arduino IDE,类似于进入终端并编写“sudo arduino”。