我使用的应用程序需要通过usb串行电缆进行通信,使用/dev/ttyUSB0 0。
/dev/ttyUSB0 0和进程所有者都在组拨号中,端口上的权限被正确设置(据我所知)。
但是,只有在更改端口:sudo chmod 666 /dev/ttyUSB0的权限时,我的应用程序才能工作。我不想每次都用手。
应用程序是Node-RED。我用它与三菱PLC (不是Arduino)交换数据。getent group dialout确实显示了正确的用户。
我尝试过的其他事情:重新启动后,通信不会自动恢复。动力循环的PLC没有帮助。然而,当我重新启动节点红色进程(node-red-restart)时,通信将神奇地恢复.我怀疑第一个节点红色进程可能有不同的所有者,但事实并非如此,我检查了一下。
我不再确定这是一个权限问题,但仍然存在一个问题.
$ /bin/ls -l $( type -p node-red )
lrwxrwxrwx 1 root root 35 aug 17 15:09 /usr/bin/node-red -> ../lib/node_modules/node-red/red.js
$ id
uid=1000(jw) gid=1000(jw) groups=1000(jw),4(adm),20(dialout),24(cdrom),27(sudo),30(dip),46(plugdev),4120(lpadmin),130(lxd),131(sambashare)
$ getent group dialout
dialout:x:20:jw
$ ls -la /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 sep 26 15:17 /dev/ttyUSB0
$ ps aux | grep node-red
jw 1383 10.1 6.2 896816 62012 ? RNsl sep25 6:02 node-red
jw 2154 0.0 0.2 9040 2492 pts/0 S+ 00:51 0:00 grep --color=auto node-red发布于 2020-09-25 22:27:53
你用的是arduino,或者其他类似的设备。很可能,您需要用户拥有拨号权限,而不是设备。授予用户使用此命令sudo usermod -a -G dialout $USER的权限
您可能还想知道关于arduino stackexchange的情况
发布于 2020-09-28 11:39:10
因为我不确定这是Linux问题还是节点红问题,所以我在他们的论坛上问了同样的问题。如果我在启动时将节点红启动延迟一段时间,那么我的问题就解决了。
有关描述,请遵循链接
https://askubuntu.com/questions/1277749
复制相似问题