UbuntuのCOM(シリアルポート)の複製/分割

UbuntuのCOM(シリアルポート)の複製/分割

私のシリアルポートにはすべてが正常です。 FTDIコンバータをコンピュータに接続し、COMポートを設定しました...
ln -s /dev/ttyUSB0 ~/wine/dosdevices/COM1

しかし、今このポートを「複製」したいと思います。

u-center GPSビジュアライゼーションツールを実行するためにワインを使用していて、Ubuntuを実行しているLinuxコンピュータがあります。
誰でも助けることができますか?

ベストアンサー1

以前の回答では共有できないと言っていましたが、その部分が間違っています。

Linux TTYポートは別のアプリケーションで開くことができますが(ロックを使用しないか確認しない場合)、バッファは1つしかないため、データを最初に読み取るアプリケーションで消費するため、データは使用できません。両方のプロセス。場合によってはこれは大丈夫で、場合によってはそうではありません。しかし、一般的に人々はこれを望んでいません。

TTYはユーザースペースで作成できるため、誰でもユーザースペースアプリケーションを作成して2つの仮想/偽のシリアルポートを作成し、それらを1つの物理シリアルポートに接続するのを防ぐことはできません。

ターミナルバス実行方法は次のとおりです(readmeにあります)。

Use case 1: Multiplexing serial input only or output only device attached to /dev/ttyS0, for use with multiple applications.
- step 1: create a new tty bus called /tmp/ttyS0mux:

    tty_bus -s /tmp/ttyS0mux &
    sleep 1


- step 2: connect the real device to the bus using tty_attach:

    tty_attach -s /tmp/ttyS0mux /dev/ttyS0 &
    sleep 1

- step 3: create 2 fake ttyS0 devices, attached to the bus:

    tty_fake -s /tmp/ttyS0mux /dev/ttyS0fake0 &
    tty_fake -s /tmp/ttyS0mux /dev/ttyS0fake1 &
    sleep 1

- step 4: start your application and force it to use the new serial device for input or output

    /bin/foo /dev/ttyS0fake0 &
    /bin/bar /dev/ttyS0fake1 &

&注:バイナリがブロックされており、バイナリが互いに干渉するのを防ぐためにいくつかの省電力モードが必要だったため、killコマンドを使用してすべてのtty_ *バイナリをバックグラウンドでフォークする必要がありました。

頑張ってください!

おすすめ記事