GithubHelp home page GithubHelp logo

veikk-linux-driver's Introduction

An official driver has been released by VEIKK.

This project should provide basic functionality for tablets but is no longer actively maintained. The original author is too busy with school/work.


VEIKK Linux Driver

A driver for VEIKK-brand digitizers/drawing tablets using the usbhid API. Configuration options are exposed in sysfs and configurable with an associated GUI. Connects low-level hardware events to the input subsystem (e.g., libinput), with some processing/mapping logic in between. This draws heavily from the Wacom driver for Linux.

image highlighting the v2 release


Features:

Currently, a set of basic basic digitizer features are supported, such as:

  • Full range and resolution for tablet pressure and spatial sensitivity
  • Configurable screen mapping, orientation, and (cubic) pressure mapping
  • Driver (using /etc/modules-load.d/) and options (using /etc/modprobe.d) persist after reboots

More features are planned for the near future, such as:

  • Button remapping
  • Support for gesture pads and additional buttons (model-dependent)
  • Device/model-specific configuration options

Installation

Make sure you have make and the appropriate linux headers installed (linux-headers-$(uname -r) on Ubuntu, linux-headers on Arch). See this for more details.

make
sudo make all install clean

If you are getting a Required key not available error, please see this issue.

Check out the issues tab for known setup issues and solutions.

AUR (dkms) package

Thanks to @artixnous, this driver is available as an AUR package with dkms! See input-veikk-dkmsAUR. Make sure to run modprobe veikk after installation to load the driver.

Uninstallation
sudo make uninstall

Configuration

Currently, the configurable parameters are screen_size, screen_map, orientation, and pressure_map, and are all available in sysfs under /sys/module/veikk/parameters with permissions 0644. Documentation on the parameters is available in veikk_modparms.c. You can update a parameter by simply writing the new value to it as root.

The visual configuration utility is available at @jlam55555/veikk-linux-driver-gui.


Changelog:

  • v2.0: Renamed from veikk-s640-driver, redesigned from the ground up to be more extensible.
  • v1.1: Basic command-line configuration utility is created! Includes ability to change tablet orientation, mapping onto section of screen, and mapping raw pressure input to pressure output.
  • v1.0: Basic digitizer capabilities (e.g., pressure sensitivity) for S640 and similar tablets.

Development status

Development was focused on the S640, A50, and VK1560, devices that are owned by the author of this driver.


Media

veikk-linux-driver's People

Contributors

bwrrp avatar jeremiasstotter avatar jlam55555 avatar nbogie avatar sekhat avatar tianyu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

veikk-linux-driver's Issues

Bad mapping with A50

It doesn't matter what screen resolution is used (1080p,720p or SVGA), the device only lets me to move at the top left part of the screen, i can go as down as to the middle of the screen, and as right as 2/3 of the screen (more or less).

Error in compiling (incompatible gcc/plugin versions)

I have Manjaro 18.10 and i tried installing AUR package but failed to do so. here's what the package manager prints


`Cloning input-veikk-dkms build files...
Checking input-veikk-dkms dependencies...
Preparing...

Building input-veikk-dkms...
==> Making package: input-veikk-dkms r42.0359cc1-2 (Sunday 10 November 2019 10:27:51 AM IST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating input-veikk git repo...
Fetching origin
  -> Found veikk.conf
  -> Found dkms.conf
==> Validating source files with sha1sums...
    input-veikk ... Skipped
    veikk.conf ... Passed
    dkms.conf ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Creating working copy of input-veikk git repo...
Cloning into 'input-veikk'...
done.
==> Starting pkgver()...
==> Entering fakeroot environment...
==> Starting package()...
==> Tidying install...
  -> Removing libtool files...
  -> Purging unwanted files...
  -> Removing static library files...
  -> Stripping unneeded symbols from binaries and libraries...
  -> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "input-veikk-dkms"...
  -> Generating .PKGINFO file...
  -> Generating .BUILDINFO file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: input-veikk-dkms r42.0359cc1-2 (Sunday 10 November 2019 10:27:55 AM IST)
==> Cleaning up...

Preparing...
Resolving dependencies...
Checking inter-conflicts...
Running post-transaction hooks...
Checking keyring...
Checking integrity...
Loading packages files...
Checking file conflicts...
Checking available disk space...
Installing input-veikk-dkms (r42.0359cc1-2)...
Running post-transaction hooks...
Install DKMS modules
==> dkms install input-veikk/r42.0359cc1 -k 5.2.21-1-MANJARO
Error! Bad return status for module build on kernel: 5.2.21-1-MANJARO (x86_64)
Consult /var/lib/dkms/input-veikk/r42.0359cc1/build/make.log for more information.
Arming ConditionNeedsUpdate...
Transaction successfully finished.
`

The make log is as follows :

`DKMS make.log for input-veikk-r42.0359cc1 for kernel 5.2.21-1-MANJARO (x86_64)
Sun Nov 10 10:27:57 IST 2019
make: Entering directory '/usr/lib/modules/5.2.21-1-MANJARO/build'
  CC [M]  /var/lib/dkms/input-veikk/r42.0359cc1/build/veikk.o
cc1: error: incompatible gcc/plugin versions
cc1: error: fail to initialize plugin ./scripts/gcc-plugins/structleak_plugin.so
make[1]: *** [scripts/Makefile.build:285: /var/lib/dkms/input-veikk/r42.0359cc1/build/veikk.o] Error 1
make: *** [Makefile:1597: _module_/var/lib/dkms/input-veikk/r42.0359cc1/build] Error 2
make: Leaving directory '/usr/lib/modules/5.2.21-1-MANJARO/build'
`

Initially, I had gcc9.2 and I was getting the same error, but on Kubuntu 19.10 which has gcc 8 I was able to compile successfully so I compile gcc7 on majaro and changed the default to gcc7 but still I get the same error. Am I doing something wrong?

What upstream documentation is missing?

I think I might be in contact with a representative of VEIKK; they're doing some aggressive, though surprisingly courteous, social media solicitation (probably against their platform's ToS, but ehh)

If you "had a wishlist" for just-what-the-heck-you-want "from" the manufacturer, what would that be? Is there a particular datasheet, or specification, or such, that's obviously a thorn in your side and you're having to reverse-engineer? Or, is all the data already exposed through the HID protocol, and the driver is a pure engineering effort?

VK1560 support

I noticed you said you intend to support the vk1560 down the road. Assuming you find time to do so, I have one available and would be happy to test builds for you when that's ready.

Missing ../crypto/bio/bss_file.c at the make install step

Hi, I was trying to follow the instructions in the README, and got through the
make step with no problem. I got the sudo make all install clean step, but encountered issue #3 (Required key not available) so I went ahead and disabled SecureBoot, and now I'm here.

While SecureBoot is disabled I re-ran make and make all install clean, but the install step threw some errors:

Here are my terminal outputs:

~/Downloads/veikk-linux-driver/ make
make -C /lib/modules/4.15.0-123-generic/build M=/home/ocean/Downloads/veikk-linux-driver modules
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-123-generic'
  CC [M]  /home/ocean/Downloads/veikk-linux-driver/veikk_drv.o
  CC [M]  /home/ocean/Downloads/veikk-linux-driver/veikk_vdev.o
  CC [M]  /home/ocean/Downloads/veikk-linux-driver/veikk_modparms.o
  LD [M]  /home/ocean/Downloads/veikk-linux-driver/veikk.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/ocean/Downloads/veikk-linux-driver/veikk.mod.o
  LD [M]  /home/ocean/Downloads/veikk-linux-driver/veikk.ko
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-123-generic'
~/Downloads/veikk-linux-driver/ sudo make all install clean
make -C /lib/modules/4.15.0-123-generic/build M=/home/ocean/Downloads/veikk-linux-driver modules
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-123-generic'
  Building modules, stage 2.
  MODPOST 1 modules
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-123-generic'
make -C /lib/modules/4.15.0-123-generic/build M=/home/ocean/Downloads/veikk-linux-driver modules_install
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-123-generic'
  INSTALL /home/ocean/Downloads/veikk-linux-driver/veikk.ko
