我想以编程方式在 Windows 10 上的 Ubuntu WSL 中发现 USB 串行设备插入的串行端口的名称。例如,Windows 中的 COM9 对应于 Ubuntu WSL 中的/dev/ttyS9。
从 Windows 10,
- 当手动搜索“端口(COM 和 LPT)”时,设备管理器会在 GUI 中显示设备
- Windows 命令提示实用程序通过“reg query”命令列出事件的串行设备。具体来说,
reg query \HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM
所以看起来这样做的方法是在 Bash 风格的命令中运行上述查询,假设 Windows 注册表对 Ubuntu WSL 甚至是可见的。是吗?
其他死胡同:
- 在 Linux 机器上,插入 USB 设备会在/var/log/something(系统日志?)中放入一条消息。在 Ubuntu WSL 上,我没有看到任何插入设备的日志文件更新,这可能意味着插件事件没有从 Windows 传递到 Ubuntu WSL。
- 通过“ls -l”查看设备/dev/ttyS* 上的日期/时间,插入 USB 设备的端口上没有时间更新。
- 实际上,USB 设备中有一个 FTDI 芯片。如果规则被识别,则可以将其放入“/etc/udev”,但我看不到支持 udev 的证据。
未探索:
- 'binfmt_misc' 运行 Windows 二进制文件。这值得追求吗?这不具有内核依赖性吗?当内核实际上是 Windows 内核时,这意味着什么?
最佳答案
如果您安装了正确的端口/串行驱动程序(检查设备管理器),则运行:
$(ls/dev/ttyS*) 中的 tty;做 stty -F $tty -a;完成
任何可识别的设备都不会显示...输入/输出错误
关于ubuntu - 从 Ubuntu WSL 查找事件的 COM 端口(或从 bash 探测设备注册表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57898382/