デバイスドライバ

evdevからlibinputへ移行したSlackware

2023年11月17日
著者: 竹洞 陽一郎

はじめに

Linuxシステムを使う上で、入力デバイスの管理は非常に重要な要素です。
特に、キーボードやマウス、タッチパッドといったデバイスは、日々のコンピューティング体験の核となる部分です。
今回は、Linuxシステムにおける2つの重要な入力デバイス管理コンポーネント、libinputとevdevについて詳しく解説します。

evdevの概要

基本的な役割

evdev は、Linuxカーネルの一部であり、様々な入力デバイス(キーボード、マウス、タッチパッドなど)からのイベントを一般化し、ユーザースペースへ伝達します。
カーネルレベルでデバイスドライバとして機能し、デバイス固有の処理を抽象化します。

主な特徴

libinputの概要

基本的な役割

libinput は、evdevからイベントを受け取り、それをより洗練された形式に加工するユーザースペースのライブラリです。
デバイス間の一貫性を保ちながら、ジェスチャー認識やその他の複雑な入力処理を実現します。

主な特徴

libinputとevdevの違い

処理レベルの違い

evdevは低レベルの入力イベントを処理し、libinputはこれらのイベントを高レベルのインタラクションに変換します。

使用環境の違い

evdevはX Window Systemを含む古いシステムで広く使われていますが、libinputはWaylandや新しいX.Orgサーバーのような最新のシステムで主流になっています。
X Window Systemでは、2014年7月17日リリースの1.16.0から、libinputが取り入れられています。

XとWaylandにおけるevdevとlibinput

機能性の違い

libinputはジェスチャーや複雑なタッチ操作をサポートし、一貫性と互換性を提供しますが、evdevはより基本的な入力イベントに焦点を当てています。

Slackwareでのlibinputへの移行

Slackwareでは、15.0のリリースの前にcurrentで採用されて反映されました。
現在は、キーボードの設定のテンプレートとして、以下のディレクトリに設定ファイルがあります。


/usr/share/X11/xorg.conf.d/91-keyboard-layout-libinput.conf

以前、存在していた、evdevの設定テンプレートファイルは無くなっています。

ですから、以前より90-keyboard-layout-evdev.confをお使いの方は、この機会に91-keyboard-layout-libinput.confに移行されてはどうでしょう?


sudo cp /usr/share/X11/xorg.conf.d/91-keyboard-layout-libinput.conf /etc/X11/xorg.conf.d/

まとめ

Linuxの入力システムは、evdevとlibinputの両方に大きく依存しています。
evdevは低レベルのデバイスイベントを扱い、libinputはそれらをより高度なユーザーインターフェイスのインタラクションに変換します。
現代のLinux環境では、これらのコンポーネントが連携して、より洗練されたユーザーエクスペリエンスを提供しています。