Hi guys,
Thanks for this great effort porting the wacom drivers to linux. I have bought wacom one and I am working on Linux Mint LMDE2(linux kernel 3.16.0-5-amd64).
I have downloaded the drivers(version 0.36) and installed them as described in the README file(with configure) and restarted my machine but still it is not recognised. I even tried with sudo and still no luck.
Is there anything I am missing?
Logs:
sudo ./configure --prefix=/usr
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define EXTENSIONS... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for gcc option to accept ISO C99... -std=gnu99
checking whether clang is declared... no
checking whether __INTEL_COMPILER is declared... no
checking whether __SUNPRO_C is declared... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking if gcc -std=gnu99 supports -Werror=unknown-warning-option... no
checking if gcc -std=gnu99 supports -Werror=unused-command-line-argument... no
checking if gcc -std=gnu99 supports -Wall... yes
checking if gcc -std=gnu99 supports -Wpointer-arith... yes
checking if gcc -std=gnu99 supports -Wmissing-declarations... yes
checking if gcc -std=gnu99 supports -Wformat=2... yes
checking if gcc -std=gnu99 supports -Wstrict-prototypes... yes
checking if gcc -std=gnu99 supports -Wmissing-prototypes... yes
checking if gcc -std=gnu99 supports -Wnested-externs... yes
checking if gcc -std=gnu99 supports -Wbad-function-cast... yes
checking if gcc -std=gnu99 supports -Wold-style-definition... yes
checking if gcc -std=gnu99 supports -Wdeclaration-after-statement... yes
checking if gcc -std=gnu99 supports -Wunused... yes
checking if gcc -std=gnu99 supports -Wuninitialized... yes
checking if gcc -std=gnu99 supports -Wshadow... yes
checking if gcc -std=gnu99 supports -Wmissing-noreturn... yes
checking if gcc -std=gnu99 supports -Wmissing-format-attribute... yes
checking if gcc -std=gnu99 supports -Wredundant-decls... yes
checking if gcc -std=gnu99 supports -Wlogical-op... yes
checking if gcc -std=gnu99 supports -Werror=implicit... yes
checking if gcc -std=gnu99 supports -Werror=nonnull... yes
checking if gcc -std=gnu99 supports -Werror=init-self... yes
checking if gcc -std=gnu99 supports -Werror=main... yes
checking if gcc -std=gnu99 supports -Werror=missing-braces... yes
checking if gcc -std=gnu99 supports -Werror=sequence-point... yes
checking if gcc -std=gnu99 supports -Werror=return-type... yes
checking if gcc -std=gnu99 supports -Werror=trigraphs... yes
checking if gcc -std=gnu99 supports -Werror=array-bounds... yes
checking if gcc -std=gnu99 supports -Werror=write-strings... yes
checking if gcc -std=gnu99 supports -Werror=address... yes
checking if gcc -std=gnu99 supports -Werror=int-to-pointer-cast... yes
checking if gcc -std=gnu99 supports -Werror=pointer-to-int-cast... yes
checking if gcc -std=gnu99 supports -pedantic... yes
checking if gcc -std=gnu99 supports -Werror... yes
checking if gcc -std=gnu99 supports -Werror=attributes... yes
checking whether make supports nested variables... (cached) yes
checking for doxygen... no
configure: WARNING: doxygen not found - documentation targets will be skipped
checking for rint in -lm... yes
checking for xorg-server >= 1.7.0 xproto xext kbproto inputproto randrproto... yes
checking for x11 xi xrandr xinerama xproto xext kbproto inputproto randrproto... yes
checking for libudev... yes
checking for lshal... no
checking for hal-set-property... no
checking if HAL preprobe quirk should be installed... no
checking whether the linker supports -wrap... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating conf/Makefile
config.status: creating doc/Makefile
config.status: creating doc/doxygen.conf
config.status: creating src/Makefile
config.status: creating man/Makefile
config.status: creating include/Makefile
config.status: creating tools/Makefile
config.status: creating test/Makefile
config.status: creating xorg-wacom.pc
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commandssudo make
if test -x ./git-version-gen; then ./git-version-gen -u; fi
make all-recursive
make[1]: Entering directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0'
Making all in conf
make[2]: Entering directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/conf'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/conf'
Making all in doc
make[2]: Entering directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/doc'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/doc'
Making all in src
make[2]: Entering directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/src'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/src'
Making all in man
make[2]: Entering directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/man'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/man'
Making all in include
make[2]: Entering directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/include'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/include'
Making all in tools
make[2]: Entering directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/tools'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/tools'
Making all in test
make[2]: Entering directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/test'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0/test'
make[2]: Entering directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0'
make[2]: Leaving directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0'
make[1]: Leaving directory '/home/periklis/Desktop/xf86-input-wacom-0.36.0'
Thanks,
DarkFire21
You'll need to install a development version of the "input-wacom" (kernel) driver, not the "xf86-input-wacom" (Xorg) driver in order to get your tablet working. To do this, install the "git" utility and run
git clone https://github.com/linuxwacom/input-wacom.gitto clone the latest version of our repository, which has support for your tablet. Instructions for compiling and installing the code can be found at https://github.com/linuxwacom/input-wacom/wiki/Installing-input-wacom-from-source.Thanks for the prompt reply Jason. Following the instructions, I am trying to fix the X server setup but the link in the text below is not correct. Can you please elaborate?
Thanks
If you already have a Wacom configuration file under the
/usr/share/X11/xorg.conf.d/directory (e.g.70-wacom.confor50-wacom.conf) you shouldn't need to place a file in/etc/X11/xorg.conf.d). If you don't have such a file, the example configuration can be found at https://sourceforge.net/p/linuxwacom/xf86-input-wacom/ci/master/tree/conf/70-wacom.confLooks like we need to fix the link on that page :)
Hi Jason,
I already have those files but the tablet is still not working properly. If I am approaching the stylus to the tablet, I can see the light indicator lighting up. But nothing useful is happening. Is there anything else I can do?
You can find attached the files /usr/share/X11/xorg.conf.d/50-wacom.conf and /usr/share/X11/xorg.conf.d/70-wacom.conf in case you want to see them. I can also see the sysmodule to be loaded correctly.
grep "" /sys/module/wacom*/version v1.53-0.38.0.11.gc6fc15aThanks
Last edit: DarkFire21 2018-03-01
So I kept trying during these days. Here is what I have done, to make sure I have forgotten nothing.
Installing xserver-xorg-input-wacom from source
Checking the X server directories:
and of course:
Restarting X(for the 3rd time today) and still nothing. Is it something more we can try? :(
Last edit: DarkFire21 2018-03-04
Sorry about the delay in replying -- SourceForge has been extremely flaky these past few days.
It looks like you're compiling the correct version and that its being installed/loaded correctly. I've double-checked the code and the 056a:037a tablet listed in your lsusb output is exactly what we'd expect. The configuration files also don't seem to have any issues. Basically everything looks good from what I can see.
The problem is either with the kernel driver not connecting to the tablet for some reason, or with userspace not detecting it. Please try installing the
evemu-toolspackage from your distribution's repository and then runsudo evemu-record. You should see at least one Wacom device in the list. Type in the number for the Wacom pen device (not touch, pad, or anything else if you see it), press enter, and then touch the pen to to the tablet. It should start printing out a whole bunch of data. You can press CTRL+C to quit.If the above happens, the most likely cause is an issue with X. If nothing is printed out, or if no Wacom device is listed, the issue is probably with the kernel. In this case, could you please unplug your tablet, connect it again, and provide the output of
dmesg | tail -n 100for review?evemu unfortunately returned no wacom occurences
The dmesg output is return an error with code -22 as you can see in the bottom of the logs below.
Thanks
Interesting. The "-22" is "-EINVAL", which our driver's probe function can return in any of several places when an error occurs. We'll have to add some additional debug messages to figure out exactly what is going wrong...
So I suppose I will wait for a 'git push' to happen and then rebuild the driver?
While adding the debug statements, I came across an error that would actually explain the symptoms you experience. Please run the following two commands from within your input-wacom directory to get the update. I think it just might do the trick.
Afterwards, compile/install/test the driver like normal. The version number reported by the kernel should be "v1.53-0.38.0.12.ge6e4865"
I hate being the bearer of the bad news but it didnt work :( The logs are from my second compilation try, but it doesnt look much different to me
Compiling:
After compilation and restarting both X server and the machine:
I judt plugged in and out the device and the dmesg output looks more interesting:
Oh, that is looking more promising. Do you see the tablet listed when running
sudo evemu-recordnow?My extreme apologies for not getting back earlier, Jason. For some reason the email notofication landed to my spam folder. :(
I suppose an event, would be to touch the pen to the pad? If yes, I have done a few gestures with the pen but nothing happened.
The output for the "Pad" device in your log above will only provide information about button presses, if the pad has any built into it (I don't think the One has any?) If you run evemu-record on the "Pen" device instead, do you see anything printed out when dragging the pen on the tablet?
Yes, a ton of coordinate logging :)
I have truncated some of the output for space reasons
Awesome, so that means that the kernel drivers should be sorted out. If the cursor still isn't moving at this point, its an issue with the userspace driver. Could you please provide the output of
xinput listnow, as well as the contents of your Xorg log? The Xorg log can be hiding in a couple of different spots. You might find it within the/var/logdirectory or inside the~/.local/share/xorgdirectory. If there are multiple Xorg log files, upload the one with the most recent timestamp (it should be for your current session). You might also find the log within the output of "journalctl" -- in this case, you should use a filter to reduce the output (e.g.journalctl -b0 _COMM=gdm-x-session > journal.log, replacing "gdm-x-session" with the name of the binary listed immediately to the left of every line of Xorg output).Regarding xserver log, the var/log one seem to be correct.
Not sure what the 'fail to load wacom' refers to, but if it is the kernel module:
Indeed the "failed to load module" error is the culprit here. The logs are referring to the Xorg driver module rather than the kernel module we just got sorted out. Normally I would expect the Xorg driver to already be in place, but your earlier attempt to install xf86-input-wacom from source may have broken something (e.g. if you ran
make uninstall). You can runls /usr/lib*/xorg/modules/input/to see the installed Xorg input drivers -- "wacom_drv.so" should be listed if its installed...You can try to reinstall your distribution's upstream Xorg driver by running something like
apt-get --reinstall install xserver-xorg-input-wacomand then rebooting. You could also try compiling/installing the xf86-input-wacom driver from source again. Both should work, but reinstalling the distribution driver should be "better" from a system maintainence point of view.Hmm, it is .la isntead of .so
I will follow the steps and report back tomorrow.
I reinstalled the vanilla driver and it looks like working :)
My extreme and sincere gartitude for sortinig this out Jason. You are great. :D
Can you please explain why it worked when I reinstalled the driver? I just want to port it to other machines too and I think it is good to know what is going on.
Also, maybe I should raise another ticket for that, but is there any configuration tool to manage the role of each key of the pen?
Glad to hear its working now :) I'm not entirely sure what happened, but my best guess is that your earlier attempt to install "xf86-input-wacom" from source was the trigger since the "input-wacom" driver doesn't mess with Xorg at all. The fact that "wacom_drv.so" was missing makes me think that maybe you ran
make uninstallat some point, which would have removed both anything you installed from source as well as the stock distribution-provided files (since they're both installed with the same names to the same directories).All that you should need to when porting over to other machines is get the "input-wacom" driver installed. The Xorg driver is pre-installed on most distros, but if not, you can use the commands on the "Get the Drivers" section of https://github.com/linuxwacom/xf86-input-wacom/wiki/Building-The-Driver to install the distro-provided version. Worst case, you can still find us here (or, actually, at Github, since we're in the process of migrating there).
Looks like we posted at the same time :D The "xsetwacom" command-line utility can be used to configure pen settings in some environments, including the buttons. Give
man xsetwacoma read, as well as https://github.com/linuxwacom/xf86-input-wacom/wiki/xsetwacom. Most GNOME3-like desktops (GNOME/Unity/Cinnamon) have a dedicated control panel for the tablet that does /most/ things, but its presence can unfortunately prevent xsetwacom from working properly if you need special configuration. Those control panels depend on the "libwacom" library to detect tablets (unlike xsetwacom, which works with anything the driver sees), so you'll probably have to install an updated version from source. See https://github.com/jigpu/linuxwacom-wiki-archive/blob/master/wiki/Libwacom.mdEDIT: Clarified text a little.
Last edit: Jason Gerecke 2018-03-20