At main.c:160:
- SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:72
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:79
sign-file: certs/signing_key.pem: No such file or directory
  DEPMOD  4.15.0-123-generic
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-123-generic'
depmod
modprobe veikk
mkdir -p /etc/modules-load.d
echo "veikk" > /etc/modules-load.d/veikk.conf
make -C /lib/modules/4.15.0-123-generic/build M=/home/ocean/Downloads/veikk-linux-driver clean
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-123-generic'
  CLEAN   /home/ocean/Downloads/veikk-linux-driver/.tmp_versions
  CLEAN   /home/ocean/Downloads/veikk-linux-driver/Module.symvers
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-123-generic'

I noticed that this is very similar to the bug raised in #27 , which was said to be solved and closed. But obviously that's not the case.
I tried to follow the advice in #27 and run the sudo depmod and sudo modprobe veikk (both of which returned no output in the terminal) and tried sudo make all install clean again. Still, same error.

`hid-generic` stealing Veikk device

Bug description

For some older kernel versions (this appeared to be happening in kernel 4.15, but not in 4.18 or 5.1), the hid-generic driver seems to want to gobble up the driver the moment it's plugged in, so need to unload it from hid-generic.

The cause of this problem is not confirmed to be the kernel version, but I will do additional testing and see if hid-generic has had any changes in newer kernel versions. Multiple users have reported that upgrading from 4.15 to 4.18 solved the issue, and all installations on kernels 4.18+ have not had this issue.

Workarounds

Temporary fix: Force unload device from hid-generic driver

If this fix works, it should persist until your next reboot. Do this before installing the driver; if the driver is already installed, remove it and reinstall it after running the following command:

echo xxxx:2FEB:xxxx.xxxx | sudo tee /sys/bus/hid/drivers/hid-generic/unbind

replacing the xs with the corresponding values from ls /sys/bus/hid/devices. (2FEB:000x is the vendor ID, product ID of the VEIKK product.) If this is successful, running ls /sys/bus/hid/drivers/veikk should list the VEIKK device.

Permanent fix: Upgrade kernel to 4.18+

The default kernel for Ubuntu 18.04 LTS is 4.15, and older systems have older kernels (source). If you're using an older kernel, upgrading it to 4.18+ solved the issue in all known cases.

This can be done by installing Ukuu (commands below for Ubuntu):

sudo add-apt-repository ppa:teejee2008/ppa
sudo apt-get update && sudo apt-get install ukuu

Run Ukuu, then download a kernel version 4.18+. Reboot to boot into the new kernel and try installing again.

A15 Pro X & Y Axis Are Opposite Then Screen X & Y Axis

Instead of reading it the same as the screen x & y axis, it seems to have flipped the x & y axis around on the tablet to work in a vertical orientation on the screen instead of horizontally(the correct orientation). Running linux-headers-4.4.0-178-generic on Trisquel 8.0.

Driver failed to install.

[kp@localhost veikk-linux-driver]$ make
make -C /lib/modules/5.7.8-200.fc32.x86_64/build M=/home/kp/trails/veikk-linux-driver modules
make[1]: Entering directory '/usr/src/kernels/5.7.8-200.fc32.x86_64'
CC [M] /home/kp/trails/veikk-linux-driver/veikk_drv.o
CC [M] /home/kp/trails/veikk-linux-driver/veikk_vdev.o
CC [M] /home/kp/trails/veikk-linux-driver/veikk_modparms.o
LD [M] /home/kp/trails/veikk-linux-driver/veikk.o
MODPOST 1 modules
CC [M] /home/kp/trails/veikk-linux-driver/veikk.mod.o
LD [M] /home/kp/trails/veikk-linux-driver/veikk.ko
make[1]: Leaving directory '/usr/src/kernels/5.7.8-200.fc32.x86_64'

[kp@localhost veikk-linux-driver]$ sudo make install
make -C /lib/modules/5.7.8-200.fc32.x86_64/build M=/home/kp/trails/veikk-linux-driver modules_install
make[1]: Entering directory '/usr/src/kernels/5.7.8-200.fc32.x86_64'
INSTALL /home/kp/trails/veikk-linux-driver/veikk.ko
At main.c:160:

  • SSL error:02001002:system library:fopen:No such file or directory: crypto/bio/bss_file.c:69
  • SSL error:2006D080:BIO routines:BIO_new_file:no such file: crypto/bio/bss_file.c:76
    sign-file: certs/signing_key.pem: No such file or directory
    DEPMOD 5.7.8-200.fc32.x86_64
    make[1]: Leaving directory '/usr/src/kernels/5.7.8-200.fc32.x86_64'
    depmod
    modprobe veikk
    modprobe: ERROR: could not insert 'veikk': Operation not permitted
    make: *** [Makefile:16: install] Error 1
    [kp@localhost veikk-linux-driver]$

veikk_set_veikk_screen_size: Deserialization reads uninitialized values

Issue Description

The following deserialization code (in veikk_set_veikk_screen_size) upsets clang-tidy.

if((error = kstrtouint(val, 10, &ss)))
return error;
// check that entire number is zero, or that width, height > 0 (see desc)
screen_size = *(struct veikk_screen_size *)&ss;
if(ss && (screen_size.width<=0 || screen_size.height<=0))
return -EINVAL;

This is what clang-tidy says about it:

veikk_modparms.c:56:57: warning: The left operand of '<=' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
    if(ss && (screen_size.width<=0 || screen_size.height<=0))
                                                        ^

height is a garbage value because ss (u32, 4 bytes) is reinterpreted as a struct veikk_screen_size (16 bytes). Only x is actually initialized by line 55.
height is a "garbage value" because of the way two 16-bit integers are unpacked from a 32-bit integer using type punning. This probably works, but there are ways to do this that aren't considered unspecified behavior - such as shifting and masking.

In revision 81c7207, veikk_set_veikk_screen_size used veikk_ss_to_rect, which didn't have this problem.

Versions

This is a regression introduced by commit 73be60c.

Tablet Surface Area

Hey! This has been really useful, and the companion gui as well. How would I go about reducing the tablet surface area? For reference, you can do this in the tablet drivers created by hawku. Is something similar possible?

Modprobe error: Required key not available

"Bug" Description

When installing on a system with UEFI Secure Boot enabled (and kernel configuration module.sig_enforce=1), this error may occur during installation:

modprobe veikk
modprobe: ERROR: could not insert 'veikk': Required key not available
Makefile:13: recipe for target 'install' failed
make: *** [install] Error 1

Secure Boot requires all binaries to be signed by a trusted key; disabling it allows for unsigned modules to be installed. This is not an error specific to this driver: this is true for many drivers for Windows and Linux (e.g., Nvidia, Virtualbox). Feel free to use any guides provided by either driver vendors, some of which are listed at the end; the following is a summary of the two main solutions.

Solutions

Solution 1: Disable Secure Boot

Disable Secure Boot from the BIOS, then reinstall normally. This allows unsigned modules to be signed.

(This is similar to the Windows option to allow installation of unsigned modules; see section 13 of the Veikk FAQ.)

Solution 2: Manually sign the driver.

