forum

[OLD] How to setup a Gaomon, Wacom or any other tablet on Linux! (Driver + Tablet Area + More!)

posted
Total Posts
13
Topic Starter
Iodine
THIS POST IS NO LONGER MAINTAINED DUE TO AN EASIER SETUP PROCESS. NEW INSTRUCTIONS LINK: community/forums/topics/1340468.

DISCLAIMER: This guide does not support XP-PEN as of Aug 9, 2020. I cannot control this as this is DIGImend's issue. The guide will only support the tablets that DIGImend supports. This guide also may not work with every tablet.

Hello! I have been browsing the internet on how to fully setup my Gaomon tablet on my Linux operating system. I didn't find a tutorial to how to fully setup a tablet on Linux, so this tutorial will be a all-in-one guide on how to fully setup your tablet! This guide will teach you how setup all of this!

Since I did all of these steps on Linux Mint 19.3, these steps should work on any Ubuntu or Debian distro. These steps should also work on Arch or any other distro, but you may have to install a couple of required libraries to make everything work.

This guide is really only for people who have experience with Linux. If you are a beginner using Linux, this tutorial may be overwhelming for you.

Table Of Contents

- 1: Installing the drivers from source.

- 2: Confirming that the tablet drivers are working.

- 3: Resizing the tablet area!

- 4: [Optional] Locking tablet area to a single monitor.

- 5: [Optional] Create an optional script that will quickly load your tablet config.

- 6: [Optional] Make the script execute automatically when the tablet gets plugged in.

- 7: Final notes.

Step 1: Installing the drivers from source.

This sounds intimidating, but don't worry, this is actually the easiest step!

The first step is to install the driver files for your tablet. We first have to download the drivers. To do this click this link: https://github.com/DIGImend/digimend-kernel-drivers/archive/master.zip. The file should start downloading after you click it.
We are going to install it from source since I have experienced instability with the github releases.

First, extract the folder inside the .zip file anywhere you want, preferably your Desktop. Once you do that, you want to enter the folder that you just entered via your terminal. To do that, open your terminal and type:
cd <folder directory>
In my case, the driver folder I extracted is located on my desktop at /home/fantasy/Desktop/digimend-kernel-drivers-master, so I would put in:
cd /home/fantasy/Desktop/digimend-kernel-drivers-master

Next, we are going to run a couple of commands. First we are going to make sure we have the proper files to make the drivers work. To do this, run:
sudo apt install -y "linux-headers-$(uname -r)"
If a prompt comes up and states "Do you want to continue? [Y/n]," press ENTER and restart your computer and CD back into the driver directory. If you get "linux-headers-X.X.X-XX-generic is already the newest version (X.X.X-XX.XX~XX.XX.X)", just continue with the tutorial.

Now here comes the important part. Run these two commands (make sure you are in the driver directory.):
make
and
sudo make install
After doing these two commands, unplug your tablet and restart your computer. Once it turns on, login and then plugin your tablet.
If you ever want to uninstall the drivers, CD into the driver directory and execute "sudo make uninstall". If you ever accidentally delete the driver directory and want to uninstall the drivers, don't worry! Just extract the drivers and follow the same steps all the way up to the "make" part and stop there. Then execute the uninstall command!

Step 2: Confirming that the tablet drivers are working.

There are a couple ways of checking if your tablet works. One way of doing this is by going into your tablet settings and checking if you can change basic settings of the tablet. For me it looks like this:


(If it shows that no tablet is detected, that means your drivers are probably not working. Continue following the directions by executing the command below to check if that is the case.)

Another way to check if your tablet is working to execute
xsetwacom --list
Two options should appear.

If nothing is popping up, that means DIGImend is definitely not detecting your tablet. Make sure you installed the driver properly.
Sometimes whenever I boot into my computer and plug in my tablet, it does not detect it. Rebooting my PC while the tablet is plugged in fixes this issue though. If it still does not work. Try running "sudo make uninstall" and "make clean" and start over and re-download the drivers.
If you have and it still does not work, consider making a comment and/or filing an issue on DIGImend's issue page here.

