単純な画面/モニターデバイスにはどのLinuxドライバーサブシステム/ APIが使用されますか?


9

タッチスクリーン付きの組み込みシステムを開発しています。タッチスクリーンは、入力と出力の両方として動作し、「仮想」キーボードがグラフィック出力をオーバーレイします。

kernel.orgこのガイドを使用して作成された、タッチセンサーからの入力を読み取り、それをキープレスに正しく変換する機能するデバイスドライバーがあります。このドライバーを拡張して、画面への画像出力も処理したいと考えています。

できるだけ少ない重複でgettyとXの両方をサポートしたいと思います。最小限のXなど、厳選されたパッケージで最小限のDebianバリアントを実行しています。パブリックGitHubリポジトリにダンプする可能性がありますが、このドライバーをリポジトリパイプラインに入れようとするつもりはありません。

画面イメージの出力は、現在、危険な回避策を介して行われています。ディスプレイに接続されていないにもかかわらず、CPUの組み込みグラフィックスハードウェアにレンダリングを強制するブートオプションと、そのバッファーを継続的に画面スクレイピングするデーモンが、いくつかの事前変更を変更します。キーボードビジュアルを作成するピクセルを定義し、それを実際の画面にプッシュします。

これは概念実証として機能し、画面デバイスが期待する言語を正しく理解していることを証明しますが、明らかに最適ではありません。

kernel.org 「DRM」デバイスドライバーのガイドもありますが、私のハードウェアで可能なことは、次のように深刻になりすぎています。

Linux DRMレイヤーには、複雑なグラフィックスデバイスのニーズをサポートするためのコードが含まれており、通常、3Dグラフィックスアクセラレーションに適したプログラム可能なパイプラインが含まれています。

私のハードウェアには3Dアクセラレーションに似たものがないため、これはおそらく私が望んでいるものではないと結論付けます。

どのサブシステム/ APIを使用すればよいですか?欠落している用語の1つが私の検索を妨げているものだと思いますが、これを達成する方法についての情報がありましたら、いただければ幸いです。

ハードウェアの詳細(おそらく無関係): CPUと画面は、CPUがネイティブでサポートしていない8080-esqueパラレルプロトコルを介して通信するため、GPIOでそれをエミュレートします(mmapを介してレジスターを操作することにより)。

完全な画面イメージの送信には約20ミリ秒かかりますが、組み込みグラフィックスバッファーから完全なコピーを取得するには約180ミリ秒かかるため、そのステップをスキップすることが最も重要な目的です。画面ハードウェアには十分なSGRAMが含まれています、フレーム全体のデータを保持するのにメモリが、長方形のサブ領域の書き込みをサポートしているため、変更された画面の部分のみを更新するフックが望ましいでしょう。

画面は、着信データのタイミングに特別ではありません。タッチセンサー入力は、CPUがサポートするI²Cを介してCPUと通信する専用のICによって処理されます。現在のドライバーはlinux/input-polldev.hインターフェースを使用します。CPUはBroadcom BCM2835であり、画面はHimax HX8357コントローラーが埋め込まれたTFTであり、タッチスクリーンセンサーデコーダーはST STMPE610であり、HX8357とBCM2835の間には電圧レベルシフターNexperia 74LVCH245A)があります。詳細については、リクエストに応じてご利用いただけます。


私はあなたがNIH症候群を患っていて、基本的に車輪を再発明したと確信しています-通常、タッチスクリーンはHIDプロトコルを使用します。タッチスクリーンは入力デバイスにすぎないことに注意してください。
0andriy

@ 0andriyホイールを再発明するのはちょっと私のことですが、私が始めたとき、この特定のデバイス用の(実際の)ドライバーはありませんでした。ヒューマンインターフェイスデバイス用の標準化されたプロトコルについては知りませんが、ある場合、ここで使用しているタッチオーバーレイがそれを使用していないことは確かです。私の場合は間違いなく画像を出力しているため、「タッチスクリーンは入力デバイスにすぎない」とは思わない。
memtha

1つのパッケージで2つのハードウェアブロックを認識しなかっただけです。タッチスクリーンは、その名前を無視して、単なる入力デバイスです。出力されたものは、例えば、パネルまたはTFTディスプレイと呼ばれます。
0andriy

merriam-webster.com/dictionary/touchscreenはい2つの異なるハードウェアがあります:タッチセンシティブオーバーレイとTFTスクリーンです。これら2つのコンポーネントを組み合わせて、タッチスクリーンを形成します。「名前を無視して」と言っても、タッチスクリーンの定義が間違っているとは言えません。
memtha

回答:


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.