1 つの (USB) シリアル デバイスから複数の独立したシリアル デバイスにデータを多重化する必要があります。
私が見つけたのはモジュールのファンアウトです。これは私の問題の多重化部分に対処します。
ここで、カーネル空間でシリアル USB デバイスからファンアウトデバイスにデータを直接コピーする、簡単でおそらくすぐに使用できる方法を探します。
確かに、単純cat x > y
にユーザー空間で実行できますが、カーネル空間でこれを行う方が効率的かもしれません。
1 つの (USB) シリアル デバイスから複数の独立したシリアル デバイスにデータを多重化する必要があります。
私が見つけたのはモジュールのファンアウトです。これは私の問題の多重化部分に対処します。
ここで、カーネル空間でシリアル USB デバイスからファンアウトデバイスにデータを直接コピーする、簡単でおそらくすぐに使用できる方法を探します。
確かに、単純cat x > y
にユーザー空間で実行できますが、カーネル空間でこれを行う方が効率的かもしれません。
パイプがあれば、splice_pipe_to_pipe
またはを試してくださいlink_pipe
。
(ちなみに、新しいtee
syscallはファンアウト モジュールを置き換えることができます。それは既に組み込まれています!)
socketpairで作成された匿名の Unix Domain Socketを使用できます。すべての条件を満たします (そして高速です)。