tty0ttyを使用して仮想シリアルポート(Linuxヌルモデムエミュレーター)をセットアップする


9

Linuxで仮想シリアルポートエミュレータをセットアップしたいのですが。再起動するたびにポートを使用できるように、ポートを永続的にしたいです。このようにその目的でsocatを使用してました、

socat -d -d pty,raw,echo=0 pty,raw,echo=0

しかし、テストプログラムでこれらのVSP(仮想シリアルポート)を使用しているときに、ポートビジーの問題がよく発生します。また、永続的/永続的なVSPを作成するのは難しいと思います。目的のためにtty0ttyを試してみたいと思います。ただし、ドキュメントやそのためのガイドの使用方法はほとんどありません。誰でもこれについて教えてくれますか?socatにも解決策がある場合は、コメントしてください。

回答:


13

取り付け

  1. 次のいずれかのソースからtty0ttyパッケージをダウンロードします。

  2. それを抽出する

    • tar xf tty0tty-1.2.tgz
  3. 提供されたソースからカーネルモジュールをビルドする
    • cd tty0tty-1.2/module
    • make
  4. 新しいカーネルモジュールをカーネルモジュールディレクトリにコピーします。
    • sudo cp tty0tty.ko /lib/modules/$(uname -r)/kernel/drivers/misc/
  5. モジュールをロードする
    • sudo depmod
    • sudo modprobe tty0tty
    • / dev /に新しいシリアルポートが表示されるはずです(ls /dev/tnt*
  6. 新しいシリアルポートに適切なアクセス許可を与える
    • sudo chmod 666 /dev/tnt*

これで、シリアルポートに/dev/tnt0(1、2、3、4など)としてアクセスできます。連続するポートは相互接続されていることに注意してください。たとえば、/ dev / tnt0と/ dev / tnt1は、直接ケーブルを使用しているかのように接続されます。

ブート全体で持続

/ etc / modules(Debian)または/etc/modules.confファイルを編集します

nano /etc/modules

次の行を追加します。

tty0tty

警告

この方法では、モジュールがカーネルの更新後も保持されないことに注意してください。カーネルを更新する場合は、tty0ttyを再度ビルドして、プロセスを繰り返してください。

カーネルを更新systemctl --failedするたびにモジュールを移動しないと、サービスがsystemd-modules-load.service終了した " failed" が返されます。またjournalctl -xe | grep "Failed to find"


1
おかげで、それはかなりうまくいきました。これを他の場所で見つけることができませんでした。
ユバ2015

1
:) お役に立てて嬉しいです!
Ruraj 2015

tty0ttyMac OSもサポートしていますか?
Foad

あなたはそれをビルドしてカーネルモジュールをロードすることができるかもしれませんがkextutil、私は試したことはありません!
Ruraj

ゴージャスな説明。すべてのポイントは素晴らしく、端正です。常にそのような応答を見て嬉しい
master_clown
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.