Categorieën bekijken

Medion PC USB Graphics Tablet

Please note the mouse and stylus require batteries (active device) otherwise the device won’t output anything (there are no coils inside the stylus like modern tablets)

Windows drivers #


Medion PC USB Graphics Tablet 50007120 MD9570 read-out on a Orange Pi Zero 3 #

When connected you will see the it it recognized, but no driver has been loaded:

usb 4-1: new low-speed USB device number 12 using ohci-platform
usb 4-1: New USB device found, idVendor=08ca, idProduct=0010, bcdDevice= 1.03
usb 4-1: New USB device strings: Mfr=1, Product=3, SerialNumber=0
usb 4-1: Product: USB Tablet Series Version 1.04
usb 4-1: Manufacturer: AIPTEK International Inc.

Compiling driver #

First install build essentials with:

sudo apt install build-essential

Then the KERNEL HEADERS, but these cannot be found in the repo, this does NOT WORK:
sudo apt install linux-headers-$(uname -r)

So after some research it seems the kernel headers are in a DEB file located on the filesystem, you can locate it with this command:
ls /opt/linux-headers*

/opt/linux-headers-next-sun50iw9_1.0.4_arm64.deb

Install the DEB file for the KERNEL HEADERS:

sudo dpkg -i /opt/linux-headers*.deb

Selecting previously unselected package linux-headers-next-sun50iw9.
(Reading database ... 62418 files and directories currently installed.)
Preparing to unpack .../linux-headers-next-sun50iw9_1.0.4_arm64.deb
... Unpacking linux-headers-next-sun50iw9 (1.0.4)
... Setting up linux-headers-next-sun50iw9 (1.0.4)
... Compiling headers - please wait ...

If all went ok, you can see the created folder:

ls /usr/src

... ... linux-headers-6.1.31-sun50iw9 ... ...

So the headers are now located in this folder:

/usr/src/linux-headers-6.1.31-sun50iw9

Compile the aiptek driver

Now the aiptek driver is no longer on some other or modern kernels, so we have to compile it on the sytem, the driver can still be found in the old kernel repos:

https://raw.githubusercontent.com/torvalds/linux/v6.1/drivers/input/tablet/aiptek.c

Icoon

aiptek.c_kernel_6.1.zip #

1 bestand(en) 13.81 KB

Download the source file:

wget https://raw.githubusercontent.com/torvalds/linux/v6.1/drivers/input/tablet/aiptek.c

Now create a Makefile

sudo nano Makefile

And put in the following contents:

obj-m := aiptek.o

KDIR := /usr/src/linux-headers-6.1.31-sun50iw9
PWD := $(shell pwd)

all:
	$(MAKE) -C $(KDIR) M=$(PWD) modules

clean:
	$(MAKE) -C $(KDIR) M=$(PWD) clean

Save the file.

Make (compile) the file

make

make -C /usr/src/linux-headers-6.1.31-sun50iw9 M=/home/pi modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.31-sun50iw9'
CC [M] /home/pi/aiptek.o MODPOST /home/pi/Module.symvers
CC [M] /home/pi/aiptek.mod.o
LD [M] /home/pi/aiptek.ko
make[1]: Leaving directory '/usr/src/linux-headers-6.1.31-sun50iw9'

now we have build the aiptek.ko file, place it in the right folder:

sudo cp aiptek.ko /lib/modules/$(uname -r)/

Reinit the module list:

sudo depmod -a

Load the driver:

sudo modprobe aiptek

Check if the module is loaded:

lsmod | grep aiptek

aiptek                 28672  0

Now you will see in dmesg the following:

aiptek: loading out-of-tree module taints kernel.
aiptek: module verification failed: signature and/or required key missing - tainting kernel
aiptek 4-1:1.0: Aiptek using 400 ms programming speed
input: Aiptek as /devices/platform/soc/5200400.usb/usb4/4-1/4-1:1.0/input/input1
usbcore: registered new interface driver aiptek

And the device is loaded!


Read-out the pad #

You can readout the pad using evtest

pressure:

Event: time 1761913333.974016, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32
...
Event: time 1761913333.974016, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 682

stylus touching the pad:

Event: time 1761913227.174065, type 3 (EV_ABS), code 40 (ABS_MISC), value 33

stylus released from the pad:

Event: time 1761913227.534035, type 3 (EV_ABS), code 40 (ABS_MISC), value 32

stylus button pressed:

Event: time 1761913275.838019, type 3 (EV_ABS), code 40 (ABS_MISC), value 32

stylus or mouse movement:

Event: time 1761913379.645989, type 3 (EV_ABS), code 0 (ABS_X), value 1502
Event: time 1761913379.645989, type 3 (EV_ABS), code 1 (ABS_Y), value 1021


To filter out the mouse buttons you can use:
sudo evtest /dev/input/event1 | grep BTN_

mouse buttons:

Event: time 1761913552.725961, -------------- SYN_REPORT ------------
Event: time 1761913552.997965, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
Event: time 1761913552.997965, -------------- SYN_REPORT ------------
Event: time 1761913553.149946, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
Event: time 1761913553.149946, -------------- SYN_REPORT ------------
Event: time 1761913553.525946, type 1 (EV_KEY), code 273 (BTN_RIGHT), value 1
Event: time 1761913553.525946, -------------- SYN_REPORT ------------
Event: time 1761913553.725965, type 1 (EV_KEY), code 273 (BTN_RIGHT), value 0