【问题标题】:Can´t upload code to Arduino Uno using stino and Ubuntu 12.04 (Precise Pangolin)无法使用 stino 和 Ubuntu 12.04 (Precise Pangolin) 将代码上传到 Arduino Uno
【发布时间】:2013-06-05 20:34:58
【问题描述】:

我已经成功在Sublime Text 2 上安装了stino,但是当我尝试将我的代码上传到Arduino Uno 时,输出如下:

正在上传 /home/lucas/Arduino_Build/programa_teste/programa_teste.hex 到 Arduino Uno...
avrdude:ser_open():无法打开设备“/dev/ttyACM0”:权限被拒绝
ioctl("TIOCMGET"): 不适合设备的 ioctl
[Stino - 上传时出错。]

我已经安装了 Arduino IDE,它工作正常,只有 Sublime Text 不能上传代码。

【问题讨论】:

  • 您是否使用sudo 运行Arduino IDE?权限被拒绝意味着它可能需要管理员权限。
  • @Bibhas - 使用 sudo 运行 arduino 编辑器来处理权限问题是非常错误的解决方案。这类似于通过将汽车着火来解决汽车轮胎的问题,并在发现它时假装它就是那样。 OP 需要正确解决权限问题,而不仅仅是在上面贴上安全漏洞。

标签: arduino sublimetext2 ubuntu-12.04


【解决方案1】:

好吧,正如@Bibhas 所说,您的问题是/dev/ttyACM0 拥有错误的权限,这与Arduino 或崇高文本无关。默认情况下,是 linux 内核在没有用户权限的情况下创建字符设备。

但好在它可以改变!

快速简便的解决方案是将您当前的用户添加到dialout 组:

sudo adduser YOU dialout

其中 YOU 是您的用户名,然后注销并重新登录以将这些新权限传播到您的 shell。

提示:

有一个更复杂的解决方案,是创建一个udev规则,例如:

/etc/udev/rules.d/48-arduino.rules

SUBSYSTEM!="usb_device", ACTION!="add", GOTO="arduino_end"
SUBSYSTEM=="tty", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", MODE="660", GROUP="arduino", SYMLINK+="arduino.leonardo"
LABEL="arduino_end"

它创建了一个您需要创建的 arduino 组可读和可写的/dev/arduino 设备(或者您可以使用默认的dialout 组,这非常好):

addgroup arduino
adduser YOU arduino

然后重新加载您的规则:

sudo udevadm control --reload-rules

第二个提示的好处是,当您拔下 arduino 时重新插入您的 arduino,您不会让它奇怪地更改设备编号,它会保留名称。如果您没有使用 arduino leonardo,您可以使用 lsusb 检查您的设备 idvendor/idproduct:

% lsusb                
…                      ↓↓↓↓ ↓↓↓↓
Bus 006 Device 105: ID 2341:0036 Arduino SA 
…

HTH

【讨论】:

  • 谢谢@zmo,你的第一条建议对我有用!
  • 不客气,但您绝对应该尝试第二个建议,因为它可以避免您在连接设备时遇到麻烦!
【解决方案2】:

编码Troubleshooting doc,我用

sudo usermod -a -G tty yourUserName
sudo usermod -a -G dialout yourUserName

解决我的问题。

【讨论】:

    【解决方案3】:

    我今天也遇到了同样的问题,不可思议的事情发生了。 USB 电缆为 Arduino 供电,但不允许通信。我们的解决方案是更换 USB 数据线,然后一切正常

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多