我有一个串行设备,我正在使用socat通过网络桥接从Linux机器到Windows机器上运行的WSL。在WSL方面,是否可以使socat创建的虚拟串行端口对WSL以外的Windows上运行的应用程序可见?
我有一个使用HW虚拟串行端口的解决方案,但我很好奇是否有一种方法可以完全从WSL进行。
答案 0 :(得分:1)
这些不是直接的解决方案,但我希望它们会有所帮助。
没有答案,但是有一个类似的问题。
Issue passing valid command-line arguments for socat
此后,似乎它由Insider Build 17063/17093的Build 17107支持。
AF_UNIX comes to Windows
不支持\不可用:
综上所述,以下Windows unix套接字功能当前在Windows unix套接字实现中不可用或不受支持。
- AF_UNIX数据报(SOCK_DGRAM)或序列包(SOCK_SEQPACKET)套接字类型。
- 辅助数据:Linux的unix套接字实现支持在套接字上传递辅助数据,例如传递文件描述符(
SCM_RIGHTS
)或凭据('SCM_CREDENTIALS`)。 Windows unix套接字实现中不支持辅助数据。- 自动绑定功能(有关详细信息,请参见“ sockaddr_un”部分)。
- 套接字对:Winsock 2.0中不支持套接字对套接字API。
Windows/WSL Interop with AF_UNIX
要求与限制:
- WSL Unix套接字只能与Win32 Unix套接字或WSL Unix套接字通信,而不能同时与两者通信。例如,WSL Unix套接字服务器只能接受来自WSL Unix套接字或Win32 Unix套接字的连接。那么,如何确定是哪一个呢?它基于套接字绑定到或连接到的路径,如
bind
或connect
系统调用中所指定。如果Unix套接字路径是DrvFS路径(即,您在WSL中安装的系统卷,例如:/ mnt / c,/ mnt / d等),则它只能与Windows Unix套接字通信。如果该路径是LxFS路径(即WSL中Linux安装的卷,例如:/ home,/ var,/ usr等),则它只能与WSL Unix套接字通信。- 要使WSL Unix套接字与Windows Unix套接字建立连接,创建套接字后的第一个操作应该是绑定或连接。套接字上的任何其他操作都将使其变为专有的WSL Unix套接字,该套接字只能与其他WSL Unix套接字通信。
- 由于Windows Unix套接字实现当前不支持传递辅助数据,例如
SCM_RIGHTS
等,因此通过Unix套接字进行Win32 <-> WSL互操作也将不支持辅助数据。
socat not working complaining about tsetaddr #2552 Closed
您所说的可能是硬件虚拟串行端口。
COM Port Access in WSL #1929 Closed
此后,套接字关系似乎有各种修改。
Release Notes for Windows Subsystem for Linux
使用socat的其他程序似乎也可以运行,但有些似乎不稳定。
WSLから pageant を利用する
benpye/wsl-ssh-pageant
Use an ssh-agent in WSL with your ssh setup from windows 10
How to use GPG with YubiKey (bonus: WSL)