-
Notifications
You must be signed in to change notification settings - Fork 177
Open
Description
Hi,
I could not figure out any way that I can use this driver instead of the proprietary driver from xp-pen (which too is crashing without any debug possibilities).
I tried to do the following:
- Appended
hid-ids.h
with:
#define USB_DEVICE_ID_UGEE_XPPEN_TABLET_A12 0x080a
Ref: Bus 003 Device 002: ID 28bd:080a UGTABLET 11.6 inch PenDisplay
- Appended
hid-uclogic-params.c
with:
case VID_PID(USB_VENDOR_ID_UGEE,
USB_DEVICE_ID_UGEE_XPPEN_TABLET_A12):
- Appended
hid-uclogic-core.c
with:
{ HID_USB_DEVICE(USB_VENDOR_ID_UGEE,
USB_DEVICE_ID_UGEE_XPPEN_TABLET_A12) },
- Appended the USBID to
xorg.conf
:
Section "InputClass"
Identifier "Ugee/XP-Pen tablets with Wacom driver"
MatchUSBID "28bd:007[1458]|28bd:0094|28bd:0042|28bd:080a|5543:004[57]|5543:0081|5543:0004|5543:3031"
MatchDevicePath "/dev/input/event*"
Driver "wacom"
EndSection
- Ran
sudo make dkms_install
:
$ sudo make dkms_install
dkms add .
Creating symlink /var/lib/dkms/digimend/11/source ->
/usr/src/digimend-11
DKMS: add completed.
dkms build digimend/11
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area...
make -j4 KERNELRELEASE=5.4.138_1 KVERSION=5.4.138_1...(bad exit status: 2)
Error! Bad return status for module build on kernel: 5.4.138_1 (x86_64)
Consult /var/lib/dkms/digimend/11/build/make.log for more information.
make: *** [Makefile:101: dkms_modules_install] Error 10
- The
/var/lib/dkms/digimend/11/build/make.log
shows:
$ cat /var/lib/dkms/digimend/11/build/make.log
DKMS make.log for digimend-11 for kernel 5.4.138_1 (x86_64)
Tue Aug 17 11:12:24 AM CEST 2021
make[1]: Entering directory '/var/lib/dkms/digimend/11/build'
make -C /lib/modules/5.4.138_1/build M=/var/lib/dkms/digimend/11/build modules
make[2]: Entering directory '/usr/src/kernel-headers-5.4.138_1'
CC [M] /var/lib/dkms/digimend/11/build/hid-kye.o
CC [M] /var/lib/dkms/digimend/11/build/hid-uclogic-core.o
CC [M] /var/lib/dkms/digimend/11/build/hid-uclogic-rdesc.o
CC [M] /var/lib/dkms/digimend/11/build/hid-uclogic-params.o
In file included from /var/lib/dkms/digimend/11/build/hid-kye.c:21:
/var/lib/dkms/digimend/11/build/hid-ids.h:62:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before '--' token
62 | xsetwacom --set "$tabletstylus" Area 100 120 32794 32797
| ^~
In file included from /var/lib/dkms/digimend/11/build/hid-uclogic-params.c:19:
/var/lib/dkms/digimend/11/build/hid-ids.h:62:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before '--' token
62 | xsetwacom --set "$tabletstylus" Area 100 120 32794 32797
| ^~
In file included from /var/lib/dkms/digimend/11/build/hid-uclogic-params.c:20:
./include/linux/ctype.h: In function '__tolower':
./include/linux/ctype.h:21:22: error: '_ctype' undeclared (first use in this function)
21 | #define __ismask(x) (_ctype[(int)(unsigned char)(x)])
| ^~~~~~
./include/linux/ctype.h:36:22: note: in expansion of macro '__ismask'
36 | #define isupper(c) ((__ismask(c)&(_U)) != 0)
| ^~~~~~~~
./include/linux/ctype.h:44:6: note: in expansion of macro 'isupper'
44 | if (isupper(c))
| ^~~~~~~
./include/linux/ctype.h:21:22: note: each undeclared identifier is reported only once for each function it appears in
21 | #define __ismask(x) (_ctype[(int)(unsigned char)(x)])
| ^~~~~~
./include/linux/ctype.h:36:22: note: in expansion of macro '__ismask'
36 | #define isupper(c) ((__ismask(c)&(_U)) != 0)
| ^~~~~~~~
./include/linux/ctype.h:44:6: note: in expansion of macro 'isupper'
44 | if (isupper(c))
| ^~~~~~~
./include/linux/ctype.h: In function '__toupper':
./include/linux/ctype.h:21:22: error: '_ctype' undeclared (first use in this function)
21 | #define __ismask(x) (_ctype[(int)(unsigned char)(x)])
| ^~~~~~
./include/linux/ctype.h:31:22: note: in expansion of macro '__ismask'
31 | #define islower(c) ((__ismask(c)&(_L)) != 0)
| ^~~~~~~~
./include/linux/ctype.h:51:6: note: in expansion of macro 'islower'
51 | if (islower(c))
| ^~~~~~~
In file included from /var/lib/dkms/digimend/11/build/hid-uclogic-core.c:23:
/var/lib/dkms/digimend/11/build/hid-ids.h:62:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before '--' token
62 | xsetwacom --set "$tabletstylus" Area 100 120 32794 32797
| ^~
In file included from ./include/linux/ioport.h:13,
from ./include/linux/device.h:15,
from /var/lib/dkms/digimend/11/build/hid-uclogic-core.c:16:
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c: In function 'uclogic_inrange_timeout':
./include/linux/kernel.h:994:51: error: invalid use of undefined type 'struct uclogic_drvdata'
994 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~
./include/linux/compiler.h:397:9: note: in definition of macro '__compiletime_assert'
397 | if (!(condition)) \
| ^~~~~~~~~
./include/linux/compiler.h:417:2: note: in expansion of macro '_compiletime_assert'
417 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
./include/linux/kernel.h:994:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
994 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~~~~~~
./include/linux/kernel.h:994:20: note: in expansion of macro '__same_type'
994 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~
./include/linux/timer.h:153:2: note: in expansion of macro 'container_of'
153 | container_of(callback_timer, typeof(*var), timer_fieldname)
| ^~~~~~~~~~~~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:57:36: note: in expansion of macro 'from_timer'
57 | struct uclogic_drvdata *drvdata = from_timer(drvdata, t,
| ^~~~~~~~~~
In file included from <command-line>:
././include/linux/compiler_types.h:133:35: error: invalid use of undefined type 'struct uclogic_drvdata'
133 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
./include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
./include/linux/kernel.h:997:21: note: in expansion of macro 'offsetof'
997 | ((type *)(__mptr - offsetof(type, member))); })
| ^~~~~~~~
./include/linux/timer.h:153:2: note: in expansion of macro 'container_of'
153 | container_of(callback_timer, typeof(*var), timer_fieldname)
| ^~~~~~~~~~~~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:57:36: note: in expansion of macro 'from_timer'
57 | struct uclogic_drvdata *drvdata = from_timer(drvdata, t,
| ^~~~~~~~~~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:59:35: error: invalid use of undefined type 'struct uclogic_drvdata'
59 | struct input_dev *input = drvdata->pen_input;
| ^~
/var/lib/dkms/digimend/11/build/hid-kye.c: In function 'kye_report_fixup':
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c: In function 'uclogic_report_fixup':
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:80:13: error: invalid use of undefined type 'struct uclogic_drvdata'
80 | if (drvdata->desc_ptr != NULL) {
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:81:18: error: invalid use of undefined type 'struct uclogic_drvdata'
81 | rdesc = drvdata->desc_ptr;
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:82:19: error: invalid use of undefined type 'struct uclogic_drvdata'
82 | *rsize = drvdata->desc_size;
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c: In function 'uclogic_input_mapping':
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:95:42: error: invalid use of undefined type 'struct uclogic_drvdata'
95 | struct uclogic_params *params = &drvdata->params;
| ^~
/var/lib/dkms/digimend/11/build/hid-kye.c:611:12: error: 'easypen_i405x_rdesc_fixed' undeclared (first use in this function); did you mean 'easypen_m406xe_rdesc_fixed'?
611 | rdesc = easypen_i405x_rdesc_fixed;
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| easypen_m406xe_rdesc_fixed
/var/lib/dkms/digimend/11/build/hid-kye.c:611:12: note: each undeclared identifier is reported only once for each function it appears in
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c: In function 'uclogic_input_configured':
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:116:42: error: invalid use of undefined type 'struct uclogic_drvdata'
116 | struct uclogic_params *params = &drvdata->params;
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:134:10: error: invalid use of undefined type 'struct uclogic_drvdata'
134 | drvdata->pen_input = hi->input;
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c: In function 'uclogic_probe':
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:208:43: error: invalid application of 'sizeof' to incomplete type 'struct uclogic_drvdata'
208 | drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL);
| ^
In file included from ./include/linux/workqueue.h:9,
from ./include/linux/srcu.h:21,
from ./include/linux/notifier.h:16,
from ./arch/x86/include/asm/uprobes.h:13,
from ./include/linux/uprobes.h:49,
from ./include/linux/mm_types.h:14,
from ./include/linux/mmzone.h:21,
from ./include/linux/gfp.h:6,
from ./include/linux/xarray.h:14,
from ./include/linux/radix-tree.h:18,
from ./include/linux/idr.h:15,
from ./include/linux/kernfs.h:13,
from ./include/linux/sysfs.h:16,
from ./include/linux/kobject.h:20,
from ./include/linux/device.h:16,
from /var/lib/dkms/digimend/11/build/hid-uclogic-core.c:16:
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:213:22: error: invalid use of undefined type 'struct uclogic_drvdata'
213 | timer_setup(&drvdata->inrange_timer, uclogic_inrange_timeout, 0);
| ^~
./include/linux/timer.h:125:18: note: in definition of macro '__init_timer'
125 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL)
| ^~~~~~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:213:2: note: in expansion of macro 'timer_setup'
213 | timer_setup(&drvdata->inrange_timer, uclogic_inrange_timeout, 0);
| ^~~~~~~~~~~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:214:9: error: invalid use of undefined type 'struct uclogic_drvdata'
214 | drvdata->re_state = U8_MAX;
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:218:35: error: invalid use of undefined type 'struct uclogic_drvdata'
218 | rc = uclogic_params_init(&drvdata->params, hdev);
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:225:39: error: invalid use of undefined type 'struct uclogic_drvdata'
225 | uclogic_params_hid_dbg(hdev, &drvdata->params);
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:226:13: error: invalid use of undefined type 'struct uclogic_drvdata'
226 | if (drvdata->params.invalid) {
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:233:39: error: invalid use of undefined type 'struct uclogic_drvdata'
233 | rc = uclogic_params_get_desc(&drvdata->params,
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:234:18: error: invalid use of undefined type 'struct uclogic_drvdata'
234 | &drvdata->desc_ptr,
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:235:18: error: invalid use of undefined type 'struct uclogic_drvdata'
235 | &drvdata->desc_size);
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:259:34: error: invalid use of undefined type 'struct uclogic_drvdata'
259 | uclogic_params_cleanup(&drvdata->params);
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c: At top level:
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:290:41: warning: 'struct uclogic_drvdata' declared inside parameter list will not be visible outside of this definition or declaration
290 | static int uclogic_raw_event_pen(struct uclogic_drvdata *drvdata,
| ^~~~~~~~~~~~~~~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c: In function 'uclogic_raw_event_pen':
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:293:43: error: invalid use of undefined type 'struct uclogic_drvdata'
293 | struct uclogic_params_pen *pen = &drvdata->params.pen;
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:334:21: error: invalid use of undefined type 'struct uclogic_drvdata'
334 | mod_timer(&drvdata->inrange_timer,
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c: At top level:
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:357:10: warning: 'struct uclogic_drvdata' declared inside parameter list will not be visible outside of this definition or declaration
357 | struct uclogic_drvdata *drvdata,
| ^~~~~~~~~~~~~~~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c: In function 'uclogic_raw_event_frame':
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:381:26: error: invalid use of undefined type 'struct uclogic_drvdata'
381 | u8 prev_state = drvdata->re_state;
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:398:10: error: invalid use of undefined type 'struct uclogic_drvdata'
398 | drvdata->re_state = state;
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c: In function 'uclogic_raw_event':
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:431:42: error: invalid use of undefined type 'struct uclogic_drvdata'
431 | struct uclogic_params *params = &drvdata->params;
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:461:34: error: passing argument 1 of 'uclogic_raw_event_pen' from incompatible pointer type [-Werror=incompatible-pointer-types]
461 | return uclogic_raw_event_pen(drvdata, data, size);
| ^~~~~~~
| |
| struct uclogic_drvdata *
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:290:58: note: expected 'struct uclogic_drvdata *' but argument is of type 'struct uclogic_drvdata *'
290 | static int uclogic_raw_event_pen(struct uclogic_drvdata *drvdata,
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:469:6: error: passing argument 1 of 'uclogic_raw_event_frame' from incompatible pointer type [-Werror=incompatible-pointer-types]
469 | drvdata, ¶ms->frame_list[i],
| ^~~~~~~
| |
| struct uclogic_drvdata *
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:357:27: note: expected 'struct uclogic_drvdata *' but argument is of type 'struct uclogic_drvdata *'
357 | struct uclogic_drvdata *drvdata,
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c: In function 'uclogic_remove':
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:484:25: error: invalid use of undefined type 'struct uclogic_drvdata'
484 | del_timer_sync(&drvdata->inrange_timer);
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:486:15: error: invalid use of undefined type 'struct uclogic_drvdata'
486 | kfree(drvdata->desc_ptr);
| ^~
/var/lib/dkms/digimend/11/build/hid-uclogic-core.c:487:33: error: invalid use of undefined type 'struct uclogic_drvdata'
487 | uclogic_params_cleanup(&drvdata->params);
| ^~
make[3]: *** [scripts/Makefile.build:262: /var/lib/dkms/digimend/11/build/hid-kye.o] Error 1
make[3]: *** Waiting for unfinished jobs....
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:262: /var/lib/dkms/digimend/11/build/hid-uclogic-core.o] Error 1
make[3]: *** [scripts/Makefile.build:262: /var/lib/dkms/digimend/11/build/hid-uclogic-params.o] Error 1
make[2]: *** [Makefile:1734: /var/lib/dkms/digimend/11/build] Error 2
make[2]: Leaving directory '/usr/src/kernel-headers-5.4.138_1'
make[1]: *** [Makefile:25: modules] Error 2
make[1]: Leaving directory '/var/lib/dkms/digimend/11/build'
- Any input to resolve this issue? Some outpus about the xp-pen artist 12 tablet are follows:
$ xinput list | grep UG
⎜ ↳ UGTABLET 11.6 inch PenDisplay Mouse id=8 [slave pointer (2)]
⎜ ↳ UGTABLET 11.6 inch PenDisplay id=9 [slave pointer (2)]
↳ UGTABLET 11.6 inch PenDisplay Keyboard id=10 [slave keyboard (3)]
$ lsusb | grep UG
Bus 003 Device 002: ID 28bd:080a UGTABLET 11.6 inch PenDisplay
The tablet pointer gets detected with default kernel drivers that comes with v5.4.138 in tty console, but does not respond inside X! Hopefully this driver may work. Thanks in advance.
/z
Metadata
Metadata
Assignees
Labels
No labels