Warning: This is more advanced. Your mileage may vary. This specific tutorial is adapted from this blog post. See the blog post for a more detailed description and images.

  1. First, make sure mokutil and openssl are installed (command for Ubuntu):

     sudo apt install mokutil openssl
    
  2. Paste the following command into the terminal after changing the credentials in the [ req_distinguished_name ] section. This will generate a configuration for the generated key.

    cat >>/tmp/x509.conf <<EOF
    [ req ]
    default_bits = 4096
    distinguished_name = req_distinguished_name
    prompt = no
    string_mask = utf8only
    x509_extensions = extensions
    
    [ req_distinguished_name ]
    O = Example, Inc.
    CN = Example, Inc. Kernel signing key
    emailAddress = [email protected]
    
    [ extensions ]
    basicConstraints=critical,CA:FALSE
    keyUsage=digitalSignature
    subjectKeyIdentifier=hash
    authorityKeyIdentifier=keyid
    EOF
    
  3. Generate the key with openssl and enroll it with mokutil:

    sudo openssl req -x509 -new -nodes -utf8 -sha256 -days 99999 -batch -config /tmp/x509.conf -outform DER -out pubkey.der -keyout priv.key
    sudo mokutil --import pubkey.der
    
  4. Reboot your computer. You will be greeted with the MokManager (see the blog post for images). Select "Enroll MOK" -> "Continue" -> "Yes" -> create a password for the MOK -> "Reboot"

  5. If you haven't already, install the module normally. The error will still exist -- this is okay, because we're about to sign it and then load it.

     make
     sudo make install
    
  6. (Additional step not in the blog post for newer kernels, most likely can skip this step): Check the format of the compiled file using modinfo -n veikk. If it ends in .ko.xz rather than .ko, you need to decompress the file first, and then reload modules.dep. If it ends in .ko, skip this step.

     # only if it ends in .ko.xz
     sudo xz --decompress $(modinfo -n veikk)
     sudo depmod
    
  7. Sign the file with the enrolled key.

     /lib/modules/$(uname -r)/scripts/sign-file sha256 priv.key pubkey.der $(modinfo -n veikk)
    
  8. Load the module. If successful, it should give you no errors:

     sudo modprobe veikk
    

If this method does not work for you, disabling Secure Boot may be the way to go.

Other guides to loading unsigned modules

Installing under Debian and derivatives: suggested patch

Thanks for writing this driver!

Since Debian and derivatives don't have a System.map file, the install step fails. As has been pointed out in other bug reports, running depmod manually solves it.

So could I suggest that the modules_install line in Makefile is modified to read:

make -C $(BUILD_DIR) M=$(CURDIR) modules_install || depmod

That should make it build on more systems without manual tweaking.

Best wishes!

manjaro support?

does this support manjaro? im thinking of switching to manjaro, but I'm an osu player and I have a veikk tablet. does this support manjaro?

ERRORs when install xdma driver on Ubuntu

Hi,everyone!
I have got a problem when I attempt to install xdma driver on my Ubuntu server.
Please give me some advice!!!!
My linux system is Ubuntu 18.04
kernel is 4.15.0-132-generic

firstly I download the .zip file from here and then install the driver like what the usage says;
unfortunately ,when I “cd xdma” and “make install” I meet the first problem as below:

_At main.c:160:

  • SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:72
  • SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:79
    sign-file: certs/signing_key.pem: No such file or directory
    DEPMOD 4.15.0-132-generic
    make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-132-generic'_

then I use the method #39 gives
cd /usr/src/linux-headers-$(uname -r)/certs
sudo openssl req -new -x509 -newkey rsa:2048 -keyout signing_key.pem -outform DER -out signing_key.x509 -nodes -subj "/CN=Owner/"

then I got that like below shows:

Can't load /root/.rnd into RNG
140138494010560:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/root/.rnd
Generating a RSA private key
.......................................+++++
..................+++++
writing new private key to 'signing_key.pem'

I DONT know what that means and then make install again,the SSL problem gone missing !

then I do "cd tools" and "make" the result is :

cc -c -std=c99 -o reg_rw.o reg_rw.c -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
cc -o reg_rw reg_rw.o
cc -c -std=c99 -o dma_to_device.o dma_to_device.c -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
In file included from /usr/include/assert.h:35,
from dma_to_device.c:13:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
184 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
| ^~~~~~~
cc -lrt -o dma_to_device dma_to_device.o -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
cc -c -std=c99 -o dma_from_device.o dma_from_device.c -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
In file included from /usr/include/assert.h:35,
from dma_from_device.c:13:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
184 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
| ^~~~~~~
cc -lrt -o dma_from_device dma_from_device.o -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
cc -c -std=c99 -o performance.o performance.c -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
cc -o performance performance.o -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE

then I began to "modprobe xdma" another problem appeared as shown below:

modprobe: FATAL: Module xdma not found in directory /lib/modules/4.15.0-132-generic

I also tried to "cd tests" and "./load_driver.sh" BUT it went wrong:

Loading xdma driver...insmod: ERROR: could not insert module ../xdma/xdma.ko: Invalid module format
Error: Kernel module did not load properly.
FAILED

Please give me some advice !!!

BEST REGARDS!!

A50 not working at all after installing the driver

I tried with the 1.0 from the AUR and compiling 2.0 myself, but the thing doesn't work.
What info should i give as feedback?

lsusb gives me this:
Bus 001 Device 002: ID 2feb:0003 VEIKK.INC A50

Is the GUI tool needed or something?

Off-Topic: @artixnous Are you planning an update on your AUR version? That would be great :')

"FATAL: Module veikk not found in directory" and a potential fix

Hello. I'm using Linux Mint (Ubuntu based) and whenever I try to follow the instructions provided, it says:FATAL: Module veikk not found in directory.
What I've found to work on this is following the instructions as given (You MUST follow the initial instructions, it will not work if you don't.) Once you get the error, type sudo depmod, and then sudo modprobe veikk, and then re-type sudo make all install clean, and it should work just fine. As far as I know, this works on Pop!_OS 19.10, and Linux Mint 19.3. This should work with other ubuntu based distributions.

Make error.

Hi, i am facing this error when i run the command "make"

make -C /lib/modules/5.3.0-51-generic/build M=/home/shigetorum/Escritorio/aaa/veikk-linux-driver-master modules
make[1]: se entra en el directorio '/usr/src/linux-headers-5.3.0-51-generic'
  CC [M]  /home/shigetorum/Escritorio/aaa/veikk-linux-driver-master/veikk_drv.o
  CC [M]  /home/shigetorum/Escritorio/aaa/veikk-linux-driver-master/veikk_vdev.o
  CC [M]  /home/shigetorum/Escritorio/aaa/veikk-linux-driver-master/veikk_modparms.o
  LD [M]  /home/shigetorum/Escritorio/aaa/veikk-linux-driver-master/veikk.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/shigetorum/Escritorio/aaa/veikk-linux-driver-master/veikk.mod.o
  LD [M]  /home/shigetorum/Escritorio/aaa/veikk-linux-driver-master/veikk.ko
make[1]: se sale del directorio '/usr/src/linux-headers-5.3.0-51-generic'

Working Step-By-Step For Ubuntu (Add To README?)

This issue post is based off of other closed issues.

Secureboot was enabled, so from issue #3 it needed to be disabled and this guide says how to disable it. (Could this guide be added to Issue #3 or linked in README?)

(Note: When it asks to enter password character 7 for example, if you set the password as 12345678 then you can enter "7", or if it asks for password character 4, can enter "4")

(Note: I believe Secureboot must remain "disabled" for this driver to work, see "Is It Safe To Disable Secureboot?" - the answer appears to be generally "yes".)

