Я использую планшет 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. Но в будущем я хотел бы смочь поддержать это без его справки.
Я сделал еще некоторый поиск, и я разрешил проблему. Насколько я могу сказать, версия по умолчанию Xorg, который идет с Ubuntu 16.04.3, LTS соответствует пакетам с суффиксом
*-hwe-16.04
Когда я установил файлы для разработчика, я установил пакет
xserver-xorg-dev
Это не было корректно. Я должен был установить
xserver-xorg-dev-hwe-16.04
Хотя я не уверен, как я как пользователь, как предполагалось, знал это. Так или иначе, устанавливая тот пакет, перекомпиляция и переустановка решили вопрос.
Странно у меня была точно та же самая проблема с mtrack сегодня. Я зафиксировал его путем выполнения чистого контроля (клон мерзавца, чтобы быть точным) и повторного выполнения autoreconf и./настраивать. Но я все еще не могу выяснить, как убрать исходный каталог.