プロジェクトでは、カスタムハードウェア上にいくつかのFTDIシリアルからUSBへのコンバーターがあります。これらのシリアルからUSBへのコンバーターの一部には、設定する必要のある特別なパラメーターがあります(つまり、データを取得する場所)。さて、これを設定する通常の方法は、FTD2XXライブラリを使用することです。これにより、USBからシリアルへのコンバーターに直接データを設定できます。ただし、D2XXドライバーを標準のftdi_sioドライバーと同時に使用することはできません。つまり、通常のデバイスのようにシリアルポートを使用することはできません。
ここには3つの基本的なオプションがあります。
新しいIOCTLを使用するように標準ドライバーを変更します。対象とする環境は非常に特殊なので、これで問題ありませんが、さまざまなモードにしたときにUSBコンバーターがどのように機能するかを考え出す可能性のあるすべてのニュアンスを処理できるかどうかはわかりません。 。
すべてにD2XXドライバーを使用させます。これは理想的ではありません。別のFTDIUSBからシリアルへのコンバーターを使用する必要がある場合、そのシリアルコンバーターを使用する必要があるプログラムはすべて、D2XXドライバーも使用する必要があります。これは、別のUSBからシリアルへのコンバーターを使用するまでは問題ありません。 (通常どおり/ dev / ttyUSBXを開きます)
/ dev / serialXなどの偽のTTYを作成します。これにより、情報がD2XXドライバーに渡されます。そうすれば、通常どおりシリアルポートを開くことができますが、新しい機能を追加して、より高度なオプションを実行できます。命名は、現在行っていることと似ています。つまり、udevを使用して、正しいポートへのシンボリックリンクを作成します。
ここではオプション#3がおそらく最良のオプションですが、正確な方法はわかりません。openpty機能を調べましたが、それは私が望んでいることを正確に実行していないようです。主に、偽のシリアルポートにTTY設定を設定し、実際のシリアルポートに同じ設定を設定することができます。ここではどういうわけかmknod/mkdevが使われると思いますが、正確にはわかりません。
これを回避するための最良の方法は何ですか?