ホームページ  >  記事  >  システムチュートリアル  >  Linux 入力サブシステムの概要

Linux 入力サブシステムの概要

WBOY
WBOY転載
2024-02-13 13:09:12776ブラウズ

Linux 入力サブシステムは、キーボード、マウス、タッチ スクリーン、タブレット、ゲーム コントローラーなど、Linux システム上のすべての入力デバイスをサポートするドライバーのセットです。入力サブシステムの中核は入力モジュールであり、2 種類のモジュール間でイベントを受け渡す役割を果たします。

    デバイスドライバーモジュール: これらのモジュールはハードウェアと通信し (USB などを介して)、イベント (キーの押下、マウスの動きなど) を入力モジュールに提供します。
  • イベント処理モジュール: これらのモジュールは入力モジュールからイベントを取得し、さまざまなインターフェイスを通じて必要な場所 (カーネル、GPM、X など) にイベントを渡します。
この記事では、Linux 入力サブシステムの基本概念と構造、および一般的に使用されるいくつかのコマンドとツールを紹介します。サンプル システムとして Ubuntu 20.04 を使用しますが、内容は他の Linux ディストリビューションにも当てはまります。

Linux 入力サブシステムの概要

ドライバー層

基礎となるハードウェア入力を統一イベント形式に変換し、それを入力コアに報告します。

入力サブシステムコア層

input_register_device などの入力デバイスの登録および操作インターフェイスをドライバー層に提供し、イベントを処理するようにイベント処理層に通知し、対応するデバイス情報を /Proc の下に生成します。

イベント処理層

主にユーザー空間と対話します (Linux では、すべてのデバイスはユーザー空間のファイルとして扱われます。これは、fops インターフェイスが一般的なドライバーで提供され、対応するデバイス ファイル ノードが /dev の下に生成されるためです。これらの操作は、入力サブシステムのイベント処理層)。

デバイスの説明

input_dev 構造体は、キーの押下、タッチ スクリーン、その他の入力イベント (input_event 構造体で記述されるイベント) をシステムに報告するという、デバイス ドライバーの中心的な作業を実装するためのものであり、ファイル操作を気にする必要はなくなりました。インターフェース。ドライバーは、inputCore および Eventhandler を通じてユーザー空間にイベントを報告します。

入力デバイス機能の登録: リーリー

入力デバイス機能の登録解除: リーリー

ドライバー実装 - 初期化 (イベント サポート) set_bit() は、どのイベントとどのキーがサポートされているかを入力サブシステムに伝えます。例えば:### リーリー

struct input_dev**** には 2 つのメンバーがあります:

**1)** evbit イベント タイプ (EV_RST、EV_REL、EV_MSC、EV_KEY、EV_ABS、EV_REP などを含む)。 **2)**keybit キー タイプ (イベント タイプが EV_KEY の場合、BTN_LEFT、BTN_0、BTN_1、BTN_MIDDLE などを含む)。

ドライバー実装 - イベントのレポート EV_KEY、EV_REL、EV_ABS イベントのレポートに使用される関数は次のとおりです。 リーリー

ドライバー実装 - レポート終了 input_sync() 同期は、レポートが終了したことを入力コア サブシステムに伝えるために使用されます。タッチ スクリーン デバイス ドライバーでは、ワンクリックのレポート プロセス全体は次のとおりです:

リーリー

解析例(キー割り込みプログラム):

リーリー 概要:

input

サブシステムはまだキャラクター デバイス ドライバーですが、コードの量は大幅に削減されています。****input サブシステムは 2 つのタスクを完了するだけで済みます。初期化とイベント レポート (これは linux**** の割り込みによって実現されます)。 ######例###### リーリー この記事では、Linux 入力サブシステムの基本概念と構造、および一般的に使用されるいくつかのコマンドとツールについて学びました。入力デバイスのプロパティとステータスを表示および制御する方法、および evtest ツールと libinput ツールを使用して入力デバイスをテストおよびデバッグする方法を学習しました。また、udev ルールを使用して入力デバイスの動作と構成をカスタマイズする方法も学びました。

Linux 入力サブシステムは、入力デバイスをより適切に管理および使用できるようにする強力で柔軟なフレームワークです。 Linux 入力サブシステムを使用すると、生産性とユーザー エクスペリエンスを向上させることができます。 Linux システムを使用する場合は、Linux 入力サブシステムを頻繁に使用して入力デバイスを最適化することをお勧めします。

以上がLinux 入力サブシステムの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlxlinux.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。