неправильная версия xinput ABI при компиляции драйвера из источника

Я использую планшет Lenovo X1 Yoga, и мне нужна специальная версия драйвера xf86-input-wacom, чтобы моя ручка работала по желанию. В этом процессе я обнаружил, что некоторые файлы заголовков содержат информацию о версии, которая не соответствует реальной установке. Мой вопрос заключается в том, как получить правильные файлы разработки, чтобы я мог скомпилировать этот драйвер из источника.

Что я сделал:

Я установил Ubuntu 16.04.3 LTS на моем Lenovo X1 Yoga Tablet. Перо работает, но создает некоторые ложные входные данные. Чтобы исправить это, мне нужно установить пользовательскую версию драйвера xf86-input-wacom: см. Обсуждение на https://sourceforge.net/p/linuxwacom/bugs/339/. Следуя инструкциям во втором комментарии на этой странице, я сделал следующее:

$ 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.

Итак, мой вопрос: как мне получить правильные файлы разработки, которые позволят мне скомпилировать драйвер, совместимый с версией Xorg, который поставляется с Ubuntu 16.04.3 LTS?

Кстати, я смог чтобы получить эту работу, если мой друг скомпилирует драйвер в своей системе Fedora с совместимыми версиями. Я просто скопировал его wacom_drv.so в / usr / lib / xorg / modules / input. Но в будущем я бы хотел поддерживать это без его помощи.

2
задан 28 October 2017 в 19:39

6 ответов

Я сделал еще несколько поисков, и я решил проблему. Насколько я могу судить, стандартная версия Xorg, которая поставляется с Ubuntu 16.04.3 LTS, соответствует пакетам с суффиксом

*-hwe-16.04

Когда я установил файлы разработки, я установил пакет

xserver-xorg-dev

Это было неверно. Я должен был установить

xserver-xorg-dev-hwe-16.04

Хотя я не уверен, как я, как пользователь, должен был это знать. Во всяком случае, установка этого пакета, перекомпиляция и повторная установка разрешили проблему.

0
ответ дан 22 May 2018 в 17:02

Я сделал еще несколько поисков, и я решил проблему. Насколько я могу судить, стандартная версия Xorg, которая поставляется с Ubuntu 16.04.3 LTS, соответствует пакетам с суффиксом

*-hwe-16.04

Когда я установил файлы разработки, я установил пакет

xserver-xorg-dev

Это было неверно. Я должен был установить

xserver-xorg-dev-hwe-16.04

Хотя я не уверен, как я, как пользователь, должен был это знать. Во всяком случае, установка этого пакета, перекомпиляция и повторная установка разрешили проблему.

0
ответ дан 18 July 2018 в 04:22

Я сделал еще несколько поисков, и я решил проблему. Насколько я могу судить, стандартная версия Xorg, которая поставляется с Ubuntu 16.04.3 LTS, соответствует пакетам с суффиксом

*-hwe-16.04

Когда я установил файлы разработки, я установил пакет

xserver-xorg-dev

Это было неверно. Я должен был установить

xserver-xorg-dev-hwe-16.04

Хотя я не уверен, как я, как пользователь, должен был это знать. Во всяком случае, установка этого пакета, перекомпиляция и повторная установка разрешили проблему.

0
ответ дан 24 July 2018 в 18:04

Странно, у меня была такая же проблема с mtrack сегодня. Я исправил это, выполнив чистую проверку (git clone, чтобы быть точным) и повторный запуск autoreconf и ./configure. Но я до сих пор не могу понять, как очистить исходный каталог.

0
ответ дан 22 May 2018 в 17:02

Странно, у меня была такая же проблема с mtrack сегодня. Я исправил это, выполнив чистую проверку (git clone, чтобы быть точным) и повторный запуск autoreconf и ./configure. Но я до сих пор не могу понять, как очистить исходный каталог.

0
ответ дан 18 July 2018 в 04:22

Странно, у меня была такая же проблема с mtrack сегодня. Я исправил это, выполнив чистую проверку (git clone, чтобы быть точным) и повторный запуск autoreconf и ./configure. Но я до сих пор не могу понять, как очистить исходный каталог.

0
ответ дан 24 July 2018 в 18:04

Другие вопросы по тегам:

Похожие вопросы: