неправильная 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

2 ответа

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

*-hwe-16.04

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

xserver-xorg-dev

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

xserver-xorg-dev-hwe-16.04

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

0
ответ дан 2 December 2019 в 08:29

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

0
ответ дан 2 December 2019 в 08:29

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

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