同一ではないが類似している複数のデバイスをサポートするドライバーがあります。これは、デバイス用のアプリを作成するときに同じライブラリ API を使用できるようにするためです。
アプリで使用する特定のデバイスを指定する方法はありますか?
次に open が呼び出されたときにどの特定のデバイスが使用されるかを設定するために、open 呼び出しの前に ioctl 呼び出しを行うことは可能ですか?
この問題に対処する一般的な方法は、デバイスごとに個別のデバイス ノードを用意し、ベンダー、モデル、シリアル番号など、対応するデバイスの識別情報を返す を/dev/
ドライバーに提供させることです。ioctl()
これにより、ユーザー空間アプリケーションがさまざまなデバイスを区別できるようになります。正確なニーズによっては、sysfs
( /sys
) 内のいくつかの付随するエントリも意味がある場合があります。
アイデアを得るために、いくつかの一般的な既存の API を確認することをお勧めします。たとえば、V4L2 API にはVIDIOC_QUERYCAP ioctl()が含まれており、アプリケーションが個別のデバイスを区別できるようにするのに十分な情報を提供します。