私は Linux カーネルの開発に慣れていませんが、カーネル ドライバーを更新して、アプリケーションが読み取ることができるステータス コードを返すようにしています。これには、ドライバーがハードウェアを 1 秒間に数回ポーリングして、送信されているカメラ形式 (PAL、NTSC、またはなし) を確認する必要があります。
しかし、私はこれがどのように達成されるかについて途方に暮れています。ドライバーがハードウェアと通信する方法は理解していますが、このデータをアプリケーションに渡す方法がわかりません。このタイプの動作には ioctl() 呼び出しの使用が必要ですか、それともファイル読み取り操作ですか? また、アプリケーションが IOCTL または読み取り関数を呼び出しており、ハードウェアが応答するまで待機する必要がある場合、パフォーマンスの問題は発生しますか?
また、追加情報として、カーネルの 2.6 バージョンに取り組んでいます。「Linux Device Drivers 3rd Ed」に取り組んでいますが、この特定の問題に対処する方法について目立ったものはありません。LDD3 では、ドライバーにコマンドを送信するためだけに ioctl() のように聞こえます。これは V4L ドライバーなので、ファイルを開くと、必要なステータス情報ではなく、画像データが返されると思います。