串口终端>无法打开/dev/ttyS0:权限被拒绝

Joe*_*lds 28 serial-port

我在这个盒子上安装了 Windows XP,但它失败了。我认为它是损坏的操作系统,我尝试重新安装,但失败了。但是后来我尝试安装 Ubuntu,但无法从 USB 或 HD 运行它。

做了内存测试,发现我的 512MB记忆棒之一(有 2 个)失败了。我删除了坏的,并且能够安装 Ubuntu,但它很慢。

我试图为飓风桑迪快速设置我的分组无线电。下载串行端口终端并能够得到一些使用,但系统一直锁定。所以在它旁边安装了Xubuntu,计划第二天用完来为盒子获得RAM。把Xubuntu打开,现在我在串口终端上收到以下错误:

Cannot open /dev/ttyS0: Permission denied
Run Code Online (Sandbox Code Playgroud)

我希望能够使用串口终端,或者与 Xubuntu 等效的终端,这样我就可以使用我的 kpc3 数据包终端,连接到我电脑背面的 com 端口。

有任何想法吗?

Col*_*ing 49

tty 设备属于“拨出”组,我怀疑您不是该组的成员,因此被拒绝访问 /dev/ttyS0,因此您需要将自己添加到该组。

首先检查您是否是该组的成员:

groups ${USER}
Run Code Online (Sandbox Code Playgroud)

..这将列出您所属的所有组。如果您不属于拨号组,则将您自己添加到其中,例如:

sudo gpasswd --add ${USER} dialout
Run Code Online (Sandbox Code Playgroud)

然后,您需要注销并重新登录才能生效。然后看看它是否解决了你的问题。

  • @Orient 我遇到了同样的问题,这是因为未定义组“拨出”。运行 `newgrp dialout` 修复了这个问题。 (6认同)

小智 18

唯一对我有用的解决方案是:(每次我启动机器时)

sudo chmod 666 /dev/ttys0
Run Code Online (Sandbox Code Playgroud)

它确实需要在安装时修复。我在 15.10 并尝试了 16.04 LTS,那里仍然相同。看起来像这样一个简单的修复。

旧版本 10.04LTS 没有这个问题。

  • 这适用于 raspberry pi 3,但是当我重新启动时失去了权限。 (2认同)

小智 9

在 Ubuntu 18.04 上,我使用以下命令修复了这个问题:

sudo usermod -a -G tty $USER
sudo usermod -a -G dialout $USER
Run Code Online (Sandbox Code Playgroud)

在此之后,重新启动

如果仍有问题,请尝试使用以下命令进行调试:

strace -ff <COMMAND> > strace.txt 2>&1
Run Code Online (Sandbox Code Playgroud)

并在 strace 中寻找“denied”。


小智 8

你可以只使用这个命令:

sudo adduser $USER dialout
Run Code Online (Sandbox Code Playgroud)

这会将当前用户添加到拨出组。登录并退出即可生效。