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

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

我在这台机器上安装了 Windows XP,但失败了。我以为是操作系统损坏了,所以尝试重新安装,但失败了。但后来我尝试安装 Ubuntu,却无法从 USB 或硬盘上运行它。

是否记忆测试发现我的 512MB 内存条(共有 2 个)坏了。我移除了坏的内存条,然后能够安装 Ubuntu,但速度很慢。

我试图快速设置我的分组无线电以应对飓风桑迪。下载了串行端口终端并能够使用,但系统一直锁定。因此在它旁边安装了 Xubuntu,计划第二天用完内存来为盒子安装内存。安装 Xubuntu 后,我收到以下串行端口终端错误:

Cannot open /dev/ttyS0: Permission denied

我希望能够使用串行端口终端,或与 Xubuntu 等效的终端,以便我可以使用我的 kpc3 分组终端,连接到我计算机背面的 com 端口。

有任何想法吗?

答案1

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

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

groups ${USER}

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

sudo gpasswd --add ${USER} dialout

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

答案2

对我来说唯一可行的解​​决方案是:(每次启动机器时)

sudo chmod 666 /dev/ttys0

确实需要在安装时修复。我使用的是 15.10,并尝试过 16.04 LTS,情况仍然相同。似乎修复起来很简单。

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

答案3

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

sudo usermod -a -G tty $USER
sudo usermod -a -G dialout $USER

此后,重新启动

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

strace -ff <COMMAND> > strace.txt 2>&1

并在 strace 中寻找“denied”。

答案4

浏览了各种论坛,发现这是一个与权限相关的错误。下面是我解决这个问题的方法(详细版)。您将需要安装cusetserial软件包。

在三个终端选项卡中,监控来自的输出# tail -f /var/log/messages 这就是我们如何知道是否有/dev/ttyUSB0

在第二个选项卡中,只需循环运行 ls -l此设备以查看其权限,其组 ID 为“dialout”。这是关键点。出于某种原因,您的用户必须使用此 GID 来执行操作cu,因此...

在第三个选项卡中,以 root 身份执行了此操作# newgrp dialout(与 dialout 的 GID 相对应)。使用 # touch /tmp/anything... 测试ls -l此文件显示它是由 root 使用 dialout 组创建的,因此我们已准备好 ...# cu -l /dev/ttyUSB0 在我的情况下,我需要再次按回车键才能看到预期的提示,在其他情况下可能需要指定速度。

相关内容