web-dev-qa-db-ja.com

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

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

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

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

9
yuva

Installation

  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"も。

13
Ruraj