【发布时间】:2019-09-07 10:57:22
【问题描述】:
出于测试目的,我想使用 socat 创建虚拟串行端口以在我的 Python 程序中使用。
我的成功有限,但在 socat 的众多选项中一次又一次地挣扎。我在 Ubuntu Linux 中使用这个命令:
sudo socat -d -d pty,b9600,raw,echo=0,link=/dev/ttyS90 pty,b9600,raw,echo=0,link=/dev/ttyS91
它应该创建像 /dev/pts/2 和 4 这样的虚拟端口,并将它们链接到 /dev/ttyS90 和 *91。如果没有 sudo,它就无法工作(虽然普通用户在拨出组中,但由于无法取消*90、*91 端口的链接而失败)。
但是,正如您所见,“lrwxrwxrwx”权限看起来就像每个人都可以读/写。但是,事实并非如此:除非我是 root,否则我无法使用这些设备。文件管理器 (=Nemo) 给出以下结果:
权限明显不同。嗯?
发出“sudo chmod 777 /dev/ttyS90”(*91 相同)后,终端输出没有任何变化,因为它已经显示了 777 权限,但不正确,但 Nemo 输出更改为
现在我可以作为普通用户使用这些端口了!怎么会?我是不是做错了什么?
还有一个 socat 问题:上面的 socat 命令给出了一个 8 位的无奇偶校验连接,但我真的需要一个 7 位的偶校验连接。我试图通过杂耍许多选项中的一些来实现这一点都失败了。我搞不清楚了;有什么见解吗?
【问题讨论】: