Having decided to take the plunge and upgrade my 16.04 install to the 18.04 lts version, I find that my graphics tablet no longer works, except as a second monitor. The stylus does nothing, and the computer neither registers it's position nor any pressure from it; looking in the terminal and inputing xinput shows that the input drivers don't even register the device.
lshw shows that the tablet is present however, x.org just isn't picking it up; I've done a bunch of searching already and finally managed to narrow down the problem to a libinput bug:
[ 2607.492] (II) event2 - UC-Logic 21.5" Tablet Monitor: is tagged by udev as: Tablet
[ 2607.492] (EE) event2 - UC-Logic 21.5" Tablet Monitor: libinput bug: missing tablet capabilities: resolution.Ignoring this device.
[ 2607.492] (II) event2 - UC-Logic 21.5" Tablet Monitor: device is a tablet
[ 2607.532] (II) event2 - failed to create input device '/dev/input/event2'.
[ 2607.532] (EE) libinput: UC-Logic 21.5" Tablet Monitor: Failed to create a device for /dev/input/event2
Unfortunately, while the workaround seems fairly obvious (I presume I have to define the resolution for the tablet) I'm not entirely sure where to put the fix, though I suspect I'll figure out what it should look like when and if I do.
Update: I've managed to hunt down the file I needed to look at, 60-evdev.hwdb (located at /lib/udev/hwdb.d) and have followed its suggested fix, creating a 61-evdev-local.hwdb file in the same folder looking like this:
#XP-Pen / UC-Logic 21.5" Tablet Monitor*
evdev:name:UC-Logic 21.5" Tablet Monitor:dmi:*UC-Logic Technology Corp.:0x0047:*
EVDEV_ABS_00=::300
EVDEV_ABS_01=::300
After getting this file set up one then (as super user) executes the following commands:
systemd-hwdb update
udevadm trigger /dev/input/eventXX
(XX being the event, in this case events 2 and 3)
Unfortunately, this is as far as I've been able to get; lsusb -v doesn't report the product id (coming back with 0x0047) for this particular graphics tablet, and without that attempting to update hwdb doesn't seem to work since it wants the entire DMI string. So this problem is maybe solved if I can find the product id by trawling through the internet (unfortunately the box it came in is long gone.)
Alright, next attempt made and ehhh. So after letting it rest for a bit and revising my search terms I eventually came across uclogic-tools; these are a set of utilities for making sense of tablets manufactured by the company in question since apparently they obfuscate this data for some reason.
uclogic-probe returns a bunch of hex info:
M 55 00 43 00 2D 00 4C 00 6F 00 67 00 69 00 63 00
P 32 00 31 00 2E 00 35 00 22 00 20 00 54 00 61 00 62 00 6C 00 65 00 74 00 20 00 4D 00 6F 00 6E 00 69 00 74 00 6F 00 72 00
S 64 0C 03 B8 92 80 52 03 00 FF 07 D0 07
S 65 04 03 20 A0
S 6E 04 03 31 00
S 79 18 03 46 00 34 00 30 00 31 00 20 00 53 00 65 00 72 00 69 00 65 00 73 00
S 7A 08 03 01 00 00 00 00 00
S 7B 0C 03 48 00 4B 00 20 00 4F 00 6E 00
which translates to
Manufacturer: UC-Logic
Product: 21.5" Tablet Monitor
Max X: 37560
Max Y: 21120
Max pressure: 2047
Resolution: 2000
Internal model: F401 Series
Buttons status: HK On
Now, this stuff doesn't produce anything workable, but getting the internal model and looking through the windows driver installer gets me eventually to this:
%DEVICE.USB41% = HID_TABLET, HID\VID_5543&PID_0041&COL01 ;PF8060 (F300, F401)
PF8060 seems like it's probably the actual dmi for the device, but I still can't make it work. Still I feel kinda heartened, and it feels like I was actually able to make some actual headway on this problem. I'll try the newer version of libinput in a bit though this problem seems to mostly be down to manufacturer obstinance at this point.