(Optional) To test that data is passing through the tablet, do these commands:
xinput
A list should form that looks like this:
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ SteelSeries SteelSeries Rival 650 Wireless	id=8	[slave  pointer  (2)]
⎜   ↳ SteelSeries SteelSeries Rival 650 Wireless Consumer Control	id=10	[slave  pointer  (2)]
⎜   ↳ SteelSeries SteelSeries Apex Pro TKL Consumer Control	id=13	[slave  pointer  (2)]
⎜   ↳ SteelSeries SteelSeries Apex Pro TKL Mouse	id=14	[slave  pointer  (2)]
⎜   ↳ HID-compliant Mouse HID-compliant Mouse 	id=17	[slave  pointer  (2)]
⎜   ↳ GAOMON Gaomon Tablet Pad pad            	id=15	[slave  pointer  (2)]
⎜   ↳ GAOMON Gaomon Tablet Pen stylus         	id=16	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ SteelSeries SteelSeries Rival 650 Wireless Keyboard	id=9	[slave  keyboard (3)]
    ↳ SteelSeries SteelSeries Apex Pro TKL    	id=11	[slave  keyboard (3)]
    ↳ SteelSeries SteelSeries Apex Pro TKL    	id=12	[slave  keyboard (3)]
    ↳ SteelSeries SteelSeries Arctis 5        	id=18	[slave  keyboard (3)]
    ↳ Eee PC WMI hotkeys                      	id=19	[slave  keyboard (3)]
    ↳ SteelSeries SteelSeries Rival 650 Wireless Consumer Control	id=20	[slave  keyboard (3)]
    ↳ SteelSeries SteelSeries Apex Pro TKL Consumer Control	id=21	[slave  keyboard (3)]

For me, I see that my Gaomon S620 Tablet has two inputs. To make sure that my tablet is sending the correct data, I will have to print out the active properties of the stylus. To do this, find the stylus input. For me it is "GAOMON Gaomon Tablet Pen stylus id=16."

Type in the following command, where <id> is the number of your stylus input:
xinput --watch-props <id>
Since my id for my stylus is 16, I would put in:
xinput --watch-props 16
Now put your pen on your tablet, some text should print in your terminal. You can keep removing and placing your pen to keep testing if it works.
This was some of my output:
Property 'Wacom Serial IDs' changed.
	Wacom Serial IDs (317):	109, 1, 2, 1, 2
Property 'Wacom Pressurecurve' changed.
	Wacom Pressurecurve (316):	0, 0, 100, 100
Property 'Wacom Pressure Threshold' changed.
	Wacom Pressure Threshold (319):	27
Property 'Wacom Serial IDs' changed.
	Wacom Serial IDs (317):	109, 1, 2, 0, 0
Property 'Wacom Pressurecurve' changed.
	Wacom Pressurecurve (316):	0, 0, 100, 100
Property 'Wacom Pressure Threshold' changed.
	Wacom Pressure Threshold (319):	27
Property 'Wacom Serial IDs' changed.
	Wacom Serial IDs (317):	109, 1, 2, 1, 2
Property 'Wacom Pressurecurve' changed.
	Wacom Pressurecurve (316):	0, 0, 100, 100
Property 'Wacom Pressure Threshold' changed.
As you can see, as I repeatedly lifted my pen off the tablet, the terminal detected the pressure of the pen.

Step 3: Resizing the tablet area!

Congratulations! You have now reached the hard part! Don't worry, it isn't that hard...

The first thing to do is to list the ids of our tablet using the xsetwacom tool. Don't worry if you are using a Gaomon or some other tablet. The DIGImend drivers allows the Wacom tool to understand your tablet values.

Execute this command again:
xsetwacom --list
Two entries should appear, one with your pad and one with your stylus for me it looks like
GAOMON Gaomon Tablet Pen stylus 	id: 15	type: STYLUS    
GAOMON Gaomon Tablet Pad pad    	id: 16	type: PAD       
Now we have to find the default area of our tablet. To do this find the id of your stylus interface. For me, it is 15. I would put in
xsetwacom set 15 area -1 -1 -1 -1
...where 15 is your stylus id! This id will also be used to modify the properties of your tablet, so keep this number in the back of your head.

Now lets get our area! Now execute the following command (replace 15 with your id of course):
xsetwacom get 15 area
My output is:
0 0 33020 20320

