web-dev-qa-db-ja.com

Windows 10でbashを使用してシリアルポートを特定できない

コンピューターのシリアルポートから読み取ってファイルに書き込むことができるようにしたいと考えています。/devの内部(Windows 10でBash Shellを使用)でUSBシリアルポートが見つからないようです(tty、tty0、tty1があり、ttyについてはこれで終わりです)。

それは別の場所にありますか、それともbashシェルからアクセスできますか?この時点でアクセスする方法を知りたいだけです。

デバイスマネージャで、USBを接続すると、COM4がポートの下に表示されます。また、Windowsコマンドプロンプトでwmic path Win32_SerialPortコマンドを実行すると、「使用可能なインスタンスがありません」と表示されました。したがって、シリアルポートを表示する方法と、特定の状況でシリアルポートが表示されない理由について、私は非常に混乱しています。

シリアルポートがどのように機能するか、特にUSBでどのように機能するかを明確にしていただければ幸いです。

14
Marco Bruscia

まもなく、WindowsはLinux用のWindowsサブシステム(WSL)でのシリアルを正式にサポートします。 COM_n_ポートは/dev/ttyS_n_で利用可能になります

マッピング:

COM1 >> /dev/ttyS0
COM2 >> /dev/ttyS1
...
COM192 >> /dev/ttyS191

良い機能説明はここにあります:

https://blogs.msdn.Microsoft.com/wsl/2017/04/14/serial-support-on-the-windows-subsystem-for-linux/

注:現時点では、この機能はインサイダービルドでのみ使用できます。

6
Zak

私は同じ問題を抱えています。どうやら、Windows(BoUoW)上のUbuntuのBashでシリアルポートを使用することはできません。 socatを使用して、基本的な読み取りおよび書き込み操作を実行できます。 Cygwinを使用して、シリアルポートを認識するsocatサーバーを作成しました。 DTRピンとRTSピンに問題がありました。

Socatを使用すると、仮想シリアルポートを作成したり、TCP経由でシリアルポートを転送したりできます。 (そしてはるかに。)

Cygwinでは、シリアルポートは/ dev /の下にttyS *としてリストされています。たとえば、COM3は/ dev/ttyS2で、COM4は/ dev/ttyS3です。

Cygwinでサーバーを起動します

socat -d -d -d TCP4-LISTEN:2022,reuseaddr,fork /dev/ttyS3

BoUoWでクライアントを起動します

socat PTY,link=/tmp/vmodem0 TCP:localhost:2022

これにより、BoUoWの/ tmp/vmodem0に、マシンのCOM4に接続された仮想シリアルポートが作成されます。

4
HYK