Luc*_*ini 5 arduino sublimetext2 ubuntu-12.04
我已经成功地在Sublime Text 2 上安装了stino ,但是当我尝试将我的代码上传到Arduino Uno时,输出如下:
上传/home/lucas/Arduino_Build/programa_teste/programa_teste.hex到Arduino的乌诺...
AVRDUDE:ser_open():无法打开设备"的/ dev/ttyACM0":权限被拒绝
的ioctl( "TIOCMGET"):不适当的IOCTL用于设备
[Stino - 上传时出错.]
我安装了Arduino IDE,它工作正常,只有Sublime Text无法上传代码.
好吧,正如 @Bibhas 所说,你的问题是/dev/ttyACM0权限错误,这与 Arduino 或 sublime text 无关。Linux 内核默认创建字符设备,无需用户权限。
但好消息是它可以改变!
\n\n快速而简单的解决方案是将当前用户添加到dialout组中:
sudo adduser YOU dialout\nRun Code Online (Sandbox Code Playgroud)\n\n其中 YOU 是您的用户名,然后注销并重新登录以使这些新权限传播到您的 shell 中。
\n\n暗示:
\n\n有一个稍微复杂一点的解决方案,就是创建一个 udev 规则,例如:
\n\n/etc/udev/rules.d/48-arduino.rules
\n\nSUBSYSTEM!="usb_device", ACTION!="add", GOTO="arduino_end"\nSUBSYSTEM=="tty", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", MODE="660", GROUP="arduino", SYMLINK+="arduino.leonardo"\nLABEL="arduino_end"\nRun Code Online (Sandbox Code Playgroud)\n\n它创建一个/dev/arduino由 arduino 组可读可写的设备,您需要创建该设备(或者您可以使用默认dialout组,这完全没问题):
addgroup arduino\nadduser YOU arduino\nRun Code Online (Sandbox Code Playgroud)\n\n然后重新加载您的规则:
\n\nsudo udevadm control --reload-rules\nRun Code Online (Sandbox Code Playgroud)\n\n第二个提示的好处是,当您拔下重新插入 arduino 时,您不会让它奇怪地更改设备编号,它将保留名称。如果您没有使用 arduino leonardo,您可以使用 lsusb 检查您的设备 idvendor/idproduct:
\n\n% lsusb \n\xe2\x80\xa6 \xe2\x86\x93\xe2\x86\x93\xe2\x86\x93\xe2\x86\x93 \xe2\x86\x93\xe2\x86\x93\xe2\x86\x93\xe2\x86\x93\nBus 006 Device 105: ID 2341:0036 Arduino SA \n\xe2\x80\xa6\nRun Code Online (Sandbox Code Playgroud)\n\n华泰
\n