web-dev-qa-db-ja.com

ソースからドライバーをコンパイルする際の間違ったxinput ABIバージョン

Lenovo X1 Yogaタブレットを使用していますが、ペンを希望どおりに動作させるには、カスタムバージョンのxf86-input-wacomドライバーが必要です。このプロセスで、実際のインストールと一致しないバージョン情報がヘッダーファイルに含まれていることがわかりました。私の質問は、ソースからこのドライバーをコンパイルできるようにする正しい開発ファイルを取得する方法です。

私がしたこと:

Lenovo X1 Yoga TabletにUbuntu 16.04.3 LTSをインストールしました。ペンは機能しますが、いくつかの誤った入力データが生成されます。これを修正するには、xf86-input-wacomドライバーのカスタムバージョンをインストールする必要があります: https://sourceforge.net/p/linuxwacom/bugs/339/ の説明を参照してください。そのページの2番目のコメントの指示に従って、次のことを行いました。

$ Sudo apt-get install autoconf pkg-config make xutils-dev libtool xserver-xorg-dev libx11-dev libxi-dev libxrandr-dev libxinerama-dev libudev-dev

開発ファイルをインストールするため(一部のパッケージは既にインストールされています。)

$ git clone https://github.com/jigpu/xf86-input-wacom -b fix-bug-339

必要な特定のブランチを取得します。

$ cd xf86-input-wacom
$ ./autogen.sh --prefix=/usr && make

ドライバーをコンパイルします。

問題が発生したため、結果のドライバーを手動でコピーしました

$ cp src/.libs/wacom_drv.so /usr/lib/xorg/modules/input/wacom_drv.so

再起動すると、wacomデバイスはxinputから見えなくなります。問題は

/var/log/Xorg.0.log:

[    11.725] (II) LoadModule: "wacom"
[    11.725] (II) Loading /usr/lib/xorg/modules/input/wacom_drv.so
[    11.726] (II) Module wacom: vendor="X.Org Foundation"
[    11.726]    compiled for 1.18.4, module version = 0.35.0
[    11.726]    Module class: X.Org XInput Driver
[    11.726]    ABI class: X.Org XInput driver, version 22.1
[    11.726] (EE) wacom: module ABI major version (22) doesn't match the server's version (24)
[    11.726] (II) UnloadModule: "wacom"
[    11.726] (II) Unloading wacom

では、ソースからコンパイルされたばかりのモジュールのxinput ABIバージョンがXサーバーのバージョンの背後にあるのはなぜですか?見てみましょう

/usr/include/xorg/xf86Module.h:

#define ABI_ANSIC_VERSION       SET_ABI_VERSION(0, 4)
#define ABI_VIDEODRV_VERSION    SET_ABI_VERSION(20, 0)
#define ABI_XINPUT_VERSION      SET_ABI_VERSION(22, 1)
#define ABI_EXTENSION_VERSION   SET_ABI_VERSION(9, 0)
#define ABI_FONT_VERSION        SET_ABI_VERSION(0, 6)

実際、このヘッダーファイルによると、バージョンは22ですが、Ubuntu 16.04.3 LTSの新規インストールの実際のバージョンは24です。

だから私の質問は、Ubuntu 16.04.3 LTSに付属しているXorgのバージョンと互換性のあるドライバーをコンパイルできるようにする正しい開発ファイルをどのように入手するのですか?

ちなみに、互換性のあるバージョンを持つFedoraシステムでドライバーをコンパイルすることで、これを機能させることができました。彼のwacom_drv.soを/ usr/lib/xorg/modules/inputにコピーしました。しかし、将来的には彼の助けなしにこれを維持できるようになりたいです。

2
James Pascaleff

さらに検索を行い、問題を解決しました。私が知る限り、Ubuntu 16.04.3 LTSに付属するXorgのデフォルトバージョンは、サフィックスが付いたパッケージに対応しています

*-hwe-16.04

開発ファイルをインストールしたときに、パッケージをインストールしました

xserver-xorg-dev

これは正しくありませんでした。インストールする必要があります

xserver-xorg-dev-hwe-16.04

ユーザーとしての私がそれを知っているはずだったのかどうかはわかりませんが。とにかく、そのパッケージをインストールし、再コンパイルし、再インストールすることで問題は解決しました。

0
James Pascaleff

奇妙なことに、今日mtrackでまったく同じ問題が発生しました。クリーンチェックアウト(正確にはgit clone)を実行し、autoreconfと./configureを再実行して修正しました。しかし、私はまだ元のディレクトリをきれいにする方法を理解することはできません。

0
p2rkw