J'utilise la tablette de yoga Lenovo X1 et j'ai besoin d'une version personnalisée du pilote xf86-input-wacom pour que mon stylo fonctionne comme vous le souhaitez. Au cours de ce processus, j'ai découvert que certains fichiers d'en-tête contiennent des informations sur la version qui ne sont pas cohérentes avec l'installation réelle. Ma question est de savoir comment obtenir les fichiers de développement appropriés pour pouvoir compiler ce pilote à partir des sources.
Ce que j'ai fait:
J'ai installé Ubuntu 16.04.3 LTS sur ma tablette de yoga Lenovo X1. Le stylo fonctionne, mais produit des données d'entrée parasites. Pour résoudre ce problème, je dois installer une version personnalisée du pilote xf86-input-wacom: Voir la discussion à l’adresse suivante: https://sourceforge.net/p/linuxwacom/bugs/339/ . En suivant les instructions du deuxième commentaire sur cette page, j’ai fait ce qui suit.
$ Sudo apt-get install autoconf pkg-config make xutils-dev libtool xserver-xorg-dev libx11-dev libxi-dev libxrandr-dev libxinerama-dev libudev-dev
installer les fichiers de développement (certains des paquets étaient déjà installés.)
$ git clone https://github.com/jigpu/xf86-input-wacom -b fix-bug-339
pour obtenir la branche spécifique dont j'ai besoin.
$ cd xf86-input-wacom
$ ./autogen.sh --prefix=/usr && make
compiler le pilote.
Comme j'avais des problèmes, j'ai copié manuellement le pilote résultant
$ cp src/.libs/wacom_drv.so /usr/lib/xorg/modules/input/wacom_drv.so
Au redémarrage, aucun périphérique wacom n'est visible par xinput. Le problème se trouve dans
/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
Alors, pourquoi la version ABI xinput d’un module qui vient d’être compilé à partir de la source serait-elle derrière la version du serveur X? Jetons un coup d'oeil à
/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)
Donc, effectivement, la version est 22 d'après ce fichier d'en-tête, mais la version actuelle de ma nouvelle installation d'Ubuntu 16.04.3 LTS est 24.
Ma question est donc la suivante: comment obtenir les fichiers de développement appropriés qui me permettront de compiler un pilote compatible avec la version de Xorg fournie avec Ubuntu 16.04.3 LTS?
Incidemment, j'ai réussi à faire fonctionner cela en demandant à mon ami de compiler le pilote sur son système Fedora doté de versions compatibles. Je viens de copier son fichier wacom_drv.so dans/usr/lib/xorg/modules/input. Mais à l'avenir, j'aimerais pouvoir continuer à le faire sans son aide.
J'ai fait quelques recherches supplémentaires et j'ai résolu le problème. Autant que je sache, la version par défaut de Xorg fournie avec Ubuntu 16.04.3 LTS correspond aux paquets avec le suffixe
*-hwe-16.04
Quand j'ai installé les fichiers de développement, j'ai installé le paquet
xserver-xorg-dev
Ce n'était pas correct. J'aurais dû installer
xserver-xorg-dev-hwe-16.04
Bien que je ne sois pas sûr de savoir comment, en tant qu’utilisateur, je devais le savoir. Quoi qu’il en soit, l’installation de ce paquet, la recompilation et la réinstallation ont résolu le problème.
Étrangement, j'avais exactement le même problème avec mtrack aujourd'hui. Je l'ai corrigé en faisant un check-out propre (clone git pour être précis) et en relançant autoreconf et ./configure. Mais je n'arrive toujours pas à comprendre comment nettoyer le répertoire d'origine.