我已经安装了 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"。请参阅这了解更多信息。