56

我正在运行 Debian 7 (Linux Crunchbang) 并想使用 Arduino IDE 对我的 Arduino UNO 进行编程。为此,我安装了包arduino。当我启动 Arduino 时,我被要求将我的用户添加到dialout组中。所以我做了sudo usermod -a -G dialout <my-username>

但是,当我使用命令行启动 Arduino IDE 时arduino,IDE 会打开,但我无法将程序加载到 Arduino。错误消息是“未找到串行端口 COM1。您是否从工具 > 串行端口菜单中选择了正确的端口?” 当我去选择串行端口时,选项“工具>串行端口”是灰色的。

我认为这是因为我没有授予我的 USB 端口(ttyACM0)的读写权限。所以我做了,sudo chmod a+rw /dev/ttyACM0但该选项仍然是灰色的。

4

17 回答 17

44

chdmod 适用于我的 debian (proxmox):

# chmod a+rw /dev/ttyACM0

安装 arduino IDE:

# apt-get install arduino arduino-core arduino-mk

将用户添加到拨出组:

# gpasswd -a user dialout

重新启动 Linux。

尝试使用 File > Examples > 01.Basic > Blink,将 2 个延迟更改为 delay(60),然后单击上传按钮以在 arduino 上进行测试,led 必须更快地闪烁。;)

于 2013-12-15T11:26:58.657 回答
7

sudo arduino 是我让 Arduino IDE 在 ubuntu 12.04 (64) 上工作(串行端口和上传)的唯一方法,事实上,在我的情况下,要使用的串行端口也是 /dev/ttyACM0。其他两个(ttyS4 和 ttyS0)在尝试上传到 Uno 时出错。玩得开心

于 2014-07-25T20:08:14.700 回答
3

尝试断开 USB 并将其重新插入。它只是灰显,因为 ide 找不到 uno 已插入的任何 com 端口。

另一种解决方案是尝试所有的 com 端口,看看哪个有效。

最后,如果一切都失败了,请尝试重新启动您的计算机。

于 2013-10-12T05:01:18.423 回答
3

关闭 arduino IDE 的所有实例 open ~/.arduino/preferences.txt 并查找以下行:

serial.port=<not your port>

并将其更改为您的端口:

serial.port=/dev/ttyACM0

您可能需要注销才能生效

于 2016-02-21T17:20:34.853 回答
2

在文本编辑器中打开 $arduinoHome/arduino 并修改最后一个字符串:

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base "$@"

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dgnu.io.rxtx.SerialPorts="/dev/ttyACMN" processing.app.Base "$@"

(将属性 gnu.io.rxtx.SerialPorts 设置为 /dev/ttyACMN,其中 ttyACMN 是您使用的串行端口的名称)

它可能会临时修复 rxtx 库中的错误。帮助我用 arduino1.0.5 IDE 上传草图。

也许会对某人有所帮助。

于 2014-07-17T09:06:49.823 回答
2

在我的情况下,这被证明是一个糟糕的 USB 集线器。

'lsusb' 命令可用于显示所有已识别的设备。如果未插入设备,则设置速度的选项将被禁用。

如果您的设备被识别,lsusb 命令应该输出类似于字符串“Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)”的内容。我的是一个 RFDuino

于 2016-02-16T23:41:59.987 回答
2

就我而言,我通过卸载我apt-get通过官方网站安装的 Arduino 版本解决了这个问题。

使用最新版本的 Arduino,我没有遇到 Ubuntu 18.04 上描述的问题。

于 2019-03-02T18:19:32.300 回答
1

所以我做了sudo usermod -a -G dialout <my-username>

将自己添加到组后,您需要注销,以便应用这些更改。只需注销并再次登录,菜单应该可用。

于 2015-03-16T00:50:22.430 回答
1

我在 ubuntu 18.04 中解决了以下与串口相关的问题,如下所示:

问题 1:无法打开 /dev/ttyACM0:权限被拒绝
解决方案:使用此终端命令授予对串行端口的读/写权限 ---> sudo chmod a+rw /dev/ttyACM0 此处将 tty 端口替换为您各自的 ubuntu 端口。

问题 2:无法打开 /dev/ttyACM0(端口忙) 解决方案:当串口忙或已被占用时会出现此问题。所以用命令 ---> 杀死繁忙的串口fuser -k /dev/ttyACM0。此处将 tty 端口替换为您各自的 ubuntu 端口。

问题 3:/dev/ttyACM0 的板不可用 解决方案:在这种情况下,工具菜单中的串行端口将显示为灰色。我为此搜索了很多,但没有一个解决方案对我有用。Atlast 我尝试了不同的 arduino 板和 USB 连接器,它对我有用。所以,如果你有旧的 arduino 板(可以使用所需的驱动程序来解决)或有缺陷的 arduino 板,那么只会出现这个问题。

于 2021-02-27T17:01:09.377 回答
1

为 java 安装 rx-tx lib 在终端中运行此命令

sudo apt-get install librxtx-java -y

输出端口

sudo usermod -aG dialout $USER 
sudo apt-get install gnome-system-tools 

帮助 regconize USB 设备

于 2019-02-22T18:42:42.117 回答
0

我遇到了同样的问题,我为此苦苦挣扎了几天,阅读了所有的博客文章,观看了视频,最后在我更换了 uno board之后,它运行得非常好。但在我这样做之前,我尝试了一些事情,我认为这也有效果。

  • 将文件提取到 opt 文件夹,更改首选项 --> 行为 --> 可执行文本文件 --> 询问要做什么。之后,双击文件夹上的arduino,选择由终端运行
  • 添加了用户拨出,如其他答案中所述。

希望这个答案对您有所帮助。

于 2020-10-16T05:36:45.603 回答
0

以下步骤安装 IDE 并删除在 Ubuntu 中java.lang.NullPointerException thrown while loading gnu.io.RXTXCommDriver使用命令安装 arduino 通常附带的错误。apt-get

安装 IDE

sudo apt-get install arduino

用于删除 IDE 中的 java 错误

sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-set-default

这也显示了由于错误而灰显的串行端口。

于 2019-04-02T19:28:21.207 回答
0

与菲利普柯克布莱德相同的评论。这不是权限问题,但使用从他们网站下载的 Arduino IDE 解决了我的问题。谢谢!迈克尔

于 2019-05-03T17:29:56.497 回答
-1

对于 Windows 解决方案,我发现在设备管理器中禁用和重新启用 Arduino,然后重新启动 Arduino IDE 可以成功(无需拔下电源)。为什么这个错误首先发生在我之外。也许Linux的相应方法可以解决您的问题。

有点相关(不是真的),不久前我遇到了一个 AVR 板的问题,通过在驱动程序设置中将设备设置为新的 COM 端口来解决这个问题。再说一次,不管你们 linux 兔子怎么做,我敢肯定它会是饼干和奶油。

兄弟加油

于 2014-02-20T18:26:27.017 回答
-1

尝试以管理员身份运行...运行终端,输入 sudo arduino,输入您的 root 密码,然后... :)

于 2014-07-17T16:34:24.263 回答
-1

我遇到了同样的问题。我的解决方案是安装和使用 java7:

sudo apt-get install openjdk-7-jre
sudo update-alternatives --config java

选择引用 java-7 路径的编号。

于 2014-04-15T15:44:05.303 回答
-1

您可能没有正确的权限。尝试将自己添加到这些组中。

sudo adduser username ttyl
sudo adduser username serial
sudo adduser username uucp

然后重新启动系统并检查您是否已添加到组中。

groups username

祝你好运!

于 2014-04-17T01:04:25.163 回答