Arduino 仅在 root 模式下工作

Arduino 仅在 root 模式下工作

我已经安装了 Arduino,但正如标题所说,我只能使用 上传sudo。是的,我的用户是该dialout组的一部分,所以这很奇怪。

Arduino 之前在我的系统上确实运行过。可能出了什么问题?

输出ls -l

ls -l /dev/ttyUSB*
crw-rw-rw- 1 root dialout 188, 0 apr  2 09:23 /dev/ttyUSB0

答案1

ls正如你的命令输出所示,/dev/ttyUSB0所有类似的 tty 设备文件都属于dialout该组。

crw-rw-rw- 1 root dialout 188, 0 apr 2 09:23 /dev/ttyUSB0

因此您需要通过usemod命令将自己添加到该组:

sudo usermod -a -G dialout $USER

更改需要注销并重新登录。这是一个非常常见的解决方案,我自己将它用于所有需要串行控制台的开发板。


另一种方法是设置一个udev脚本,在文件连接时更改其所有权,但在很多情况下,更改用户组是首选方法

具体来说,您应该检查输出dmesg以获取有关 arduino 的供应商和产品 ID 的信息。然后/etc/udev/rules.d/您可以设置50-arduino.rules脚本。例如,这是我用于 Altera 的 FPGA 板的示例:

$ cat /etc/udev/rules.d/51-usbblaster.rules                                                                              
# USB-Blaster II
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="*", \
ENV{DEVTYPE}=="usb_device",MODE="0666"

"09fb" 用您的 Arduino 供应商 ID替换。ATTR部分可以保留相同。您可以chown使用RUN参数运行。例如,使用“RUN=+"/path/to/chmod_script.sh root:myuser %k"。请参阅了解更多信息。

相关内容