Parblo Tablet

From ArchWiki

Parblo tablets does not have an official support for Linux by Parblo. Even with no community support as well, there is a workaround to make it works on Arch Linux.

Configuration

Identifying

The Arch Linux must be able to recognize the tablet inputs with no problems, but the preset buttons should be in an odd configuration and should not be able to be modified. Some of them should be even with no functionality.

With the tablet connected, the first step must be identify your tablet using the command lsusb. The output should be something like

Bus 001 Device 009: ID 0483:a640 STMicroelectronics Parblo A640 V2(F1)

(In this example we have a Parblo A640 V2 tablet. Make sure to match the output with your tablet.) It is important to grab the Vendor ID, which is found in the output in ID vendor:product, so in this example is 0483.

After identifying the Vendor ID, you must find the most generic modalias that match with your tablet. To get this information, you should run in terminal the following command:

# find /sys -name *modalias | xargs grep -i vendor_id

The output should display something like:

# find /sys -name *modalias | xargs grep -i 0483
/sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.0/0003:0483:A640.000C/input/input40/modalias:input:b0003v0483pA640e0100-e0,1,4,14,k71,72,73,74,75,77,79,7A,7B,7C,7D,7E,7F,80,81,82,83,84,85,86,87,88,89,8A,8C,8E,96,98,9E,9F,A1,A3,A4,A5,A6,AD,B0,B1,B2,B3,B4,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,F0,ram4,lsfw
/sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.0/0003:0483:A640.000C/input/input39/modalias:input:b0003v0483pA640e0100-e0,1,2,3,4,k110,111,112,113,114,14A,r0,1,6,8,B,C,a0,1,18,m4,lsfw
/sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.0/0003:0483:A640.000C/modalias:hid:b0003g0001v00000483p0000A640
/sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.0/modalias:usb:v0483pA640d0000dc00dsc00dp00ic03isc01ip03in00
/sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.1/0003:0483:A640.000D/input/input41/modalias:input:b0003v0483pA640e0100-e0,1,3,4,k140,14A,14B,14C,ra0,1,18,1A,1B,m4,lsfw
/sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.1/0003:0483:A640.000D/modalias:hid:b0003g0001v00000483p0000A640
/sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.1/modalias:usb:v0483pA640d0000dc00dsc00dp00ic03isc01ip02in01
/sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.2/0003:0483:A640.000E/modalias:hid:b0003g0001v00000483p0000A640
/sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.2/modalias:usb:v0483pA640d0000dc00dsc00dp00ic03isc00ip00in02

You must find the most generic term that correspond to all of /input/input*/modalias:input: you found. In this example the most generic term is b0003v0483pA640e0100.

Creating a hwdb rule

In order to create a hwdb rule to set your tablet, you must identify the input file associated to the buttons you want remap. You should install evtest, run the command cat /proc/bus/input/devices:

$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=0483 Product=a640 Version=0100
N: Name="  Parblo A640 V2(F1) Mouse"
P: Phys=usb-0000:00:12.0-1.1.1/input0
S: Sysfs=/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.0/0003:0483:A640.000F/input/input45
U: Uniq=
H: Handlers=event5 mouse0 
B: PROP=2
B: EV=1f
B: KEY=400 1f0000 0 0 0 0
B: REL=1943
B: ABS=1000003
B: MSC=10

Now look for your tablet and then run the command evtest /dev/input/eventX, where you have to replace eventX to the corresponding events associated with your tablet, then press your tablet buttons trying to find what event is associated with each button.

$ evtest /dev/input/event5
Event: time 1512706221.107613, -------------- SYN_REPORT ------------
Event: time 1512708889.737079, type 4 (EV_MSC), code 331 (MSC_SCAN), value d0045

When you found the buttons you wanna remap, take note of their values. In this case we had a d0045 as an entry value.

After identifying the modalias and the key values, you must create a hwdb rule.

Create a file called 10-parblo-tablet.hwdb in /etc/udev/hwdb.d with the following content, replacing [modalias] with your corresponding modalias and [value] with your corresponding key value:

evdev:input:[modalias]*
 KEYBOARD_KEY_[value]=332

You can insert more KEYBOARD_KEY_X below, if you need.

In this example we are changing the key code to an arbitrary number 332 and it may not work with you. But you can check the full key code list in /usr/include/linux/input-event-codes.h.

Remapping keys

After remapping your keys to something your OS can recognize, you can edit manually the /etc/udev/hwdb.d/10-parblo-tablet.hwdb file to remap the keys to what you need. Else, you can download input-remapper-gitAUR and use a graphical interface to easily manage your keys.

See also