我正在使用Lenovo X1 Yoga平板电脑,并且需要自定义版本的xf86-input-wacom驱动程序才能使笔按要求工作。在此过程中,我发现某些头文件包含与实际安装不一致的版本信息。我的问题是如何获取正确的开发文件,以使我能够从源代码编译该驱动程序。
我做了什么:
我在Lenovo X1 Yoga Tablet上安装了Ubuntu 16.04.3 LTS。笔可以工作,但是会产生一些虚假的输入数据。要解决此问题,我需要安装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
重新启动后,xinput看不到任何wacom设备。问题出在
/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。
所以我的问题是,如何获得正确的开发文件,使我能够编译与Ubuntu 16.04.3 LTS随附的Xorg版本兼容的驱动程序?
顺便说一句,我能够通过让我的朋友在他的具有兼容版本的Fedora系统上编译驱动程序来使其工作。我只是将他的wacom_drv.so复制到/ usr / lib / xorg / modules / input。但是将来,我希望能够在没有他帮助的情况下保持这一点。
我进行了更多搜索,并解决了该问题。据我所知,Ubuntu 16.04.3 LTS随附的Xorg的默认版本与带有后缀的软件包相对应。
*-hwe-16.04
安装开发文件时,我安装了软件包
xserver-xorg-dev
这是不正确的。我应该已经安装
xserver-xorg-dev-hwe-16.04
尽管我不确定我作为用户应该如何知道这一点。无论如何,安装该软件包,重新编译并重新安装解决了该问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句