Then after rebooting, (solution from issue #27) navigate to the veikk-linux-driver-master directory and:

sudo depmod

sudo modprobe veikk

sudo make all install clean

(maybe we could add to this post if others have problems and we work through them? I don't think other issues presented themselves)

Makefile Error

I tried to install this driver on Manjaro. I build the input-veikk-dkms from the AUR repositories using Pamac. Then, I tried to run the 'make' command inside the directory where I have extracted the "veikk-s640-driver-master", but this error occurred:

make -C /lib/modules/4.19.80-1-MANJARO/build M=/home/ralphryan/Downloads/veikk-s640-driver-master modules
make[1]: *** /lib/modules/4.19.80-1-MANJARO/build: No such file or directory. Stop.
make: *** [Makefile:7: all] Error 2

I searched through the web, but wasn't able to find or get a clue of what to do to solve this problem. Can you please help me out?

unable to "make" in ubuntu

sudo make
make -C /lib/modules/4.15.0-112-generic/build M=/home/user/Downloads/lo/Macro Solution/veikk-linux-driver-2.0 modules
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-112-generic'
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
arch/x86/Makefile:157: CONFIG_X86_X32 enabled but no binutils support
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
/bin/sh: 1: cannot create /home/user/Downloads/lo/Macro/.cache.mk: Directory nonexistent
make[1]: *** No rule to make target 'Solution/veikk-linux-driver-2.0'. Stop.
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-112-generic'
make: *** [Makefile:8: all] Error 2

"make" doesn't work on raspberry pi

when i type make, the feedback error is like bellow:

pi@raspberrypi:~/Downloads/veikk-linux-driver-master $ make
make -C /lib/modules/5.4.79-v7l+/build M=/home/pi/Downloads/veikk-linux-driver-master modules
make[1]: Entering directory '/usr/src/linux-headers-5.4.79-v7l+'
Building modules, stage 2.
MODPOST 1 modules
ERROR: "__aeabi_ldivmod" [/home/pi/Downloads/veikk-linux-driver-master/veikk.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:94: __modpost] Error 1
make[1]: *** [Makefile:1645: modules] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.4.79-v7l+'
make: *** [Makefile:8: all] Error 2

please help me to fix this issued

(Debian & derivatives issue) Getting modprobe: FATAL: Module veikk not found in directory when attempting to install

Hello!

After entering:

sudo make all install clean

Into the terminal, I get the following:

make -C /lib/modules/5.3.0-26-generic/build M=/home/[username]/Downloads/veikk-linux-driver-master modules
make[1]: Entering directory '/usr/src/linux-headers-5.3.0-26-generic'
Building modules, stage 2.
MODPOST 1 modules
make[1]: Leaving directory '/usr/src/linux-headers-5.3.0-26-generic'
make -C /lib/modules/5.3.0-26-generic/build M=/home/[username]/Downloads/veikk-linux-driver-master modules_install
make[1]: Entering directory '/usr/src/linux-headers-5.3.0-26-generic'
INSTALL /home/[username]/Downloads/veikk-linux-driver-master/veikk.ko
At main.c:160:
SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:72
SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:79
sign-file: certs/signing_key.pem: No such file or directory
DEPMOD 5.3.0-26-generic
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[1]: Leaving directory '/usr/src/linux-headers-5.3.0-26-generic'
modprobe veikk
modprobe: FATAL: Module veikk not found in directory /lib/modules/5.3.0-26-generic
Makefile:14: recipe for target 'install' failed
make: *** [install] Error 1

The drivers fail to install. I have secure boot disabled and I believe all of the appropriate headers are installed (I've checked and made sure they're up to date). I'm not quite sure what's going on, I don't think it has to do with secure boot, though I might be wrong. I have that disabled in the bios according to ye olde instruction manual. And if it matters, I'm using the latest Zorin OS Core, a relatively fresh install that I did yesterday.

Thanks for any info!

LED support/extra devices shown with `lsusb`?

Request for help from the developer: I'm not really sure why Veikk registers three interfaces (?) when plugging in the USB. If you've looked at dmesg's output when using this driver, you can clearly see that "VEIKK S640 probed successfully/removed" shows up three times (this is for the S640 at least -- not sure about other models).

Running usbhid-dump -d 2feb as root, I get:

002:009:002:DESCRIPTOR         1578425202.646505
 06 0A FF 09 01 A1 01 85 09 09 02 75 08 95 08 15
 00 26 FF 00 81 02 09 03 75 08 95 08 15 00 26 FF
 00 91 02 C0

002:009:001:DESCRIPTOR         1578425202.646749
 05 01 09 06 A1 01 85 03 05 07 19 E0 29 E7 15 00
 25 01 75 01 95 08 81 02 05 07 19 00 29 FF 26 FF
 00 75 08 95 06 81 00 C0

002:009:000:DESCRIPTOR         1578425202.647238
 05 01 09 02 A1 01 85 01 09 01 A1 00 05 09 19 01
 29 03 15 00 25 01 95 03 75 01 81 02 95 05 81 01
 05 01 09 30 09 31 26 FF 7F 95 02 75 10 81 02 05
 0D 09 30 26 FF 1F 95 01 75 10 81 02 C0 C0 05 0D
 09 02 A1 01 85 02 09 20 A1 00 09 42 09 44 09 45
 15 00 25 01 75 01 95 03 81 02 95 02 81 03 09 32
 95 01 81 02 95 02 81 03 75 10 95 01 35 00 A4 05
 01 09 30 65 13 55 0D 46 34 03 27 10 77 00 00 81
 02 09 31 46 4D 04 27 60 4F 00 00 81 02 B4 09 30
 45 00 26 FF 1F 81 02 C0 C0

You can plug each of these into an HID parser to see what they mean.

The latter device's first usage (002:009:000, mouse usage) is what's been emitting all of the input reports I've been using -- if you uncomment the .report = veikk_report in veikk_drv.c you can see the raw report formats and IDs. For me with the S640, all reports have ID 1 and have the same structure (the structure is illustrated with the struct veikk_pen_report, which I cast the data to effortlessly). This data packet includes the three buttons available on the S640, X/Y position, and pressure sensitivity -- everything the S640 can output.

This makes me wonder what the other two devices are for, as well as the second usage (digitizer) in the third device. This line of @gromgull's PR suggests that the digitizer usage for the third device is used for extra buttons for the A50 at least (something I have yet to confirm), but then what about the other devices?

From the HID parser, the first (002:009:002) has a vendor-defined usage page (not helpful to me here), and has a 64 bit (8 bits per report and 8 reports) input and output report descriptors defined with report ID=9. I thought this might be an LED (the other descriptors don't have an output described, and I'm not sure what else could be both an input or output), but I have no idea about the structure of these report descriptors. I tried sending an output report using hid_hw_output_report with a report of structure 0x09ffffffffffffffff (report id=9 and a bunch of 1's) to see what would happen but I got nothing to happen. Again, I never get any input reports from this either.

The second device (002:009:001) has a keyboard usage page. I'm not really sure how to interpret the structure of it or what it could imply. Again, the S640 being the simplest VEIKK tablet, there's no keyboard or key-like structures other than the two buttons and stylus tip switch, so maybe it's only for other VEIKK devices?

Any thoughts? Are these other usages likely to be placeholders, used only for the more complex VEIKK devices? Is this common in industry? Given how quickly VEIKK has been churning out new devices, I wouldn't be too surprised if this were the case and they were using the same HID interface/descriptors with placeholders left for future devices.

(I've peeked at Wacom's driver for LEDs, but it's more complex and less necessary than other things I'd like to tackle at the moment.)

I might also post this on Stack Overflow at some point, but I think it is quite domain-specific and will just leave it here for now.

Driver Spamming Kernel Logs

The current version of the driver (master branch) spams the kernel logs with coordinate readings from the tablet. This does not make the kernel logs or its downstream consumers happy.

It looks like it's coming from the printk() call in veikk_s640_handle_raw_data(). If so, this should probably be changed to dev_dbg() instead, so that the logging severity filters can screen it out.

To Reproduce:

  • Compile the Veikk driver; load it using insmod.
  • Plug in a Veikk tablet.
  • Wave the pen briefly over the tablet surface.
  • Display the kernel logs using dmesg.

The logs will contain an enormous quantity of raw pen coordinate/pressure values.

Logging Sample

[1035713.602701] usb 2-9.2: new full-speed USB device number 20 using xhci_hcd
[1035713.703786] usb 2-9.2: New USB device found, idVendor=2feb, idProduct=0006, bcdDevice= 0.00
[1035713.703789] usb 2-9.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[1035713.703791] usb 2-9.2: Product: A15PRO
[1035713.703792] usb 2-9.2: Manufacturer: VEIKK.INC
[1035713.703794] usb 2-9.2: SerialNumber: 0000001
[1035713.713100] input: VEIKK A15 Pro Pen as /devices/pci0000:00/0000:00:14.0/usb2/2-9/2-9.2/2-9.2:1.0/0003:2FEB:0006.0012/input/input41
[1035713.713243] veikk 0003:2FEB:0006.0012: hidraw2: USB HID v1.00 Mouse [VEIKK.INC A15PRO] on usb-0000:00:14.0-9.2/input0
[1035713.713245] veikk 0003:2FEB:0006.0012: VEIKK A15 Pro Pen probed successfully.
[1035713.714343] input: VEIKK A15 Pro Pen as /devices/pci0000:00/0000:00:14.0/usb2/2-9/2-9.2/2-9.2:1.1/0003:2FEB:0006.0013/input/input42
[1035713.714487] veikk 0003:2FEB:0006.0013: hidraw3: USB HID v1.00 Keyboard [VEIKK.INC A15PRO] on usb-0000:00:14.0-9.2/input1
[1035713.714489] veikk 0003:2FEB:0006.0013: VEIKK A15 Pro Pen probed successfully.
[1035713.715213] input: VEIKK A15 Pro Pen as /devices/pci0000:00/0000:00:14.0/usb2/2-9/2-9.2/2-9.2:1.2/0003:2FEB:0006.0014/input/input43
[1035713.715321] veikk 0003:2FEB:0006.0014: hidraw4: USB HID v1.00 Device [VEIKK.INC A15PRO] on usb-0000:00:14.0-9.2/input2
[1035713.715323] veikk 0003:2FEB:0006.0014: VEIKK A15 Pro Pen probed successfully.
[1035727.757854] 0 0 0
[1035727.779849] 14126 7588 0
[1035727.785852] 14126 7588 0
[1035727.791851] 14126 7588 0
[1035727.797848] 14126 7588 0
[1035727.803848] 14126 7588 0
[1035727.809852] 14126 7588 0
[1035727.815849] 14126 7588 0
[1035727.821847] 14126 7550 0
[1035727.825849] 14126 7522 0
[1035727.829847] 14126 7503 0
[1035727.833847] 14107 7474 0
[1035727.837846] 14093 7455 0
[1035727.841852] 14093 7426 0
[1035727.845852] 14077 7400 0
[1035727.849848] 14063 7378 0
[1035727.853848] 14048 7362 0
[1035727.857847] 14035 7338 0
[1035727.861849] 14022 7315 0
[1035727.865847] 14010 7293 0
[1035727.869846] 13997 7270 0
[1035727.873846] 13985 7251 0
[1035727.877848] 13974 7231 0
[1035727.881851] 13960 7210 0
[1035727.885864] 13948 7187 0
[1035727.889848] 13937 7166 0
[1035727.893851] 13927 7143 0
[1035727.897871] 13915 7125 0
[1035727.901848] 13903 7105 0
[1035727.905852] 13893 7084 0
[1035727.909852] 13893 7063 0
[ ...blah, blah, blah...]

EDIT: This patch fixes the issue for me:

diff --git a/veikk_vdev.c b/veikk_vdev.c
index 9ec5af5..f88493f 100644
--- a/veikk_vdev.c
+++ b/veikk_vdev.c
@@ -94,6 +94,7 @@ static int veikk_s640_setup_and_register_input_devs(struct veikk *veikk) {
 static int veikk_s640_handle_raw_data(struct veikk *veikk, u8 *data, int size,
                                       unsigned int report_id) {
     struct input_dev *pen_input = veikk->pen_input;
+    struct device *dev = &veikk->hdev->dev;
     struct veikk_pen_report *pen_report;
 
     switch(report_id) {
@@ -107,7 +108,7 @@ static int veikk_s640_handle_raw_data(struct veikk *veikk, u8 *data, int size,
         pen_report = (struct veikk_pen_report *) data;
 
         // TODO: remove
-        printk("%u %u %u\n",pen_report->x, pen_report->y, pen_report->pressure);
+        dev_dbg (dev, "%u %u %u\n", pen_report->x, pen_report->y, pen_report->pressure);
 
         input_report_abs(pen_input, veikk->x_map_axis,
                          veikk->x_map_dir*pen_report->x);

im having a bit of trouble with my tablet on krita

My tablet works fine responds and all but when i try and draw on krita it doesnt move the cursor on the art but responds on everything else. It would be great if some one could give me a bit more detail and explain what i need to do to make it work.(PS im on a chromebook so that might also be a factor. Im not that good with code so could someone help me with the code i need to change to fix my issue?

Veikk tablet does not affect the cursor, what's wrong?

I'm definitely using manjaro before, but now i'm changing into ubuntu due to i can't make on my konsole. I thought it would be plug and play, but it doesn't affect my cursor at all. I have no idea cause i'm still learning.

Mouse3/middle mouse/button 2 gets released if the pen stays still

Here's result from xinput test. When I do actually release the button after, there's no event.

motion a[0]=12850175 a[1]=9699327 a[2]=0 
motion a[0]=12843007 a[1]=9736703 a[2]=0 
button press   2 
motion a[0]=12836351 a[1]=9775103 a[2]=0 
motion a[0]=12830719 a[1]=9815039 a[2]=0 
motion a[0]=12830207 a[1]=9819135 a[2]=0 
motion a[0]=12831743 a[1]=9824255 a[2]=0 
motion a[0]=12835839 a[1]=9828863 a[2]=0 
motion a[0]=12843519 a[1]=9832959 a[2]=0 
motion a[0]=12855295 a[1]=9836543 a[2]=0 
motion a[0]=12870143 a[1]=9839103 a[2]=0 
motion a[0]=12889087 a[1]=9841151 a[2]=0 
motion a[0]=12911103 a[1]=9842175 a[2]=0 
motion a[0]=12937215 a[1]=9842687 a[2]=0 
motion a[0]=12966911 a[1]=9842687 a[2]=0 
motion a[0]=13001215 a[1]=9842687 a[2]=0 
motion a[0]=13038591 a[1]=9842687 a[2]=0 
motion a[0]=13079551 a[1]=9841151 a[2]=0 
motion a[0]=13124095 a[1]=9837567 a[2]=0 
motion a[0]=13171199 a[1]=9831423 a[2]=0 
motion a[0]=13221887 a[1]=9822207 a[2]=0 
motion a[0]=13275647 a[1]=9810431 a[2]=0 
motion a[0]=13330943 a[1]=9795583 a[2]=0 
motion a[0]=13387263 a[1]=9778687 a[2]=0 
motion a[0]=13445631 a[1]=9758719 a[2]=0 
motion a[0]=13505023 a[1]=9735679 a[2]=0 
motion a[0]=13565439 a[1]=9710591 a[2]=0 
motion a[0]=13626879 a[1]=9682943 a[2]=0 
motion a[0]=13686783 a[1]=9653247 a[2]=0 
motion a[0]=13746175 a[1]=9622527 a[2]=0 
motion a[0]=13804031 a[1]=9589247 a[2]=0 
motion a[0]=13860351 a[1]=9554943 a[2]=0 
motion a[0]=13915135 a[1]=9519615 a[2]=0 
motion a[0]=13968895 a[1]=9483263 a[2]=0 
motion a[0]=14020607 a[1]=9445887 a[2]=0 
motion a[0]=14070783 a[1]=9406463 a[2]=0 
motion a[0]=14119935 a[1]=9364991 a[2]=0 
motion a[0]=14167039 a[1]=9319935 a[2]=0 
motion a[0]=14213119 a[1]=9271807 a[2]=0 
motion a[0]=14257663 a[1]=9221119 a[2]=0 
motion a[0]=14299647 a[1]=9167359 a[2]=0 
motion a[0]=14339583 a[1]=9111551 a[2]=0 
motion a[0]=14377471 a[1]=9053695 a[2]=0 
motion a[0]=14412799 a[1]=8994815 a[2]=0 
motion a[0]=14445567 a[1]=8934399 a[2]=0 
motion a[0]=14476287 a[1]=8873471 a[2]=0 
motion a[0]=14503935 a[1]=8812031 a[2]=0 
motion a[0]=14529535 a[1]=8749567 a[2]=0 
motion a[0]=14552575 a[1]=8686079 a[2]=0 
motion a[0]=14573055 a[1]=8623615 a[2]=0 
motion a[0]=14591487 a[1]=8560639 a[2]=0 
motion a[0]=14607359 a[1]=8498687 a[2]=0 
motion a[0]=14620671 a[1]=8436735 a[2]=0 
motion a[0]=14631935 a[1]=8375807 a[2]=0 
motion a[0]=14641151 a[1]=8314879 a[2]=0 
motion a[0]=14648831 a[1]=8255999 a[2]=0 
motion a[0]=14654463 a[1]=8197631 a[2]=0 
motion a[0]=14657535 a[1]=8138751 a[2]=0 
motion a[0]=14659071 a[1]=8081407 a[2]=0 
motion a[0]=14659071 a[1]=8024063 a[2]=0 
motion a[0]=14659071 a[1]=7968255 a[2]=0 
motion a[0]=14657535 a[1]=7914495 a[2]=0 
motion a[0]=14654975 a[1]=7862271 a[2]=0 
motion a[0]=14650367 a[1]=7811071 a[2]=0 
motion a[0]=14643711 a[1]=7760895 a[2]=0 
motion a[0]=14635007 a[1]=7711231 a[2]=0 
motion a[0]=14625279 a[1]=7662591 a[2]=0 
motion a[0]=14614015 a[1]=7614463 a[2]=0 
motion a[0]=14601727 a[1]=7567359 a[2]=0 
motion a[0]=14588927 a[1]=7522815 a[2]=0 
motion a[0]=14575103 a[1]=7479807 a[2]=0 
motion a[0]=14560255 a[1]=7439359 a[2]=0 
motion a[0]=14544895 a[1]=7400447 a[2]=0 
motion a[0]=14529535 a[1]=7363071 a[2]=0 
motion a[0]=14513663 a[1]=7325695 a[2]=0 
motion a[0]=14497791 a[1]=7288319 a[2]=0 
motion a[0]=14481407 a[1]=7250431 a[2]=0 
motion a[0]=14463999 a[1]=7211007 a[2]=0 
motion a[0]=14445567 a[1]=7171071 a[2]=0 
motion a[0]=14425599 a[1]=7129599 a[2]=0 
motion a[0]=14405631 a[1]=7088127 a[2]=0 
motion a[0]=14385151 a[1]=7046655 a[2]=0 
motion a[0]=14364671 a[1]=7007743 a[2]=0 
motion a[0]=14343679 a[1]=6969855 a[2]=0 
motion a[0]=14322687 a[1]=6934015 a[2]=0 
motion a[0]=14301695 a[1]=6900223 a[2]=0 
motion a[0]=14280191 a[1]=6868479 a[2]=0 
motion a[0]=14258687 a[1]=6838271 a[2]=0 
motion a[0]=14236671 a[1]=6809599 a[2]=0 
motion a[0]=14214143 a[1]=6783487 a[2]=0 
motion a[0]=14191103 a[1]=6757887 a[2]=0 
motion a[0]=14167551 a[1]=6734335 a[2]=0 
motion a[0]=14143487 a[1]=6711807 a[2]=0 
motion a[0]=14119423 a[1]=6690815 a[2]=0 
motion a[0]=14095359 a[1]=6670847 a[2]=0 
motion a[0]=14071807 a[1]=6651903 a[2]=0 
motion a[0]=14049279 a[1]=6633471 a[2]=0 
motion a[0]=14027263 a[1]=6616575 a[2]=0 
motion a[0]=14005247 a[1]=6600191 a[2]=0 
motion a[0]=13983231 a[1]=6584831 a[2]=0 
motion a[0]=13962239 a[1]=6570495 a[2]=0 
motion a[0]=13941247 a[1]=6557695 a[2]=0 
motion a[0]=13920767 a[1]=6546431 a[2]=0 
motion a[0]=13900287 a[1]=6536703 a[2]=0 
motion a[0]=13879807 a[1]=6528511 a[2]=0 
motion a[0]=13858815 a[1]=6520831 a[2]=0 
motion a[0]=13837823 a[1]=6515199 a[2]=0 
motion a[0]=13818367 a[1]=6511615 a[2]=0 
motion a[0]=13799423 a[1]=6509567 a[2]=0 
motion a[0]=13782015 a[1]=6508543 a[2]=0 
motion a[0]=13766143 a[1]=6508543 a[2]=0 
motion a[0]=13752319 a[1]=6509567 a[2]=0 
motion a[0]=13740031 a[1]=6512127 a[2]=0 
motion a[0]=13729791 a[1]=6516223 a[2]=0 
motion a[0]=13721599 a[1]=6521855 a[2]=0 
motion a[0]=13715455 a[1]=6527999 a[2]=0 
motion a[0]=13710335 a[1]=6534143 a[2]=0 
motion a[0]=13707263 a[1]=6541311 a[2]=0 
motion a[0]=13705215 a[1]=6548991 a[2]=0 
motion a[0]=13703679 a[1]=6557183 a[2]=0 
motion a[0]=13702655 a[1]=6566399 a[2]=0 
motion a[0]=13702655 a[1]=6576639 a[2]=0 
motion a[0]=13702655 a[1]=6587391 a[2]=0 
motion a[0]=13703167 a[1]=6598655 a[2]=0 
motion a[0]=13704703 a[1]=6609407 a[2]=0 
motion a[0]=13706239 a[1]=6620159 a[2]=0 
motion a[0]=13709311 a[1]=6630911 a[2]=0 
motion a[0]=13712383 a[1]=6640127 a[2]=0 
motion a[0]=13716479 a[1]=6648831 a[2]=0 
motion a[0]=13720575 a[1]=6655487 a[2]=0 
motion a[0]=13724159 a[1]=6661119 a[2]=0 
motion a[0]=13728255 a[1]=6665215 a[2]=0 
motion a[0]=13732351 a[1]=6667775 a[2]=0 
motion a[0]=13735935 a[1]=6669311 a[2]=0 
motion a[0]=13738495 a[1]=6669823 a[2]=0 
motion a[0]=13741055 a[1]=6669823 a[2]=0 
motion a[0]=13743615 a[1]=6669823 a[2]=0 
motion a[0]=13745151 a[1]=6669823 a[2]=0 
motion a[0]=13746687 a[1]=6669823 a[2]=0 
motion a[0]=13747711 a[1]=6668799 a[2]=0 
motion a[0]=13748223 a[1]=6666751 a[2]=0 
motion a[0]=13748735 a[1]=6664191 a[2]=0 
motion a[0]=13748735 a[1]=6661119 a[2]=0 
motion a[0]=13748735 a[1]=6658559 a[2]=0 
motion a[0]=13747199 a[1]=6657023 a[2]=0 
button release 2 
motion a[0]=13746175 a[1]=6654975 a[2]=0 
motion a[0]=13745151 a[1]=6652927 a[2]=0 
motion a[0]=13745663 a[1]=6649343 a[2]=0 
motion a[0]=13747711 a[1]=6644735 a[2]=0 

Unable to install module, missing kernel headers

The driver doesn't work, and the only lead I have is pamac saying that it can't install the module. I'm installing it through pamac from the arch user repository with the "pamac build" command. My S640 doesn't have pressure sensitivity after it finishes. Here's the build output from pamac:

Building input-veikk-dkms...
==> Making package: input-veikk-dkms r42.0359cc1-2 (2019年08月14日 15時34分43秒)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating input-veikk git repo...
Fetching origin
  -> Found veikk.conf
  -> Found dkms.conf
==> Validating source files with sha1sums...
    input-veikk ... Skipped
    veikk.conf ... Passed
    dkms.conf ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Creating working copy of input-veikk git repo...
Cloning into 'input-veikk'...
done.
==> Starting pkgver()...
==> Entering fakeroot environment...
==> Starting package()...
==> Tidying install...
  -> Removing libtool files...
  -> Purging unwanted files...
  -> Removing static library files...
  -> Stripping unneeded symbols from binaries and libraries...
  -> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "input-veikk-dkms"...
  -> Generating .PKGINFO file...
  -> Generating .BUILDINFO file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: input-veikk-dkms r42.0359cc1-2 (2019年08月14日 15時34分46秒)
==> Cleaning up...

Resolving dependencies...
Checking inter-conflicts...
Checking keyring...                                                        [1/1]
Checking integrity...                                                      [1/1]
Loading packages files...                                                  [1/1]
Checking file conflicts...                                                 [1/1]
Checking available disk space...                                           [1/1]
Installing input-veikk-dkms (r42.0359cc1-2)...                             [1/1]
Running post-transaction hooks...
Install DKMS modules                                                       [1/2]
==> Unable to install module input-veikk/r42.0359cc1 for kernel 4.19.66-1-MANJARO: Missing kernel headers.
Arming ConditionNeedsUpdate...                                             [2/2]

Building input-veikk-config...
==> Making package: input-veikk-config 1.1-1 (2019年08月14日 15時34分47秒)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found README
  -> Found input-veikk-config.sh
==> Validating source files with sha1sums...
    README ... Passed
    input-veikk-config.sh ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
==> Entering fakeroot environment...
==> Starting package()...
==> Tidying install...
  -> Removing libtool files...
  -> Purging unwanted files...
  -> Removing static library files...
  -> Stripping unneeded symbols from binaries and libraries...
  -> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "input-veikk-config"...
  -> Generating .PKGINFO file...
  -> Generating .BUILDINFO file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: input-veikk-config 1.1-1 (2019年08月14日 15時34分48秒)
==> Cleaning up...

Resolving dependencies...
Checking inter-conflicts...
Checking keyring...                                                        [1/1]
Checking integrity...                                                      [1/1]
Loading packages files...                                                  [1/1]
Checking file conflicts...                                                 [1/1]
Checking available disk space...                                           [1/1]
Installing input-veikk-config (1.1-1)...                                   [1/1]
Transaction successfully finished.

Tablet needs replugging after compile (v2.0)

With the new version of the driver, it seems that the tablet needs to be unplugged and replugged after compiling (with make install) before the input events begin to register. (This isn't a problem on startup or if the tablet is plugged in after compiling.) Not sure why at the moment, probably has to do with the way the module is registered.

This wasn't a problem with the 1.x version, so I'll probably just look at that to try to fix this issue, but this is non-urgent.

Two monitors

Hi Jonathan, I'm very grateful for your driver, I have a problem when trying to use it on two monitors, it only works on monitor 1, do you have a suggestion to activate it on both monitors?

Problems with stylus proximity.

My veikk s640 just arrived, I couldn't figure it out how to set it up until I saw a tutorial. But unfortunately, I still have a very annoyed problem. I'm using Xournal++ to take some college notes in Xubuntu and Pop!OS, and for some reason, even without touching the surface of the tablet, I'm able draw a thiny and soft line on the paper, sometimes invisible, but when I save the document, the disaster appears. I have to add that I can write on the canvas without pressing any button from the stylus. The same thing happen to me while I'm working with others apps. I even installed the GUI from the Github repository, but it didn't work. I just don't know what to do next. I´d be very grateful if any of you give me a piece of advice to solve this. Thanks.

Module veikk not found

I seem to be having an issue when installing the driver. I keep getting make error: 1 when doing sudo make all install clean.

Here is the full log:
make -C /lib/modules/5.3.0-28-generic/build M=/home/zn0n/Documents/veikk-linux-driver modules_install
make[1]: Entering directory '/usr/src/linux-headers-5.3.0-28-generic'
INSTALL /home/zn0n/Documents/veikk-linux-driver/veikk.ko
At main.c:160:

  • SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:72
  • SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:79
    sign-file: certs/signing_key.pem: No such file or directory
    DEPMOD 5.3.0-28-generic
    Warning: modules_install: missing 'System.map' file. Skipping depmod.
    make[1]: Leaving directory '/usr/src/linux-headers-5.3.0-28-generic'
    modprobe veikk
    modprobe: FATAL: Module veikk not found in directory /lib/modules/5.3.0-28-generic
    Makefile:14: recipe for target 'install' failed
    make: *** [install] Error 1

thanks in advance

Error: ‘struct hid_report’ has no member named ‘application’

I'm trying to install version 2 on a machine running Ubuntu 16.04.7 LTS and am getting an error message (details below of what the make command gives me): It would be great to use my A15 on an Ubuntu machine rather than the Windows machine I currently have to use!!! - Thanks Colin

user@abcd23:~/bin/veikk/veikk-linux-driver-2.0$ make
make -C /lib/modules/4.15.0-112-generic/build M=/home/user/bin/veikk/veikk-linux-driver-2.0 modules
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-112-generic'
CC [M] /home/user/bin/veikk/veikk-linux-driver-2.0/veikk_drv.o
In file included from ./include/linux/input.h:22:0,
from ./include/linux/hid.h:35,
from /home/user/bin/veikk/veikk-linux-driver-2.0/veikk.h:10,
from /home/user/bin/veikk/veikk-linux-driver-2.0/veikk_drv.c:5:
/home/user/bin/veikk/veikk-linux-driver-2.0/veikk_drv.c: In function ‘veikk_report’:
/home/user/bin/veikk/veikk-linux-driver-2.0/veikk_drv.c:105:46: error: ‘struct hid_report’ has no member named ‘application’
report->id, report->type, report->application, report->maxfield,
^
./include/linux/device.h:1420:58: note: in definition of macro ‘dev_info’
#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
^
/home/user/bin/veikk/veikk-linux-driver-2.0/veikk_drv.c:104:5: note: in expansion of macro ‘hid_info’
hid_info(hdev, "parsing report: %d %d %d %d %d\n",
^
scripts/Makefile.build:330: recipe for target '/home/user/bin/veikk/veikk-linux-driver-2.0/veikk_drv.o' failed
make[2]: *** [/home/user/bin/veikk/veikk-linux-driver-2.0/veikk_drv.o] Error 1
Makefile:1582: recipe for target 'module/home/user/bin/veikk/veikk-linux-driver-2.0' failed
make[1]: *** [module/home/user/bin/veikk/veikk-linux-driver-2.0] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-112-generic'
Makefile:8: recipe for target 'all' failed
make: *** [all] Error 2

Error compiling

HI I am having an error compiling the driver. When I run make I get
make -C /lib/modules/4.18.0-22-generic/build M=/home/jhahn/Documents/Veikk Driver/veikk-s640-driver-master modules
make[1]: Entering directory '/usr/src/linux-headers-4.18.0-22-generic'
arch/x86/Makefile:155: CONFIG_X86_X32 enabled but no binutils support
arch/x86/Makefile:244: *** You are building kernel with non-retpoline compiler, please update your compiler.. Stop.
make[1]: Leaving directory '/usr/src/linux-headers-4.18.0-22-generic'
Makefile:7: recipe for target 'all' failed
make: *** [all] Error 2

Any thoughts as to what I am doing wrong ?

v3-alpha mailing list

This thread will be for open discussion (e.g., questions, suggestions, answers, what-have-you's) for those testing v3 of the driver. Please post all questions related to v3-alpha here before it becomes a release.

The relevant blog posts related to this driver:

When you first post, please list your Linux distribution, kernel version, and devices, and please try to list relevant output (e.g., with xinput test).

Anyone is welcome and encouraged to comment. Some people who have reached out already:
@meelash @sparshjain265 @RaSTuS26

How to Make Veikk A 15v Pro Work

I'm a newbie to linux, and don't know anything more than the basic sudo terminal codes.
I've the veikk a 15 pro tab which works fine on windows. I wan't to make it work with linux.
however when i tried ur package the terminal throws some error which i couldn't even decipher with my little linux knowledge.

sudo make all install clean
make -C /lib/modules/5.4.0-42-generic/build M=/home/maxdan/Downloads/veikk-linux-driver-3-alpha-ff0a modules
make[1]: Entering directory '/usr/src/linux-headers-5.4.0-42-generic'
Building modules, stage 2.
MODPOST 1 modules
make[1]: Leaving directory '/usr/src/linux-headers-5.4.0-42-generic'
make -C /lib/modules/5.4.0-42-generic/build M=/home/maxdan/Downloads/veikk-linux-driver-3-alpha-ff0a modules_install
make[1]: Entering directory '/usr/src/linux-headers-5.4.0-42-generic'
INSTALL /home/maxdan/Downloads/veikk-linux-driver-3-alpha-ff0a/veikk.ko
At main.c:160:

  • SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:72
  • SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:79
    sign-file: certs/signing_key.pem: No such file or directory
    DEPMOD 5.4.0-42-generic
    Warning: modules_install: missing 'System.map' file. Skipping depmod.
    make[1]: Leaving directory '/usr/src/linux-headers-5.4.0-42-generic'
    modprobe veikk
    modprobe: ERROR: could not insert 'veikk': Operation not permitted
    Makefile:12: recipe for target 'install' failed
    make: *** [install] Error 1

Please help me finding the correct way to install the driver. Also I saw that you re using only the 640 device, but if u teach me to compile these files i'll lend a hand to you for making a driver for a 15 pro by testing on my device.

function veikk_report struct hid_report has no member named applcation error

Hi James,

Relative Linux-newb here. Was going to start looking at the .drv file with Sublime in a bit, but just in case you see this message:

I bought a brand new, beautiful Veikk A15 Pro tablet, and am super excited to start using it. I knew there was a 50/50 chance I wouldn't be able to use with Linux, but was excited to see your driver on Github.

Got through part of the install, then got this error:

jerome@nuc:~/veikk-linux-driver-master⟫ sudo make all install clean
make -C /lib/modules/4.4.0-121-generic/build M=/home/jerome/veikk-linux-driver-master modules
make[1]: Entering directory '/usr/src/linux-headers-4.4.0-121-generic'
  CC [M]  /home/jerome/veikk-linux-driver-master/veikk_drv.o
In file included from include/linux/input.h:22:0,
                 from include/linux/hid.h:35,
                 from /home/jerome/veikk-linux-driver-master/veikk.h:10,
                 from /home/jerome/veikk-linux-driver-master/veikk_drv.c:5:
/home/jerome/veikk-linux-driver-master/veikk_drv.c: In function ‘veikk_report’:

line with error
‘struct hid_report’ has no member named ‘application’

/home/jerome/veikk-linux-driver-master/veikk_drv.c:93:46: error: ‘struct hid_report’ has no member named ‘application’
              report->id, report->type, report->application, report->maxfield,
                                              ^
include/linux/device.h:1176:58: note: in definition of macro ‘dev_info’
 #define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
                                                          ^
/home/jerome/veikk-linux-driver-master/veikk_drv.c:92:5: note: in expansion of macro ‘hid_info’
     hid_info(hdev, "parsing report: %d %d %d %d %d\n",
     ^
scripts/Makefile.build:277: recipe for target '/home/jerome/veikk-linux-driver-master/veikk_drv.o' failed
make[2]: *** [/home/jerome/veikk-linux-driver-master/veikk_drv.o] Error 1
Makefile:1426: recipe for target '_module_/home/jerome/veikk-linux-driver-master' failed
make[1]: *** [_module_/home/jerome/veikk-linux-driver-master] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.4.0-121-generic'
Makefile:8: recipe for target 'all' failed
make: *** [all] Error 2

I checked some of the other issues, and also Googled various text strings based on this error, but could find nothing. Let me know if you can help, thanks!

How to change the orientation?

I didn't understand the comment about changing the orientation and I am using a vertical monitor (90 degrees clockwise from default landscape orientation). what should I change?

"make" does not work despite linux headers installed

Hello. I have a problem during the "make" process.

Here is the output:

paolo@ThinkPad:~/Software/veikk-linux-driver-master$ make
make -C /lib/modules/4.15.0-91-lowlatency/build M=/home/paolo/Software/veikk-linux-driver-master modules
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-91-lowlatency'
  CC [M]  /home/paolo/Software/veikk-linux-driver-master/veikk_drv.o
In file included from ./include/linux/input.h:22:0,
                 from ./include/linux/hid.h:35,
                 from /home/paolo/Software/veikk-linux-driver-master/veikk.h:10,
                 from /home/paolo/Software/veikk-linux-driver-master/veikk_drv.c:5:
/home/paolo/Software/veikk-linux-driver-master/veikk_drv.c: In function 'veikk_report':
/home/paolo/Software/veikk-linux-driver-master/veikk_drv.c:93:46: error: 'struct hid_report' has no member named 'application'
              report->id, report->type, report->application, report->maxfield,
                                              ^
./include/linux/device.h:1420:58: note: in definition of macro 'dev_info'
 #define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
                                                          ^~~
/home/paolo/Software/veikk-linux-driver-master/veikk_drv.c:92:5: note: in expansion of macro 'hid_info'
     hid_info(hdev, "parsing report: %d %d %d %d %d\n",
     ^~~~~~~~
scripts/Makefile.build:330: recipe for target '/home/paolo/Software/veikk-linux-driver-master/veikk_drv.o' failed
make[2]: *** [/home/paolo/Software/veikk-linux-driver-master/veikk_drv.o] Error 1
Makefile:1577: recipe for target '_module_/home/paolo/Software/veikk-linux-driver-master' failed
make[1]: *** [_module_/home/paolo/Software/veikk-linux-driver-master] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-91-lowlatency'
Makefile:8: recipe for target 'all' failed
make: *** [all] Error 2

What is exactly the problem?

My kernel is lowlatency, the very same happens if I use the generic one. The linux headers of the latest version are installed.

Button support on A30

I am standing by and ready to deliver whatever logs are required to help get this working.

I have the base program working (git master) perfectly under GIMP 2.10.20.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.