So here is where it gets tricky...





Ignore the pink text.

So basically the red and green areas are self explanitory. So remember my default values that I got (0 0 33020 20320)? Those numbers are what we will be modifying. Each number has a place on each side of your tablet (interaction area).

On the top right, you can see what number is what (for me).

A and B work differently than C and D.

The higher the numbers are for A and B, the closer they get to C and D.

The lower the numbers are for C and D, the closer they get to A and B, (that is why the first two numbers are 0's).

They are opposites in how they function.

For example I set the values of my tablet area to 5000 5000 20020 14000. The area would then look something like this:


Now that we understand the values, lets finally begin experimenting with what values suites well.
This will take a while of constantly tweaking values, but if you usually have your tablet area set to one monitor, I HIGHLY recommend you to do step 4 before continuing. If you enable monitor lock after you get your perfect values, it will screw up how your cursor moves and you will have to redo the values.

Now, to change the area, its actually really easy since you now understand how the values work.
The format is:
xsetwacom set <id> area <A> <B> <C> <D>

If you don't have a reference for tablet values, try dividing C and D by 2 and inserting what you get into there.

For me, I found the perfect values for my Gaomon S620. I use (without monitor lock):
xsetwacom set 15 area 17 1 13868 5019

When you finally find the perfect values for your tablet, make sure you save the command somewhere so you can execute it when you replugin your tablet.

We are done with the hard part!

Now is a good time to rehydrate! Go drink some Water, Lemonade, Orange Juice, whatever fits your fancy.
If you are satisfied with how everything works and want to stop here, I suggest you leave a comment since this is my first post. Any constructive critisism or love is very appreciated.

Step 4: [Optional] Locking tablet area to a single monitor.

To do this we need to first list all of the available displays:
xrandr -q
Output:
Screen 0: minimum 8 x 8, current 4480 x 1440, maximum 32767 x 32767
DVI-D-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected 1920x1080+2560+360 (normal left inverted right x axis y axis) 598mm x 336mm
   1920x1080     60.00*+  59.94    50.00    60.00    50.04  
   1680x1050     59.95  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x720      60.00    59.94    50.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32    56.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    72.81    59.94    59.93  
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
   2560x1440    144.01*+ 119.88    99.90    60.02  
   1920x1080    143.85   119.98    60.00    59.94    50.00  
   1680x1050     59.95  
   1600x900      60.00  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1152x864      59.96  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    60.32    56.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
Now lets tell xsetwacom to lock our monitor. I want to lock my tablet to the monitor connected via the DP-2 port, so I execute:
xsetwacom set <id> MapToOutput DP-2
...where DP-2 is your output. For some reason this does not work for me so I just use the X11 geometry string of my display:
xsetwacom set <id> MapToOutput 2560x1440+0+0
Save the final command somewhere.

Step 5: [Optional] Create an optional script that will quickly load your tablet config.

If you want to make your life a bit more simpler, then putting your config in a script can help.

This time we are going to be using the name of the stylus interface since there is a chance that the id can change upon reboot. You can find the name by using the good ol' "xsetwacom --list" command.
I am going to use "GAOMON Gaomon Tablet Pen stylus" and my values as an example.
Do:
nano ~/Desktop/osuconfig.sh
Then put in the commands that you use with #!/bin/bash at the first line. For example, my config:
#!/bin/bash
xsetwacom set "GAOMON Gaomon Tablet Pen stylus" area 17 1 13868 5019
You can paste into nano by pressing CTRL + SHIFT + V. Same with copying.
If you are declaring a monitor lock, make sure you do that before you call your tablet area. Ex:
#!/bin/bash
xsetwacom set "GAOMON Gaomon Tablet Pen stylus" MapToOutput 2560x1440+0+0
xsetwacom set "GAOMON Gaomon Tablet Pen stylus" area 17 1 13868 5019

To run it, right click it and go to permissions. Then check "Allow executing file as program." After that, double click the file on your desktop and hit "Run in Terminal."

Step 6: [Optional] Make the script execute automatically when the tablet gets plugged in.

If you know what you are doing, you can continue. This step can possibly break your system so be careful.

For some reason this website does not like this section of the post. It just says "Access Denied" whenever I try to submit this section. You can view the instructions by clicking this link: https://pastebin.com/raw/jCpiAVke.

Final notes.

This is my first post, and depending on how this post is received, I may make more Linux tutorials. Any constructive critisism or love is very appreciated. If I run into issues, I will make sure I update this page with fixes.
Additionally, if this post gets REALLY popular, I am going to probably open a GitHub repo so people can contribute changes to this page!
Lotcam
Iodine, do you have a discord where I can dm you? I'm having a lot of trouble configuring my tablet and I would really appreciate your help
oSumAtrIX
You can use OpenTabletDriver by InfinityGhost without the need of a difficult setup
Topic Starter
Iodine

Lotcam wrote:

Iodine, do you have a discord where I can dm you? I'm having a lot of trouble configuring my tablet and I would really appreciate your help
I am so so sorry about the late response, @Lotcam. My Discord username is Renossance#0236. Once you friend me i'll accept your friend request and be more than happy to help!



oSumAtrIX wrote:

You can use OpenTabletDriver by InfinityGhost without the need of a difficult setup
I'll take a look into this and update my guide if this makes it easier. Thanks for the suggestion, @oSumAtrIX!

(I enabled notifications so now I will get an email if anyone reply's from now on)
Forza
.
Topic Starter
Iodine

Forza wrote:

Yooo thank you dude, I had to go back to windows because of my tablet, Will see if it works
Yeah, for sure!

oSumAtrIX wrote:

You can use OpenTabletDriver by InfinityGhost without the need of a difficult setup
The drivers you suggested are fairly new and are under heavy development, though it seems like a wayyyyyyy easier alternative from the DIGImend DKMS drivers. Once the repo owner releases the first stable version, I will test it out.
Jallot
I tried OpenTabletDriver and it works amazing on Arch Linux. I have Wacom CTL-472
0Meh0
Hi, about the last step, i need help...
After some attempts that took me enough time to regret it and after banging my head against the wall, i'm fairly sure that i need help...
After debugging a little i've found that the shell script runs before the driver fully starts and returns error code 255.
I've been able to run it at the end of the driver initialization, but it still returns 255.
To be clear, the script works with and without root or sudo when ran manually.
Help would be aprecieted...

edit: i have the same tablet as you

(Ubuntu 20.04 LTS)
Jallot

0Meh0 wrote:

Hi, about the last step, i need help...
After some attempts that took me enough time to regret it and after banging my head against the wall, i'm fairly sure that i need help...
After debugging a little i've found that the shell script runs before the driver fully starts and returns error code 255.
I've been able to run it at the end of the driver initialization, but it still returns 255.
To be clear, the script works with and without root or sudo when ran manually.
Help would be aprecieted...

edit: i have the same tablet as you

(Ubuntu 20.04 LTS)
Hi there! What driver did you try and what tablet do you have?
fer[i]
Hi!
I have a Genius Easypen I405X, Digimend says its supported. Everytime i try "make",and "sudo make install" commands, i get this error:
Deleting module version: 9
completely from the DKMS tree.
------------------------------
Done.
Loading new digimend-9 DKMS files...
Building for 5.8.0-25-generic
Building initial module for 5.8.0-25-generic
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/digimend-dkms.0.crash'
Error! Bad return status for module build on kernel: 5.8.0-25-generic (x86_64)
Consult /var/lib/dkms/digimend/9/build/make.log for more information.
dpkg: error processing package digimend-dkms (--configure):
installed digimend-dkms package post-installation script subprocess returned error exit status 10
Hibák történtek a feldolgozáskor:
digimend-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)


I have Lubuntu's latest version.
Thanks for help
Meyon

oSumAtrIX wrote:

You can use OpenTabletDriver by InfinityGhost without the need of a difficult setup
OpenTabletDriver worked ᵃˡᵐᵒˢᵗ flawlessly, thank you.
Topic Starter
Iodine
Wow, I have not expected this much attention! Since OpenTabletDriver is out of pre-release, and I finally got my account back, I am going to make a new post with new instructions. Thanks to oSumAtrIX for making me aware of this all-in-one driver suite!
Topic Starter
Iodine
Finished making the new instructions. They are located here: community/forums/topics/1340468
Please sign in to reply.

New reply