Estou usando o tablet Lenovo X1 Yoga e preciso de uma versão personalizada do driver xf86-input-wacom para que a caneta funcione conforme desejado. Nesse processo, descobri que alguns arquivos de cabeçalho contêm informações de versão que não são consistentes com a instalação real. Minha pergunta é como obter os arquivos de desenvolvimento corretos para me permitir compilar este driver a partir do código-fonte.
O que eu fiz:
Instalei o Ubuntu 16.04.3 LTS no meu tablet Lenovo X1 Yoga. A caneta funciona, mas produz alguns dados de entrada espúrios. Para corrigir isso, eu preciso instalar uma versão personalizada do driver xf86-input-wacom: Veja a discussão em link . Seguindo as instruções do segundo comentário nessa página, fiz o seguinte.
$ sudo apt-get install autoconf pkg-config make xutils-dev libtool xserver-xorg-dev libx11-dev libxi-dev libxrandr-dev libxinerama-dev libudev-dev
para instalar os arquivos de desenvolvimento (alguns dos pacotes já foram instalados.)
$ git clone https://github.com/jigpu/xf86-input-wacom -b fix-bug-339
para obter o ramo específico de que preciso.
$ cd xf86-input-wacom
$ ./autogen.sh --prefix=/usr && make
para compilar o driver.
Como estava com problemas, copiei manualmente o driver resultante
$ cp src/.libs/wacom_drv.so /usr/lib/xorg/modules/input/wacom_drv.so
Após a reinicialização, nenhum dispositivo wacom ficará visível para xinput. O problema é encontrado em
/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
Então por que a versão ABI do Xinput de um módulo que acabou de ser compilado a partir do código fonte está por trás da versão do servidor X? Vamos dar uma olhada em
/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)
Então, de fato, a versão é 22 de acordo com esse arquivo de cabeçalho, mas a versão atual da minha nova instalação do Ubuntu 16.04.3 LTS é de 24.
Então, minha pergunta é: como obtenho os arquivos de desenvolvimento corretos que me permitirão compilar um driver compatível com a versão do Xorg que vem com o Ubuntu 16.04.3 LTS?
Por acaso, consegui que isso funcionasse fazendo com que meu amigo compilasse o driver em seu sistema Fedora com versões compatíveis. Acabei de copiar seu wacom_drv.so para / usr / lib / xorg / modules / input. Mas no futuro eu gostaria de poder manter isso sem a ajuda dele.